Galera estou com o seguinte problema tenho um sitema feito em delphi que gera relatorio direto na impressora com as seguinte dimensões
[color=green]
80 caracteres por linha
90 caracteres por linha
136 caracteres por linha
160 caracteres por linha
todos com 66 linhas por página que é o padrão de impressão em matricial
[/color]
o meu grande problema e que ao gerar esse txt quando eu importo para o itext sempre a fonte fica pequena demais e a quantidade de linha cabe muito mais que 66 por página estou tendo que gerar o pdf com a fonte courier para todos caracteres terem o mesmo tamanho, mas como disse a fonte sempre fica muito pequena
se alguem puder me ajudar agradeço pois se nao terei que refazer todos os relatorios do meu sistema
segue o codigo que eu estou testando
package xxx.gerapdf;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
import xxx.gerapdf.exception.ArquivoNaoEncontradoException;
import xxx.gerapdf.exception.LerArquivoException;
public class GeraPDF
{
public int quantidadeDeColunas = 0;
public BufferedReader carregaArquivo(String arquivo) throws ArquivoNaoEncontradoException
{
try
{
return new BufferedReader(new FileReader(new File(arquivo)));
}
catch (FileNotFoundException e)
{
e.printStackTrace();
throw new ArquivoNaoEncontradoException(arquivo);
}
}
public List<String> leArquivo(BufferedReader leitor, String arquivo) throws LerArquivoException
{
String str = null;
List<String> lista = null;
lista = new ArrayList<String>();
try
{
while((str = leitor.readLine()) != null)
{
lista.add(str);
if(str.length() > quantidadeDeColunas)
quantidadeDeColunas = str.length();
}
return lista;
}
catch (IOException e)
{
e.printStackTrace();
throw new LerArquivoException(arquivo);
}
}
public void escreveLinha(Document document, String linha, Font font) throws DocumentException
{
document.add(new Paragraph(linha, font));
}
public void escreveLinha80(Document document, String linha) throws DocumentException
{
escreveLinha(document, linha, FontFactory.getFont(FontFactory.COURIER, 10));
}
public void escreveLinha96(Document document, String linha) throws DocumentException
{
escreveLinha(document, linha, FontFactory.getFont(FontFactory.COURIER, 9));
}
public void escreveLinha136(Document document, String linha) throws DocumentException
{
escreveLinha(document, linha, FontFactory.getFont(FontFactory.COURIER, 6));
}
public void escreveLinha160(Document document, String linha) throws DocumentException
{
escreveLinha(document, linha, FontFactory.getFont(FontFactory.COURIER, 5));
}
public void escreveLinhaFontePadrao(Document document, String linha) throws DocumentException
{
switch(quantidadeDeColunas)
{
case 80 :{
escreveLinha80(document, linha);
break;
}
case 96 :{
escreveLinha96(document, linha);
break;
}
case 136 :{
escreveLinha136(document, linha);
break;
}
case 160 :{
escreveLinha160(document, linha);
break;
}
default : escreveLinha80(document, linha);
}
}
private void geraCorpoPDF(Document document, List<String> lista) throws DocumentException
{
for(String s : lista)
{
escreveLinhaFontePadrao(document, s);
}
}
public void geraArquivoPDF(List<String> lista, String arquivo)
{
try
{
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(arquivo));
writer.setMargins(0, 0, 0, 0);
writer.setPageSize(PageSize.A4);
document.open();
geraCorpoPDF(document, lista);
document.close();
writer.close();
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void inicializa(String arqOrigem, String arqDestino)
{
try
{
geraArquivoPDF(leArquivo(carregaArquivo(arqOrigem), arqOrigem), arqDestino);
}
catch (Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args)
{
String arqOrigem = "C:\\rastreI.txt";
String arqDestino = "C:\\rastreI.pdf";
GeraPDF g = new GeraPDF();
g.inicializa(arqOrigem, arqDestino);
}
}