From 30e83ee0e1f595edeba4c3f81e4fef5d21fbcc6a Mon Sep 17 00:00:00 2001 From: Julien R Date: Mon, 8 Jan 2024 15:32:21 +0100 Subject: [PATCH] EXP-14388: temp fix for issue #71 (PdfFileSpecification constructor) When multiple PdfFileSpecification references the same PdfEmbeddedFileStream, code should not throw exception. It should check if PdfEmbeddedFileStream is already added to Internals before adding it. --- .../PDFsharp/src/PdfSharp/Pdf.Advanced/PdfFileSpecification.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/foundation/src/PDFsharp/src/PdfSharp/Pdf.Advanced/PdfFileSpecification.cs b/src/foundation/src/PDFsharp/src/PdfSharp/Pdf.Advanced/PdfFileSpecification.cs index a197d86b..d6f76142 100644 --- a/src/foundation/src/PDFsharp/src/PdfSharp/Pdf.Advanced/PdfFileSpecification.cs +++ b/src/foundation/src/PDFsharp/src/PdfSharp/Pdf.Advanced/PdfFileSpecification.cs @@ -28,7 +28,8 @@ void Initialize() var embeddedFileDictionary = new PdfDictionary(Owner); - Owner.Internals.AddObject(_embeddedFileStream); + if(_embeddedFileStream.Reference is null) // 2 or more PdfFileSpecification could reference the same PdfEmbeddedFileStream, so it may not be necessary to add it again to Internals + Owner.Internals.AddObject(_embeddedFileStream); embeddedFileDictionary.Elements.SetReference(Keys.F, _embeddedFileStream.Reference); embeddedFileDictionary.Elements.SetReference(Keys.UF, _embeddedFileStream.Reference);