Pessoal, eh o seguinte, eu to usando um o itext para gerar na mao um relatorio. Nao vou usar o Ireport pq este programa tem o objetivo de gerar apenas um unico arquivo de vez em quando e exibi-lo na tela.
Eu soh quero saber uma coisa, minha classe cria um objeto doc, dai, eu chamo o addString e o addParagraph
Bom, ateh ai blz, tudo funciona 100%, inclusive o metodo commitPDF() que eu criei e gera o arquivo .pdf.
Agora, eu preciso exibir o pdf na tela, em um form Swing. Pode ser de duas formas, exibindo mesmo o arquivo gerado, ou, ao inves de “renderizar” o documento em um PDF, renderizar ele direto na tela.
Atenciosamente,
Kemper
package engine;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.PdfWriter;
public class OmegaPrinterEngine {
//Objeto para "armazenar" o documento
Document doc = null;
//Construtor
public OmegaPrinterEngine() {
super();
//Inicia um novo documento
doc = new Document();
//Define as margens
doc.setMargins(1, 1, 1, 1);
try {
//Abre o arquivo para gravacao...
//Isto eh temporario, se tiver como
//Renderizar diretamente na tela
//Serah removido.
PdfWriter.getInstance(doc, new FileOutputStream("out.pdf"));
} catch (FileNotFoundException ee) {
} catch (DocumentException ee) {
}
}
//Abre o documento
private void abreDocumento() {
//Abre se jah nao estiver aberto
if (!doc.isOpen()) {
doc.open();
}
}
//Adiciona uma string ao documento
public void addString(String s) {
try {
//Abre (se nao estiver aberto)
abreDocumento();
//Adiciona a string
doc.add(new Phrase(s));
} catch (DocumentException ee) {
}
}
//Adiciona um paragrafo (usado para quebrar linhas :(
public void addParagraph() {
//Abre o documento, caso nao esteja aberto
abreDocumento();
try {
//Adiciona um novo paragrafo em branco
doc.add(new Paragraph(""));
} catch (DocumentException ee) {
}
}
//Fecha e grava o arquivo PDF
public void commitPDF() {
doc.close();
}
}