Я хочу, чтобы создать новый PDF для каждой итерации цикла, так что я написал ниже код в Java:Создать PDF в цикле с IText Java
PdfWriter writer;
PdfDocument pdf;
Document document;
int i=0;
while(condition){
writer = new PdfWriter("test_"+Integer.toString(i)+".pdf");
pdf = new PdfDocument(writer);
document = new Document(pdf);
//content code here
document.close()
i++;
}
я получаю ниже исключение на линии document.close()
команда:
Исключение в потоке "главный" com.itextpdf.kernel.PdfException: Pdf косвенный объект принадлежит другому PDF документа. Скопируйте объект в текущий файл pdf. на com.itextpdf.kernel.pdf.PdfOutputStream.write (PdfOutputStream.java:184) на com.itextpdf.kernel.pdf.PdfOutputStream.write (PdfOutputStream.java:174) на com.itextpdf.kernel. pdf.PdfOutputStream.write (PdfOutputStream.java:104) на com.itextpdf.kernel.pdf.PdfOutputStream.write (PdfOutputStream.java:176) на com.itextpdf.kernel.pdf.PdfOutputStream.write (PdfOutputStream. Java: 104) на com.itextpdf.kernel.pdf.PdfOutputStream.write (PdfOutputStream.java:176) в com.itextpdf.kernel.pdf.PdfOutputStream.write (PdfOutputStream.java:104) на ком. itextpdf.kern el.pdf.PdfWriter.writeToBody (PdfWriter.java:335) на com.itextpdf.kernel.pdf.PdfWriter.flushObject (PdfWriter.java:243) на com.itextpdf.kernel.pdf.PdfDocument.flushObject (PdfDocument .java: 1446) at com.itextpdf.kernel.pdf.PdfObject.flush (PdfObject.java:155) по адресу com.itextpdf.kernel.pdf.PdfObject.flush (PdfObject.java:128) по адресу com.itextpdf .kernel.pdf.PdfObjectWrapper.flush (PdfObjectWrapper.java:96) at com.itextpdf.kernel.pdf.PdfPage.flush (PdfPage.java:489) в com.itextpdf.kernel.pdf.PdfPage.flush (PdfPage .java: 448) at com.itextpdf.kernel.pdf.PdfDocument.close (PdfDocument.java:739) по адресу com.itextpdf.layout.Document.close (Document.java:120) по адресу gr.m oh.Pdf.main (Pdf.java:224)
Я пробовал много, но я не могу найти, почему я получаю сообщение об ошибке. Если я делаю это без цикла, он работает. Любая помощь?
PS: я использую IText 7
Вы появляетесь использовать некоторые объекты PDF в нескольких прогонов цикл в вашем // коде для содержимого здесь, т. е. для нескольких целевых PDF-файлов. Это может привести к таким исключениям, как ваш. – mkl
спасибо! Я использую стиль выше цикла, чтобы назначать шрифты абзацам. Я добавил их в цикл, и он работает! –