2016-09-20 10 views
-1

Я использую .Net> IText 7.IText версия 7 - document.close() дает исключение в отношении PdfIndirectReference

В Pdf генерации кода -> после того, как все операции выполняются, и я говорю doc.Close(). Это бросает pdfException с сообщением «pdf.inderect.object.belong.to.other.pdf.document.Copy.object.to.current.pdf.document»

После проверки кода IText, я выяснилось, что исключение в окрестностях indirectReference внутреннее имя свойства: PdfException.PdfInderectObjectBelongToOtherPdfDocument

StackTrace является:

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() 

Обращаем ваше внимание: После запуска приложения приложение создается в первый раз, но во всех последующих попытках я получаю это исключение.

Любая помощь по этому вопросу была бы действительно оценена.

Заранее спасибо. !!

+0

Пожалуйста, покажите достаточно кода, чтобы воспроизвести проблему. – mkl

ответ

1

В Java у меня была такая же проблема, потому что я использовал статические константы для шрифта. старайтесь не использовать статические значения для PdfFont. я удалил эту

private static PdfFont font; 

И я заменил его с локальными значениями

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

Я. То же самое с C#. Наконец я понял. Спасибо .. –

+0

@ RajatDoshi, пожалуйста, примите ответ Ульриха. –