From a0b0bfc970791282c8c3ed86b987092b1fdbfefe Mon Sep 17 00:00:00 2001 From: Petri Roivas Date: Tue, 23 Jun 2020 13:28:43 +0300 Subject: [PATCH] Fix: for some reason in multilevel oulines there is sometimes PdfInteger instead of PdfReference. Added handling for that. --- src/PdfSharp/Pdf/PdfOutline.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/PdfSharp/Pdf/PdfOutline.cs b/src/PdfSharp/Pdf/PdfOutline.cs index b0961980..9a6b03df 100644 --- a/src/PdfSharp/Pdf/PdfOutline.cs +++ b/src/PdfSharp/Pdf/PdfOutline.cs @@ -414,7 +414,10 @@ void SplitDestinationPage(PdfArray destination) // Reference: 8.2 Destination s #pragma warning disable 162 // The destination page may not yet have been transformed to PdfPage. - PdfDictionary destPage = (PdfDictionary)((PdfReference)destination.Elements[0]).Value; + PdfDictionary destPage = (destination.Elements[0] is PdfInteger) ? + destination.Owner.Pages[((PdfInteger)destination.Elements[0]).Value] : + (PdfDictionary)((PdfReference)destination.Elements[0]).Value; + PdfPage page = destPage as PdfPage; if (page == null) page = new PdfPage(destPage);