iText 版本 7 - document.close() 给出关于 PdfIndirectReference 的异常

iText version 7 - document.close() giving exception regarding PdfIndirectReference

我正在使用 .Net > iText 7。

在 pdf 生成代码中 -> 所有操作完成后,我说 doc.Close()。这会抛出一个带有消息 "pdf.inderect.object.belong.to.other.pdf.document.Copy.object.to.current.pdf.document"

的 pdfException

查看iText代码后,发现异常在indirectReference The internal 属性 name is : PdfException.PdfInderectObjectBelongToOtherPdfDocument

堆栈跟踪是:

at iText.Kernel.Pdf.PdfOutputStream.Write(PdfIndirectReference indirectReference)
   at iText.Kernel.Pdf.PdfOutputStream.Write(PdfDictionary pdfDictionary)
   at iText.Kernel.Pdf.PdfOutputStream.Write(PdfObject pdfObject)
   at iText.Kernel.Pdf.PdfOutputStream.Write(PdfDictionary pdfDictionary)
   at iText.Kernel.Pdf.PdfOutputStream.Write(PdfObject pdfObject)
   at iText.Kernel.Pdf.PdfOutputStream.Write(PdfDictionary pdfDictionary)
   at iText.Kernel.Pdf.PdfOutputStream.Write(PdfObject pdfObject)
   at iText.Kernel.Pdf.PdfWriter.WriteToBody(PdfObject pdfObj)
   at iText.Kernel.Pdf.PdfWriter.FlushObject(PdfObject pdfObject, Boolean canBeInObjStm)
   at iText.Kernel.Pdf.PdfDocument.FlushObject(PdfObject pdfObject, Boolean canBeInObjStm)
   at iText.Kernel.Pdf.PdfObject.Flush(Boolean canBeInObjStm)
   at iText.Kernel.Pdf.PdfPage.Flush(Boolean flushXObjects)
   at iText.Kernel.Pdf.PdfPage.Flush()
   at iText.Kernel.Pdf.PdfDocument.Close()
   at iText.Layout.Document.Close()

请注意:启动应用程序后,第一次生成 pdf,但在以后的所有尝试中我都遇到此异常。

如有任何帮助,我们将不胜感激。

提前致谢!

在 Java 中,我遇到了同样的问题,因为我对字体使用了静态常量。尽量不要为 PdfFont 使用静态值。 我删除了这个

private static PdfFont font;

我用本地值替换了它

PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);