我想創建一個循環的每個迭代一個新的PDF,所以我寫了在Java代碼如下:與iText的Java的創建循環新的PDF
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文檔。在 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) at com.itextpdf.kernel.pdf.PdfWriter.flushObject(PdfWriter.java:243) at com.itextpdf.kernel.pdf.PdfDocument.flushObject(PdfDocument .java:1446) at com.itextpdf.kernel.pdf.PdfObject.flush(PdfObject.java:155)at com.itextpdf.kernel.pdf.PdfObject.flush(PdfObject.java:128)at com.itextpdf .kernel.pdf.PdfObjectWrapper.flush(PdfObjectWrapper.java:96) at com.itextpdf.kernel.pdf.PdfPage.flush(PdfPage.java:489)at com.itextpdf.kernel.pdf.PdfPage.flush(PdfPage .java:448)at com.itextpdf.kernel.pdf.PdfDocument.close(PdfDocument.java:739)at com.itextpdf.layout.Document.close(Document.java:120)at gr.m oh.Pdf.main(Pdf.java:224)
我已經嘗試了很多,但是我找不到爲什麼會出現錯誤。如果我這樣做沒有循環它的作品。任何幫助?
PS:我使用的iText 7
你似乎使用的多次運行某些PDF對象你的'//內容代碼在這裏'的循環,即多個目標PDF。這可能會導致例外情況。 – mkl
謝謝!我在循環上面使用一個Style來爲段落分配字體。我將它們添加到循環中,它可以工作! –