2016-09-20 6 views
-1

J'utilise .Net> iText 7.iText version 7 - document.close() donnant exception en ce qui concerne PdfIndirectReference

Dans le code pdf génération -> après toutes les opérations sont effectuées et je dis doc.Close(). Cela jette un pdfException avec un message "pdf.inderect.object.belong.to.other.pdf.document.Copy.object.to.current.pdf.document"

Après avoir vérifié le code iText, je a découvert que l'exception autour indirectReference le nom de la propriété interne est: PdfException.PdfInderectObjectBelongToOtherPdfDocument

le stacktrace est:

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

Veuillez noter: Après le démarrage de l'application, le pdf est généré pour la première fois, mais dans toutes les tentatives ultérieures, je reçois cette exception.

Toute aide à ce sujet serait grandement appréciée.

Merci d'avance. !!

+0

S'il vous plaît montrer assez de code pour reproduire le problème. – mkl

Répondre

1

En Java j'ai eu le même problème parce que j'ai utilisé des constantes statiques pour la police. essayez de ne pas utiliser de valeurs statiques pour PdfFont. J'ai enlevé ce

private static PdfFont font; 

Et je l'ai remplacé avec les valeurs locales

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

Ya. La même chose est avec C#. J'ai finalement compris. Merci .. –

+0

@RajatDoshi s'il vous plaît accepter la réponse de Ulrich. –