0

我正在使用 .Net > iText 7。

在 pdf 生成代码中 -> 在所有操作完成之后,我说 doc.Close()。这会引发 pdfException,并带有消息“pdf.inderect.object.belong.to.other.pdf.document.Copy.object.to.current.pdf.document”

查了iText代码后发现,在indirectReference周围的异常内部属性名是: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,但在以后的所有尝试中,我都得到了这个异常。

对此的任何帮助将不胜感激。

提前致谢。!!

4

1 回答 1

2

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

private static PdfFont font;

我用当地的价值观代替了它

PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
于 2016-10-17T12:14:52.037 回答