Java iText 7 itextpdf.kernel.PdfException

Java iText 7 itextpdf.kernel.PdfException,java,pdf,itext,itext7,Java,Pdf,Itext,Itext7,我正在使用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.

我正在使用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 at com.itextpdf.kernel.pdf.PdfOutputStream.write(PdfOutputStream.java:184) at com.itextpdf.kernel.pdf.PdfOutputStream.write(PdfOutputStream.java:174) at com.itextpdf.kernel.pdf.PdfOutputStream.write(PdfOutputStream.java:104) at com.itextpdf.kernel.pdf.PdfOutputStream.write(PdfOutputStream.java:176) at com.itextpdf.kernel.pdf.PdfOutputStream.write(PdfOutputStream.java:104) at com.itextpdf.kernel.pdf.PdfOutputStream.write(PdfOutputStream.java:176) at com.itextpdf.kernel.pdf.PdfOutputStream.write(PdfOutputStream.java:104) at com.itextpdf.kernel.pdf.PdfWriter.writeToBody(PdfWriter.java:315) at com.itextpdf.kernel.pdf.PdfWriter.flushObject(PdfWriter.java:232) at com.itextpdf.kernel.pdf.PdfDocument.flushObject(PdfDocument.java:1257) at com.itextpdf.kernel.pdf.PdfObject.flush(PdfObject.java:147) at com.itextpdf.kernel.pdf.PdfObject.flush(PdfObject.java:124) at com.itextpdf.kernel.pdf.PdfObjectWrapper.flush(PdfObjectWrapper.java:97) at com.itextpdf.kernel.pdf.PdfPage.flush(PdfPage.java:410) at com.itextpdf.kernel.pdf.PdfPage.flush(PdfPage.java:367) at com.itextpdf.kernel.pdf.PdfDocument.close(PdfDocument.java:720) at com.itextpdf.layout.Document.close(Document.java:115) 2016-09-24 18:35:17589 | http-bio-8080-exec-20 | INFO | CustomerControllercom.itextpdf.kernel.PdfException:pdf.indrect.object.alley.to.other.pdf.document.Copy.object.to.current.pdf.document com.itextpdf.kernel.PdfException:pdf.indrect.object.alley.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)。

如果有人能给出更详细的答案,我将不胜感激

定期公开期末考试; 公共最终PdfFont粗体

public invoiceReceiptServiceImpl()引发IOException{ this.regular=PdfFontFactory.createFont(FontConstants.HELVETICA); this.bold=PdfFontFactory.createFont(FontConstants.HELVETICA_bold); }


我隔离了导致错误的代码,注释掉了PdfFont的所有用法,效果很好

我查看了一个中文博客,似乎这个错误是因为当你想再次打印这个PDF时没有释放一些文档对象(比如我的例子中的PdfFont)。

如果有人能给出更详细的答案,我将不胜感激

定期公开期末考试; 公共最终PdfFont粗体

public invoiceReceiptServiceImpl()引发IOException{ this.regular=PdfFontFactory.createFont(FontConstants.HELVETICA); this.bold=PdfFontFactory.createFont(FontConstants.HELVETICA_bold); }


我使用的iText 7版本:7.0.0很可能您使用iText的代码不正确。显示您的代码。我使用的iText 7版本:7.0.0很可能您使用iText的代码不正确。显示您的代码。您尚未显示您的代码。我不懂中文,谷歌的翻译也没用。您是否可能对不同的目标文档使用相同的
PdfFont
实例。我建议您不要这样做。您尚未显示代码。我不懂中文,谷歌的翻译也没用。您是否可能对不同的目标文档使用相同的
PdfFont
实例。我建议不要那样做。