Ola pessoal, fiz um relatório utilizando o iText, funcionou direitinho enquanto eu estava desenvolvendo no eclipse.
Exportei meu projeto .war para o tomcat, e meus relatórios com iText pararam de funcionar.
Vejam o código que gera e abre o arquivo pdf.
public void relatorio_fornecedor()
{
List<Fornecedor> fornecedor = forDao.listaFornecedores();
Date data = new Date();
// criando um objeto da classe Document
Document documento = new Document();
try {
//Aqui começamos a utilizar as classes do iText: o documento
//criado acima será
//direcionado para um arquivo PDF.
PdfWriter.getInstance(documento, new FileOutputStream("fornecedores.pdf"));
//abrindo o documento.
documento.open();
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
Image figura = Image.getInstance("/global.jpg");
documento.add(figura);
//adicionando no arquivo PDF.
Paragraph p1 = new Paragraph("Lista de Fornecedores");
p1.setAlignment(Element.ALIGN_CENTER);
p1.setSpacingAfter(20);
documento.add(p1);
Paragraph p2 = new Paragraph("CREW - 424");
p2.setSpacingAfter(10);
documento.add(p2);
PdfPTable table = new PdfPTable(5);
PdfPCell header = new PdfPCell();
header.setColspan(5);
table.addCell("Fornecedor");
table.addCell("CNPJ");
table.addCell("Telefone");
table.addCell("Falar com");
table.addCell("E-mail");
for(int i=0; i < fornecedor.size(); i++){
header.setColspan(4);
header.setSpaceCharRatio(10);
table.addCell(""+fornecedor.get(i).getNome());
table.addCell(fornecedor.get(i).getCNPJ());
table.addCell(""+fornecedor.get(i).getTelefone());
table.addCell(fornecedor.get(i).getContato());
table.addCell(fornecedor.get(i).getEmail());
}
documento.add(table);
Paragraph p4 = new Paragraph("Data: "+formatador.format(data));
p4.setAlignment(Element.ALIGN_RIGHT);
p4.setSpacingAfter(10);
documento.add(p4);
Paragraph p5 = new Paragraph("Relatório gerado com base em informações do Sistema Informatizado da Global Geophysical Services - SisGlobal.");
p5.setSpacingAfter(10);
documento.add(p5);
}
catch(DocumentException de) {
System.err.println(de.getMessage());
}
catch(IOException ioe) {
System.err.println(ioe.getMessage());
}
documento.close();
File pdf = new File("fornecedores.pdf");
try {
Desktop.getDesktop().open(pdf);
} catch(Exception ex) {
//validator.add((Message) new ValidationMessage("Erro ao abrir o arquivo PDF, favor tentar novamente.", "erro"));
//validator.onErrorRedirectTo(this).receber(idPessoa);
}
result.redirectTo(ProdutoController.class).estoque();
}
Alguem pode me ajudar???
Tudo está funcionando, o arquivo está sendo editado conforme o código,.
O único problema é que ele não abre com o código
File pdf = new File("fornecedores.pdf");
try {
Desktop.getDesktop().open(pdf);
} catch(Exception ex) {
//validator.add((Message) new ValidationMessage("Erro ao abrir o arquivo PDF, favor tentar novamente.", "erro"));
//validator.onErrorRedirectTo(this).receber(idPessoa);
}
Isso é que ta me deixando de cabeça quente…
Se alguem puder me ajudar…