Как создать и открыть документ PDF, используя itextpdf-5.5. * [Решено] - PullRequest
0 голосов
/ 26 июня 2019

Мне нужно создать и загрузить отчет в формате PDF в моем проекте. Я использовал iText-5.5.13 и веб-сервер JBoss. Я обновил свой код, как я уже упоминал ранее, и он создает файл 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();
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...