From 8a496a8c8141bdeccad7759b35d68692fd1a5375 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Wed, 21 Oct 2026 10:29:53 +1100 Subject: [PATCH 1/2] Bump DeterministicPdf to 2.3.0 2.3.0 removes the Producer from the pdf snapshot too, so it no longer changes with the library that wrote the document, and repairs offsets in cross-reference streams and incremental updates, so documents of those shapes are now fully normalized. Each changed .verified.pdf is exactly what 2.3.0 produces from the previous one. --- src/Directory.Build.props | 2 +- src/Directory.Packages.props | 2 +- .../TextOnlyTests.VerifyPdf.verified.pdf | Bin 2718 -> 2640 bytes src/Tests/Samples.DocumentOnly.verified.pdf | Bin 2718 -> 2640 bytes .../Samples.PageTextPerPage.verified.pdf | Bin 2718 -> 2640 bytes .../Samples.VerifyFirstPage.verified.pdf | Bin 2718 -> 2640 bytes .../Samples.VerifyPageDimensions.verified.pdf | Bin 2718 -> 2640 bytes src/Tests/Samples.VerifyPdf.verified.pdf | Bin 2718 -> 2640 bytes .../Samples.VerifyPdfStream.verified.pdf | Bin 2718 -> 2640 bytes ...es.VerifyPreserveTransparency.verified.pdf | Bin 2718 -> 2640 bytes .../Samples.VerifySecondPage.verified.pdf | Bin 2718 -> 2640 bytes ...pshotHoldsTheNeutralizedBytes.verified.pdf | Bin 2718 -> 2640 bytes 12 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 8434815..b5d6bf9 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -2,7 +2,7 @@ CS1591;CS0649;NU1608;NU1109 - 5.0.0 + 5.1.0 1.0.0 preview false diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index fdcaae8..6d3f205 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -4,7 +4,7 @@ true - + diff --git a/src/StaticSettingsTests/TextOnlyTests.VerifyPdf.verified.pdf b/src/StaticSettingsTests/TextOnlyTests.VerifyPdf.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 diff --git a/src/Tests/Samples.DocumentOnly.verified.pdf b/src/Tests/Samples.DocumentOnly.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 diff --git a/src/Tests/Samples.PageTextPerPage.verified.pdf b/src/Tests/Samples.PageTextPerPage.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 diff --git a/src/Tests/Samples.VerifyFirstPage.verified.pdf b/src/Tests/Samples.VerifyFirstPage.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 diff --git a/src/Tests/Samples.VerifyPageDimensions.verified.pdf b/src/Tests/Samples.VerifyPageDimensions.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 diff --git a/src/Tests/Samples.VerifyPdf.verified.pdf b/src/Tests/Samples.VerifyPdf.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 diff --git a/src/Tests/Samples.VerifyPdfStream.verified.pdf b/src/Tests/Samples.VerifyPdfStream.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 diff --git a/src/Tests/Samples.VerifyPreserveTransparency.verified.pdf b/src/Tests/Samples.VerifyPreserveTransparency.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 diff --git a/src/Tests/Samples.VerifySecondPage.verified.pdf b/src/Tests/Samples.VerifySecondPage.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 diff --git a/src/Tests/SkipPdfNormalizationTests.NormalizedSnapshotHoldsTheNeutralizedBytes.verified.pdf b/src/Tests/SkipPdfNormalizationTests.NormalizedSnapshotHoldsTheNeutralizedBytes.verified.pdf index f2036d9327494a00a0881d5aa5195b600bb778f6..1e51d97068cde5bc2b0c9c8d47d8e6230922b27b 100644 GIT binary patch delta 42 ycmbOydO>7^IO}9P))pos%gskvI~g~Zuuo-THnudF%)`~mX=G`_tE%ei?*;%Ddkdfd delta 122 zcmca0GEa1aIIDV)ql-d-i<^S6o~53Fo`Hg{LPkkRft9{~d3m{BQDRC#N}67Be(q#( o))po+i_LRcI~j@9vssOODigDbk>%uloSmG;=0?1#s;>TS0CGbk00000 From 40d1f3e93b28c88e6c581a79ac5f52be6ed44090 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Wed, 21 Oct 2026 10:36:19 +1100 Subject: [PATCH 2/2] Accept the FOP-rendered pdf without its Producer This test only runs where Apache FOP is installed, so it was skipped locally. The snapshot is exactly what DeterministicPdf 2.3.0 produces from the previous one, and CI received the same bytes on Ubuntu and Windows. --- ...FopTests.VerifyFopRenderedPdf.verified.pdf | Bin 5282 -> 5236 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/Tests/FopTests.VerifyFopRenderedPdf.verified.pdf b/src/Tests/FopTests.VerifyFopRenderedPdf.verified.pdf index 604850e3110dbda241af1ee7a68e29563b44f145..17b85714a6184264bbfd1781041b0c2b55b91549 100644 GIT binary patch delta 314 zcmZ3a`9))b$Hw?%p3OITx)_-ZjW(z9HL%nhS|}KRfI^-E7nosSWM*!PDQ1Z&W^RO` z*Vqi3n29;MdB$euCSbA2Ho`phmPQZ`k|T^QO^nesnV6bdVu%@AU^vXg&HO2h?y8;xYNYQ&;+E;0@?8<#+VkHm{?+JHa9Vxd{KB7r@1AUs;aBM8y5i997AOQ