如何使用itextpdf-5.5。创建和打开PDF文档。* [已解决]

时间:2019-06-26 10:58:39

标签: java eclipse itext

我必须在我的项目中生成并下载PDF报告。我已经使用了iText-5.5.13和JBoss Web服务器。我已经更新了代码,就像之前提到的那样,它会生成PDF文件并保存在上述位置,但是在尝试打开它时出现文件格式错误。

public class CreatePDFReport {
    try {
     Document document = new Document();
                PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("c:/Users/divya/Desktop/"+empCode+".pdf"));
                PdfReader reader = new PdfReader("c:/Users/divya/Desktop/"+empCode+".pdf");
                PdfStamper stamper =  new PdfStamper(reader, new FileOutputStream("c:/Users/divya/Desktop/"+empCode+".pdf"));
                AcroFields form = stamper.getAcroFields();

                stamper.close();
                //document.close();
                Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "c:/Users/divya/Desktop/"+empCode+".pdf");

     } catch (Exception ex) {
    ex.printStackTrace();
     }
}

这是我现在在服务器日志中遇到的错误。

17:06:13,473 ERROR [stderr] (http-0.0.0.0:80-1) com.itextpdf.text.exceptions.InvalidPdfException: PDF header signature not found.

解决方案 该报告正在生成,并且也可以打开以将数据添加到pdf中,我们真的不需要使用压模,我们可以通过使用document.add();添加数据。另外,打开和关闭文档也很重要。

public class CreatePDFReport {
    try {
     Document document = new Document(PageSize.A4);
            PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream("c:/Users/divya/Desktop/"+empCode+".pdf"));
            document.open();
            int[] coords = new int[] {1, 50, 50, 100, 100} ;
            PdfContentByte canvas = pdfWriter.getDirectContent();
            document.add(new Paragraph("Hello"));
            document.close();
     } catch (Exception ex) {
    ex.printStackTrace();
     }
}

0 个答案:

没有答案