From 60c7ff9db1d3c2f4f3b713261f501f4261db7d62 Mon Sep 17 00:00:00 2001 From: Kyle Pereira Date: Thu, 7 Dec 2023 13:08:56 +0000 Subject: [PATCH] Tests: Add a test for LibPDF pattern rendering This is based largely on Adobe's EXAMPLE 2 on p176 of the specification, manually edited slightly and then cleaned up with mutool. https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf --- Tests/LibPDF/CMakeLists.txt | 1 + Tests/LibPDF/pattern.pdf | 126 ++++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 Tests/LibPDF/pattern.pdf diff --git a/Tests/LibPDF/CMakeLists.txt b/Tests/LibPDF/CMakeLists.txt index 6a8b784a80..10c10f4176 100644 --- a/Tests/LibPDF/CMakeLists.txt +++ b/Tests/LibPDF/CMakeLists.txt @@ -15,6 +15,7 @@ set(TEST_FILES non-linearized.pdf oss-fuzz-testcase-62065.pdf password-is-sup.pdf + pattern.pdf text.pdf type1.pdf type3.pdf diff --git a/Tests/LibPDF/pattern.pdf b/Tests/LibPDF/pattern.pdf new file mode 100644 index 0000000000..efded88c3f --- /dev/null +++ b/Tests/LibPDF/pattern.pdf @@ -0,0 +1,126 @@ +%PDF-1.7 +%µ¶ + +1 0 obj +<> +endobj + +3 0 obj +<> +endobj + +5 0 obj +<> +endobj + +10 0 obj +<>/Font<>>> +endobj + +15 0 obj +<> +stream +BT % Begin text object +0.0 -0.05 TD % Move text position +/F1 1 Tf % Set text font and size +55 0 0 55 7.1771 10.4414 Tm % Set text matrix +0 Tc % Set character spacing +0 Tw % Set word spacing +1.0 0.0 0.0 rg % Set nonstroking colour to red +( a ) Tj % Show spade glyph +0.7478 -0.007 TD % Move text position +0.0 1.0 0.0 rg % Set nonstroking colour to green +( b ) Tj % Show heart glyph +-0.7323 0.7813 TD % Move text position +0.0 0.0 1.0 rg % Set nonstroking colour to blue +( c ) Tj % Show diamond glyph +0.6913 0.007 TD % Move text position +0.0 0.0 0.0 rg % Set nonstroking colour to black +( d ) Tj % Show club glyph +ET % End text object + + +endstream +endobj + +20 0 obj +<> +endobj + +21 0 obj +<> +endobj + +30 0 obj +<> +stream +0.0 G % Set stroking colour to black +1.0 1.0 0.0 rg % Set nonstroking colour to yellow +25 175 175 -150 re % Construct rectangular path +f % Fill path +/Pattern cs % Set pattern colour space +/P1 scn % Set pattern as nonstroking colour +99.92 49.92 m % Start new path +99.92 77.52 77.52 99.92 49.92 99.92 c % Construct lower-left circle +22.32 99.92 -0.08 77.52 -0.08 49.92 c +-0.08 22.32 22.32 -0.08 49.92 -0.08 c +77.52 -0.08 99.92 22.32 99.92 49.92 c +B % Fill and stroke path +224.96 49.92 m % Start new path +224.96 77.52 202.56 99.92 174.96 99.92 c % Construct lower-right circle +147.36 99.92 124.96 77.52 124.96 49.92 c +124.96 22.32 147.36 -0.08 174.96 -0.08 c +202.56 -0.08 224.96 22.32 224.96 49.92 c +B % Fill and stroke path +87.56 201.70 m % Start new path +63.66 187.90 55.46 157.32 69.26 133.40 c % Construct upper circle +83.06 109.50 113.66 101.30 137.56 115.10 c +161.46 128.90 169.66 159.50 155.86 183.40 c +142.06 207.30 111.46 215.50 87.56 201.70 c +B % Fill and stroke path +50 50 m % Start new path +175 50 l % Construct triangular path +112.5 158.253 l +b % Close, fill, and stroke path +endstream +endobj + +xref +0 31 +0000000002 00001 f +0000000016 00000 n +0000000004 00003 f +0000000062 00000 n +0000000006 00003 f +0000000114 00000 n +0000000007 00003 f +0000000008 00003 f +0000000009 00003 f +0000000011 00003 f +0000000213 00000 n +0000000012 00003 f +0000000013 00003 f +0000000014 00003 f +0000000016 00003 f +0000000276 00000 n +0000000017 00003 f +0000000018 00003 f +0000000019 00003 f +0000000022 00003 f +0000001071 00000 n +0000001153 00000 n +0000000023 00003 f +0000000024 00003 f +0000000025 00003 f +0000000026 00003 f +0000000027 00003 f +0000000028 00003 f +0000000029 00003 f +0000000000 00003 f +0000001224 00000 n + +trailer +<> +startxref +2362 +%%EOF