我正在使用Java和iText 7生成PDF。
我创建了一个PDF模板,并在此模板中包含一些数据模型以使其动态。
当我第一次使用此模板生成PDF时,它工作正常。但是第二次我尝试修改模板中的数据值,然后再次生成它引发了错误。
2016-09-24 18:35:17,589 | http-bio-8080-exec-20 | INFO | CustomerControllercom.itextpdf.kernel.PdfException:pdf.inderect.object.belong.to.other.pdf.document.Copy.object .to.current.pdf.document
com.itextpdf.kernel.PdfException:pdf.inderect.object.belong.to.other.pdf.document.Copy.object.to.current.pdf.document
在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)
在com.itextpdf.kernel.pdf.PdfWriter.writeToBody(PdfWriter.java:315)
在com.itextpdf.kernel.pdf.PdfWriter.flushObject(PdfWriter.java:232)
在com.itextpdf.kernel.pdf.PdfDocument.flushObject(PdfDocument.java:1257)
在com.itextpdf.kernel.pdf.PdfObject.flush(PdfObject.java:147)
在com.itextpdf.kernel.pdf.PdfObject.flush(PdfObject.java:124)
在com.itextpdf.kernel.pdf.PdfObjectWrapper.flush(PdfObjectWrapper.java:97)
在com.itextpdf.kernel.pdf.PdfPage.flush(PdfPage.java:410)
在com.itextpdf.kernel.pdf.PdfPage.flush(PdfPage.java:367)
在com.itextpdf.kernel.pdf.PdfDocument.close(PdfDocument.java:720)
在com.itextpdf.layout.Document.close(Document.java:115)
最佳答案
我隔离了导致错误的代码,注释掉了PdfFont的所有用法,效果很好。
我检查了一个中文博客,这似乎是由于您要再次打印此PDF时未释放某些文档对象(例如本例中的PdfFont)引起的。
http://blog.csdn.net/fu250/article/details/52604900
如果有人可以给出更详细的答案,我将不胜感激。
公开的最终PdfFont常规;
公共最终PdfFont粗体;
公共InvoiceRecieptServiceImpl()引发IOException {
this.regular = PdfFontFactory.createFont(FontConstants.HELVETICA);
this.bold = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);
}
关于java - iText 7 itextpdf.kernel.PdfException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39675575/