我使用的是.Net > iText 7。
在pdf生成代码中,->在所有操作完成之后,我说的是doc.Close()。这将引发带有消息"pdf.inderect.object.belong.to.other.pdf.document.Copy.object.to.current.pdf.document"的pdfException。
在检查了PdfException.PdfInderectObjectBelongToOtherPdfDocument代码之后,我发现indirectReference内部属性名中的异常是:
堆栈跟踪是:
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,但在以后的所有尝试中,我都会得到这个异常。
如果能在这方面提供任何帮助,我们将不胜感激。
提前谢谢!
发布于 2016-10-17 12:14:52
在Java中,我遇到了同样的问题,因为我使用静态常量作为字体。尽量不要为PdfFont使用静态值。我把这个拿走了
private static PdfFont font;
我用局部值代替了它
PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
https://stackoverflow.com/questions/39597125
复制相似问题