diff --git a/src/UglyToad.PdfPig.Tests/Writer/PdfMergerTests.cs b/src/UglyToad.PdfPig.Tests/Writer/PdfMergerTests.cs index 72c5ff8e..8b8d88a4 100644 --- a/src/UglyToad.PdfPig.Tests/Writer/PdfMergerTests.cs +++ b/src/UglyToad.PdfPig.Tests/Writer/PdfMergerTests.cs @@ -93,5 +93,45 @@ "Expected object count to be lower than 24"); } } + + [Fact] + public void CanMergeWithObjectStream() + { + var first = IntegrationHelpers.GetDocumentPath("Single Page Simple - from google drive.pdf"); + var second = IntegrationHelpers.GetDocumentPath("Multiple Page - from Mortality Statistics.pdf"); + + var result = PdfMerger.Merge(first, second); + + WriteFile(nameof(CanMergeWithObjectStream), result); + + using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) + { + Assert.Equal(7, document.NumberOfPages); + + foreach (var page in document.GetPages()) + { + Assert.NotNull(page.Text); + } + } + } + + private static void WriteFile(string name, byte[] bytes) + { + try + { + if (!Directory.Exists("Merger")) + { + Directory.CreateDirectory("Merger"); + } + + var output = Path.Combine("Merger", $"{name}.pdf"); + + File.WriteAllBytes(output, bytes); + } + catch + { + // ignored. + } + } } } diff --git a/src/UglyToad.PdfPig/Graphics/ContentStreamProcessor.cs b/src/UglyToad.PdfPig/Graphics/ContentStreamProcessor.cs index 1367fbb6..363b77da 100644 --- a/src/UglyToad.PdfPig/Graphics/ContentStreamProcessor.cs +++ b/src/UglyToad.PdfPig/Graphics/ContentStreamProcessor.cs @@ -17,7 +17,7 @@ using Tokenization.Scanner; using Tokens; using XObjects; - using static UglyToad.PdfPig.Core.PdfSubpath; + using static PdfPig.Core.PdfSubpath; internal class ContentStreamProcessor : IOperationContext { @@ -540,7 +540,7 @@ return; } - var currentState = this.GetCurrentState(); + var currentState = GetCurrentState(); if (CurrentPath.IsStroked) { CurrentPath.LineDashPattern = currentState.LineDashPattern;