From 86d1a42c159db3ac2128b23b561740a484a8103d Mon Sep 17 00:00:00 2001 From: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com> Date: Thu, 30 Oct 2025 20:51:12 +0100 Subject: [PATCH 1/9] Implement ASCII85Decode (#279) * Implement ASCII85Decode * Add sample from issue #153 with ASCII85Decode filter --- .../DictionaryValue/Name/FilterNameValue.php | 2 + src/Document/Filter/Decode/ASCII85Decode.php | 53 ++++++++++++ tests/Samples/files/issue-153/contents.yml | 81 ++++++++++++++++++ tests/Samples/files/issue-153/file.pdf | Bin 0 -> 118712 bytes .../files/issue-153/images/page_0_image_0.jpg | Bin 0 -> 34693 bytes .../Document/Filter/ASCII85DecodeTest.php | 37 ++++++++ 6 files changed, 173 insertions(+) create mode 100644 src/Document/Filter/Decode/ASCII85Decode.php create mode 100644 tests/Samples/files/issue-153/contents.yml create mode 100644 tests/Samples/files/issue-153/file.pdf create mode 100644 tests/Samples/files/issue-153/images/page_0_image_0.jpg create mode 100644 tests/Unit/Document/Filter/ASCII85DecodeTest.php diff --git a/src/Document/Dictionary/DictionaryValue/Name/FilterNameValue.php b/src/Document/Dictionary/DictionaryValue/Name/FilterNameValue.php index ede13c9..f81a6f3 100644 --- a/src/Document/Dictionary/DictionaryValue/Name/FilterNameValue.php +++ b/src/Document/Dictionary/DictionaryValue/Name/FilterNameValue.php @@ -7,6 +7,7 @@ use PrinsFrank\PdfParser\Document\Dictionary\DictionaryKey\DictionaryKey; use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Integer\IntegerValue; use PrinsFrank\PdfParser\Document\Document; +use PrinsFrank\PdfParser\Document\Filter\Decode\ASCII85Decode; use PrinsFrank\PdfParser\Document\Filter\Decode\CCITTFaxDecode; use PrinsFrank\PdfParser\Document\Filter\Decode\FlateDecode; use PrinsFrank\PdfParser\Document\Filter\Decode\LZWFlatePredictorValue; @@ -54,6 +55,7 @@ public function decodeBinary(string $content, ?Dictionary $dictionary, ?Document $decodeParams->getValueForKey(DictionaryKey::K, IntegerValue::class)->value ?? throw new ParseFailureException('Missing K'), ), + self::ASCII_85_DECODE => ASCII85Decode::decodeBinary($content), default => throw new ParseFailureException(sprintf('Content "%.100s..." cannot be decoded for filter "%s"', $content, $this->name)) }; } diff --git a/src/Document/Filter/Decode/ASCII85Decode.php b/src/Document/Filter/Decode/ASCII85Decode.php new file mode 100644 index 0000000..6290044 --- /dev/null +++ b/src/Document/Filter/Decode/ASCII85Decode.php @@ -0,0 +1,53 @@ +')) { + $string = substr($string, 2, -2); + } + + $string = preg_replace('/\s+/', '', $string) + ?? throw new RuntimeException('An unexpected error occurred while sanitizing ASCII85 string'); + $length = strlen($string); + $decoded = $block = ''; + for ($i = 0; $i < $length; ++$i) { + $char = $string[$i]; + if ($char === 'z') { + $decoded .= "\0\0\0\0"; + continue; + } + + $block .= $char; + if (strlen($block) === 5) { + $value = 0; + for ($j = 0; $j < 5; ++$j) { + $value = $value * 85 + (ord($block[$j]) - 33); + } + + $decoded .= pack('N', $value); + $block = ''; + } + } + + if ($block !== '') { + $padding = 5 - strlen($block); + $block = str_pad($block, 5, 'u'); + $value = 0; + for ($i = 0; $i < 5; ++$i) { + $value = $value * 85 + (ord($block[$i]) - 33); + } + + $binaryData = pack('N', $value); + $decoded .= substr($binaryData, 0, 4 - $padding); + } + + return $decoded; + } +} diff --git a/tests/Samples/files/issue-153/contents.yml b/tests/Samples/files/issue-153/contents.yml new file mode 100644 index 0000000..8255bc5 --- /dev/null +++ b/tests/Samples/files/issue-153/contents.yml @@ -0,0 +1,81 @@ +# yaml-language-server: $schema=./.yml-schema.json +version: '1.4' +password: null +title: reception0658@reseau-intersport.fr +producer: 'Oracle PDF driver' +author: 'Oracle Reports' +creator: 'Oracle12c AS Reports Services' +creationDate: 2025-07-22T10:00:03+00:00 +modificationDate: 2025-07-22T10:00:03+00:00 +pages: + - + content: |- + CUSTOMER IE802719 + INTERSPORT PAIMPOL + SASU C.E.F SPORTS - 17 T RUE RAYMOND PELLIER + 22500 PAIMPOL France + CHAMPION PRODUCTS EUROPE UNLIMITED COMPANY + Blanchardstown Corporate Park 2 D15 Blanchardstown - Dublin Ireland + Tel. Acc. + +353 (0)1 8864217 +353 (0)1 8864217Fax +353 (0)1 8665927 + Tel. CS + IE802719 + DESTINATION + INTERSPORT PAIMPOL + ZONE DE KERPUNS CARREFOUR ILN Code: 3025810065800 + 22500 PAIMPOL France + DELIVERY NOTE + DC REF. + 5204/165/2025/DN/5204 21/07/2025 + FORWARDER + Label + UPS - United Parcel Service S.r.l 2.0 + VIA G. FANTOLI, 15/2 + REASON + 20138 MILANO Milano + Italy + Subcontractor + TRANSPORTATION COST + Delivery Note N + CHH/2025/70BO/058510DATE 21/07/2025 + COMMENTS + SALES REP VORACE SAS François RAMOND + ARTICLE DESCRIPTION COLOUR SIZE TOTAL + ORD. NUM. + 35/38 39/42 43/46 + 8 19 13 + 4402026619 + 3pk Sneaker Socks + U20100-CHA + WW001 WHT + 40 + 40 + 35/38 39/42 43/46 + 8 17 14 + 4402026619 + 3pk Crew Socks + U24558-CHA + KK001 NBK + 39 + 8 17 14 + 4402026619 + WW001 WHT + 39 + 78 + Tot. qty 118 + Cartons Summary + 250570819669 250570830162 + Picking List-N. + CHH-2025-VE-430761 + Packing list W2025/PL/CHH282537 + Leave from + PACKING Cartons Nr 2 Net Wght 16,790 Gross Wght 18,490 + LABEL NOTES + Label + FORWARDER DESTINATION + CIE + Signature Date Time Signature Date Time Signature Date Time + 1 of + Copy for Customer Page 1 + images: + - page_0_image_0.jpg diff --git a/tests/Samples/files/issue-153/file.pdf b/tests/Samples/files/issue-153/file.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ba86eb793c24f7cd10510790638ecbbdc7e566dd GIT binary patch literal 118712 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 MX(W|uPdmu}1FZL<0ssI2 literal 0 HcmV?d00001 diff --git a/tests/Samples/files/issue-153/images/page_0_image_0.jpg b/tests/Samples/files/issue-153/images/page_0_image_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0474c54ee19043ba14b1d7beb6dd9bbefad457db GIT binary patch literal 34693 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 ZW}B$xQfgAPBWD=FZ=<@m|JeWl03z%3-D3a% literal 0 HcmV?d00001 diff --git a/tests/Unit/Document/Filter/ASCII85DecodeTest.php b/tests/Unit/Document/Filter/ASCII85DecodeTest.php new file mode 100644 index 0000000..2a29fd9 --- /dev/null +++ b/tests/Unit/Document/Filter/ASCII85DecodeTest.php @@ -0,0 +1,37 @@ +Cj@.4Gp$d7F!,L7@<6@)/0JDEF@3BB/F*&OCAfu2/AKYi( + DIb:@FD,*)+C]U=@3BN#EcYf8ATD3s@q?d$AftVqCh[NqF-FD5W8ARlolDIal( + DIdu + D.RTpAKYo'+CT/5+Cei#DII?(E,9)oF*2M7/c + ASCII85 + ) + ); + static::assertSame( + 'Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.', + ASCII85Decode::decodeBinary( + <<<'ASCII85' + <~9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKFCj@.4Gp$d7F!,L7@<6@)/0JDEF@3BB/F*&OCAfu2/AKYi( + DIb:@FD,*)+C]U=@3BN#EcYf8ATD3s@q?d$AftVqCh[NqF-FD5W8ARlolDIal( + DIdu + D.RTpAKYo'+CT/5+Cei#DII?(E,9)oF*2M7/c~> + ASCII85 + ) + ); + } +} From f31ae07a2c14b19939a2a9101845de3bac2d26d2 Mon Sep 17 00:00:00 2001 From: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com> Date: Tue, 4 Nov 2025 20:22:17 +0100 Subject: [PATCH 2/9] Fix yml schema path for samples (#280) --- tests/Samples/files/gdocs-hello-world-simple/contents.yml | 2 +- tests/Samples/files/gdocs-image-simple/contents.yml | 2 +- .../gdocs-lorem-ipsum-with-titles-and-formatting/contents.yml | 2 +- tests/Samples/files/gdocs-scripts/contents.yml | 2 +- tests/Samples/files/issue-127/contents.yml | 2 +- tests/Samples/files/issue-149/contents.yml | 2 +- tests/Samples/files/issue-150/contents.yml | 2 +- tests/Samples/files/issue-214/contents.yml | 2 +- tests/Samples/files/issue-235/contents.yml | 2 +- tests/Samples/files/issue-254/contents.yml | 2 +- tests/Samples/files/issue-255/contents.yml | 2 +- tests/Samples/files/libreoffice-hello-world-hybrid/contents.yml | 2 +- .../libreoffice-hello-world-open-password-hello/contents.yml | 2 +- tests/Samples/files/libreoffice-hello-world-simple/contents.yml | 2 +- .../files/libreoffice-hello-world-watermarked/contents.yml | 2 +- .../contents.yml | 2 +- tests/Samples/files/pdftex-hello-world-simple/contents.yml | 2 +- .../files/text-objects-across-multiple-streams/contents.yml | 2 +- tests/Samples/files/word365-hello-world-simple/contents.yml | 2 +- .../word365-lorem-ipsum-with-titles-and-formatting/contents.yml | 2 +- tests/Samples/update-content | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/tests/Samples/files/gdocs-hello-world-simple/contents.yml b/tests/Samples/files/gdocs-hello-world-simple/contents.yml index ddf13c3..aedab56 100644 --- a/tests/Samples/files/gdocs-hello-world-simple/contents.yml +++ b/tests/Samples/files/gdocs-hello-world-simple/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.4' password: null title: 'Untitled document' diff --git a/tests/Samples/files/gdocs-image-simple/contents.yml b/tests/Samples/files/gdocs-image-simple/contents.yml index b173803..fecbd06 100644 --- a/tests/Samples/files/gdocs-image-simple/contents.yml +++ b/tests/Samples/files/gdocs-image-simple/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.4' password: null title: 'File with image' diff --git a/tests/Samples/files/gdocs-lorem-ipsum-with-titles-and-formatting/contents.yml b/tests/Samples/files/gdocs-lorem-ipsum-with-titles-and-formatting/contents.yml index 2f0c1c6..b567223 100644 --- a/tests/Samples/files/gdocs-lorem-ipsum-with-titles-and-formatting/contents.yml +++ b/tests/Samples/files/gdocs-lorem-ipsum-with-titles-and-formatting/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.4' password: null title: 'lorem ipsum' diff --git a/tests/Samples/files/gdocs-scripts/contents.yml b/tests/Samples/files/gdocs-scripts/contents.yml index edd1452..f84b84d 100644 --- a/tests/Samples/files/gdocs-scripts/contents.yml +++ b/tests/Samples/files/gdocs-scripts/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.4' password: null title: Scripts diff --git a/tests/Samples/files/issue-127/contents.yml b/tests/Samples/files/issue-127/contents.yml index b68d962..120e77f 100644 --- a/tests/Samples/files/issue-127/contents.yml +++ b/tests/Samples/files/issue-127/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '2.0' password: null title: !!binary /v8AMQAuADIAIABUAGEAYgBlAGwAbABlAF8AMQBfAEsAQQBfADEAOQAtADAANwAwADUAOQ== diff --git a/tests/Samples/files/issue-149/contents.yml b/tests/Samples/files/issue-149/contents.yml index 1462baa..415177b 100644 --- a/tests/Samples/files/issue-149/contents.yml +++ b/tests/Samples/files/issue-149/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: '(Dossier représentation Mme BEGOT-3.pdf)' diff --git a/tests/Samples/files/issue-150/contents.yml b/tests/Samples/files/issue-150/contents.yml index 9f362e6..e72bc65 100644 --- a/tests/Samples/files/issue-150/contents.yml +++ b/tests/Samples/files/issue-150/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.3' password: null title: null diff --git a/tests/Samples/files/issue-214/contents.yml b/tests/Samples/files/issue-214/contents.yml index f4008a2..5a77589 100644 --- a/tests/Samples/files/issue-214/contents.yml +++ b/tests/Samples/files/issue-214/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: null diff --git a/tests/Samples/files/issue-235/contents.yml b/tests/Samples/files/issue-235/contents.yml index 972fe02..5842241 100644 --- a/tests/Samples/files/issue-235/contents.yml +++ b/tests/Samples/files/issue-235/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.6' password: null title: '' diff --git a/tests/Samples/files/issue-254/contents.yml b/tests/Samples/files/issue-254/contents.yml index 17bd88c..f3dd54e 100644 --- a/tests/Samples/files/issue-254/contents.yml +++ b/tests/Samples/files/issue-254/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: 'Publications Office' diff --git a/tests/Samples/files/issue-255/contents.yml b/tests/Samples/files/issue-255/contents.yml index 0aebd68..558b620 100644 --- a/tests/Samples/files/issue-255/contents.yml +++ b/tests/Samples/files/issue-255/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: null diff --git a/tests/Samples/files/libreoffice-hello-world-hybrid/contents.yml b/tests/Samples/files/libreoffice-hello-world-hybrid/contents.yml index cbd8f89..9641237 100644 --- a/tests/Samples/files/libreoffice-hello-world-hybrid/contents.yml +++ b/tests/Samples/files/libreoffice-hello-world-hybrid/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: null diff --git a/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml b/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml index fc9ebe7..4a0b1b5 100644 --- a/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml +++ b/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: 1.7 password: Hello title: null diff --git a/tests/Samples/files/libreoffice-hello-world-simple/contents.yml b/tests/Samples/files/libreoffice-hello-world-simple/contents.yml index de3afb8..a7dd863 100644 --- a/tests/Samples/files/libreoffice-hello-world-simple/contents.yml +++ b/tests/Samples/files/libreoffice-hello-world-simple/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: null diff --git a/tests/Samples/files/libreoffice-hello-world-watermarked/contents.yml b/tests/Samples/files/libreoffice-hello-world-watermarked/contents.yml index d7c5c34..272a558 100644 --- a/tests/Samples/files/libreoffice-hello-world-watermarked/contents.yml +++ b/tests/Samples/files/libreoffice-hello-world-watermarked/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: null diff --git a/tests/Samples/files/libreofficelorem-ipsum-with-titles-and-formatting/contents.yml b/tests/Samples/files/libreofficelorem-ipsum-with-titles-and-formatting/contents.yml index 991b0d9..35f54e7 100644 --- a/tests/Samples/files/libreofficelorem-ipsum-with-titles-and-formatting/contents.yml +++ b/tests/Samples/files/libreofficelorem-ipsum-with-titles-and-formatting/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: null diff --git a/tests/Samples/files/pdftex-hello-world-simple/contents.yml b/tests/Samples/files/pdftex-hello-world-simple/contents.yml index 081fd50..4da1c9a 100644 --- a/tests/Samples/files/pdftex-hello-world-simple/contents.yml +++ b/tests/Samples/files/pdftex-hello-world-simple/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.5' password: null title: null diff --git a/tests/Samples/files/text-objects-across-multiple-streams/contents.yml b/tests/Samples/files/text-objects-across-multiple-streams/contents.yml index 7341f95..6975a95 100644 --- a/tests/Samples/files/text-objects-across-multiple-streams/contents.yml +++ b/tests/Samples/files/text-objects-across-multiple-streams/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.4' password: null title: 'MPK Router Control Interface to 7707DT' diff --git a/tests/Samples/files/word365-hello-world-simple/contents.yml b/tests/Samples/files/word365-hello-world-simple/contents.yml index 33ac58d..879471b 100644 --- a/tests/Samples/files/word365-hello-world-simple/contents.yml +++ b/tests/Samples/files/word365-hello-world-simple/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: null diff --git a/tests/Samples/files/word365-lorem-ipsum-with-titles-and-formatting/contents.yml b/tests/Samples/files/word365-lorem-ipsum-with-titles-and-formatting/contents.yml index 7b2250b..e5bfa50 100644 --- a/tests/Samples/files/word365-lorem-ipsum-with-titles-and-formatting/contents.yml +++ b/tests/Samples/files/word365-lorem-ipsum-with-titles-and-formatting/contents.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=./.yml-schema.json +# yaml-language-server: $schema=../../schema.json version: '1.7' password: null title: null diff --git a/tests/Samples/update-content b/tests/Samples/update-content index d21b573..51c8ccb 100755 --- a/tests/Samples/update-content +++ b/tests/Samples/update-content @@ -62,6 +62,6 @@ foreach (array_diff(scandir($filesDir = __DIR__ . '/files'), ['..', '.']) as $sa file_put_contents( $sampleFolder . DIRECTORY_SEPARATOR . 'contents.yml', - '# yaml-language-server: $schema=./.yml-schema.json' . PHP_EOL . trim($yamlContent, PHP_EOL) . PHP_EOL + '# yaml-language-server: $schema=../../schema.json' . PHP_EOL . trim($yamlContent, PHP_EOL) . PHP_EOL ); } From 5fa35ac5278c4169343be4f7108b861cc337440a Mon Sep 17 00:00:00 2001 From: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com> Date: Tue, 4 Nov 2025 20:26:48 +0100 Subject: [PATCH 3/9] Distinguish between user and owner passwords in samples content (#281) --- tests/Samples/files/gdocs-hello-world-simple/contents.yml | 3 ++- tests/Samples/files/gdocs-image-simple/contents.yml | 3 ++- .../contents.yml | 3 ++- tests/Samples/files/gdocs-scripts/contents.yml | 3 ++- tests/Samples/files/issue-127/contents.yml | 3 ++- tests/Samples/files/issue-149/contents.yml | 3 ++- tests/Samples/files/issue-150/contents.yml | 3 ++- tests/Samples/files/issue-214/contents.yml | 3 ++- tests/Samples/files/issue-235/contents.yml | 3 ++- tests/Samples/files/issue-254/contents.yml | 3 ++- tests/Samples/files/issue-255/contents.yml | 3 ++- .../files/libreoffice-hello-world-hybrid/contents.yml | 3 ++- .../files/libreoffice-hello-world-simple/contents.yml | 3 ++- .../files/libreoffice-hello-world-watermarked/contents.yml | 3 ++- .../contents.yml | 3 ++- tests/Samples/files/pdftex-hello-world-simple/contents.yml | 3 ++- .../files/text-objects-across-multiple-streams/contents.yml | 3 ++- tests/Samples/files/word365-hello-world-simple/contents.yml | 3 ++- .../contents.yml | 3 ++- tests/Samples/schema.json | 6 +++++- tests/Samples/update-content | 3 ++- 21 files changed, 45 insertions(+), 21 deletions(-) diff --git a/tests/Samples/files/gdocs-hello-world-simple/contents.yml b/tests/Samples/files/gdocs-hello-world-simple/contents.yml index aedab56..9262f9a 100644 --- a/tests/Samples/files/gdocs-hello-world-simple/contents.yml +++ b/tests/Samples/files/gdocs-hello-world-simple/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.4' -password: null +userPassword: null +ownerPassword: null title: 'Untitled document' producer: 'Skia/PDF m133 Google Docs Renderer' author: null diff --git a/tests/Samples/files/gdocs-image-simple/contents.yml b/tests/Samples/files/gdocs-image-simple/contents.yml index fecbd06..4f3e312 100644 --- a/tests/Samples/files/gdocs-image-simple/contents.yml +++ b/tests/Samples/files/gdocs-image-simple/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.4' -password: null +userPassword: null +ownerPassword: null title: 'File with image' producer: 'Skia/PDF m138 Google Docs Renderer' author: null diff --git a/tests/Samples/files/gdocs-lorem-ipsum-with-titles-and-formatting/contents.yml b/tests/Samples/files/gdocs-lorem-ipsum-with-titles-and-formatting/contents.yml index b567223..049df87 100644 --- a/tests/Samples/files/gdocs-lorem-ipsum-with-titles-and-formatting/contents.yml +++ b/tests/Samples/files/gdocs-lorem-ipsum-with-titles-and-formatting/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.4' -password: null +userPassword: null +ownerPassword: null title: 'lorem ipsum' producer: 'Skia/PDF m133 Google Docs Renderer' author: null diff --git a/tests/Samples/files/gdocs-scripts/contents.yml b/tests/Samples/files/gdocs-scripts/contents.yml index f84b84d..103ee2e 100644 --- a/tests/Samples/files/gdocs-scripts/contents.yml +++ b/tests/Samples/files/gdocs-scripts/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.4' -password: null +userPassword: null +ownerPassword: null title: Scripts producer: 'Skia/PDF m134 Google Docs Renderer' author: null diff --git a/tests/Samples/files/issue-127/contents.yml b/tests/Samples/files/issue-127/contents.yml index 120e77f..1663177 100644 --- a/tests/Samples/files/issue-127/contents.yml +++ b/tests/Samples/files/issue-127/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '2.0' -password: null +userPassword: null +ownerPassword: null title: !!binary /v8AMQAuADIAIABUAGEAYgBlAGwAbABlAF8AMQBfAEsAQQBfADEAOQAtADAANwAwADUAOQ== producer: 'Kofax Power PDF' author: 'Rehm, Martin (LSN)' diff --git a/tests/Samples/files/issue-149/contents.yml b/tests/Samples/files/issue-149/contents.yml index 415177b..8356650 100644 --- a/tests/Samples/files/issue-149/contents.yml +++ b/tests/Samples/files/issue-149/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: '(Dossier représentation Mme BEGOT-3.pdf)' producer: 'GPL Ghostscript 10.03.1' author: mgomes03 diff --git a/tests/Samples/files/issue-150/contents.yml b/tests/Samples/files/issue-150/contents.yml index e72bc65..e0ab106 100644 --- a/tests/Samples/files/issue-150/contents.yml +++ b/tests/Samples/files/issue-150/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.3' -password: null +userPassword: null +ownerPassword: null title: null producer: 'RICOH M C251FW (6577f3)' author: null diff --git a/tests/Samples/files/issue-214/contents.yml b/tests/Samples/files/issue-214/contents.yml index 5a77589..6a13755 100644 --- a/tests/Samples/files/issue-214/contents.yml +++ b/tests/Samples/files/issue-214/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: null producer: 'PStill Engine 1.90' author: null diff --git a/tests/Samples/files/issue-235/contents.yml b/tests/Samples/files/issue-235/contents.yml index 5842241..96f4f94 100644 --- a/tests/Samples/files/issue-235/contents.yml +++ b/tests/Samples/files/issue-235/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.6' -password: null +userPassword: null +ownerPassword: null title: '' producer: 'Adobe PDF Library 20.1.50' author: null diff --git a/tests/Samples/files/issue-254/contents.yml b/tests/Samples/files/issue-254/contents.yml index f3dd54e..da8e1dd 100644 --- a/tests/Samples/files/issue-254/contents.yml +++ b/tests/Samples/files/issue-254/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: 'Publications Office' producer: 'PDFlib+PDI 9.1.2p4 (C++/Win64)' author: 'Publications Office' diff --git a/tests/Samples/files/issue-255/contents.yml b/tests/Samples/files/issue-255/contents.yml index 558b620..9642271 100644 --- a/tests/Samples/files/issue-255/contents.yml +++ b/tests/Samples/files/issue-255/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: null producer: 'PStill Engine 1.90' author: null diff --git a/tests/Samples/files/libreoffice-hello-world-hybrid/contents.yml b/tests/Samples/files/libreoffice-hello-world-hybrid/contents.yml index 9641237..cd6a5ae 100644 --- a/tests/Samples/files/libreoffice-hello-world-hybrid/contents.yml +++ b/tests/Samples/files/libreoffice-hello-world-hybrid/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: null producer: 'LibreOffice 24.2' author: null diff --git a/tests/Samples/files/libreoffice-hello-world-simple/contents.yml b/tests/Samples/files/libreoffice-hello-world-simple/contents.yml index a7dd863..5ac9181 100644 --- a/tests/Samples/files/libreoffice-hello-world-simple/contents.yml +++ b/tests/Samples/files/libreoffice-hello-world-simple/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: null producer: 'LibreOffice 24.2' author: null diff --git a/tests/Samples/files/libreoffice-hello-world-watermarked/contents.yml b/tests/Samples/files/libreoffice-hello-world-watermarked/contents.yml index 272a558..8103c63 100644 --- a/tests/Samples/files/libreoffice-hello-world-watermarked/contents.yml +++ b/tests/Samples/files/libreoffice-hello-world-watermarked/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: null producer: 'LibreOffice 24.2' author: null diff --git a/tests/Samples/files/libreofficelorem-ipsum-with-titles-and-formatting/contents.yml b/tests/Samples/files/libreofficelorem-ipsum-with-titles-and-formatting/contents.yml index 35f54e7..2db529c 100644 --- a/tests/Samples/files/libreofficelorem-ipsum-with-titles-and-formatting/contents.yml +++ b/tests/Samples/files/libreofficelorem-ipsum-with-titles-and-formatting/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: null producer: 'LibreOffice 24.2' author: null diff --git a/tests/Samples/files/pdftex-hello-world-simple/contents.yml b/tests/Samples/files/pdftex-hello-world-simple/contents.yml index 4da1c9a..586f378 100644 --- a/tests/Samples/files/pdftex-hello-world-simple/contents.yml +++ b/tests/Samples/files/pdftex-hello-world-simple/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.5' -password: null +userPassword: null +ownerPassword: null title: null producer: pdfTeX-1.40.25 author: null diff --git a/tests/Samples/files/text-objects-across-multiple-streams/contents.yml b/tests/Samples/files/text-objects-across-multiple-streams/contents.yml index 6975a95..85305c2 100644 --- a/tests/Samples/files/text-objects-across-multiple-streams/contents.yml +++ b/tests/Samples/files/text-objects-across-multiple-streams/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.4' -password: null +userPassword: null +ownerPassword: null title: 'MPK Router Control Interface to 7707DT' producer: 'Acrobat Distiller 5.0.5 (Windows)' author: 'Alex Martin' diff --git a/tests/Samples/files/word365-hello-world-simple/contents.yml b/tests/Samples/files/word365-hello-world-simple/contents.yml index 879471b..8d5b5b1 100644 --- a/tests/Samples/files/word365-hello-world-simple/contents.yml +++ b/tests/Samples/files/word365-hello-world-simple/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: null producer: null author: 'Frank Prins' diff --git a/tests/Samples/files/word365-lorem-ipsum-with-titles-and-formatting/contents.yml b/tests/Samples/files/word365-lorem-ipsum-with-titles-and-formatting/contents.yml index e5bfa50..505866d 100644 --- a/tests/Samples/files/word365-lorem-ipsum-with-titles-and-formatting/contents.yml +++ b/tests/Samples/files/word365-lorem-ipsum-with-titles-and-formatting/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: '1.7' -password: null +userPassword: null +ownerPassword: null title: null producer: null author: 'Frank Prins' diff --git a/tests/Samples/schema.json b/tests/Samples/schema.json index e8a8c1f..0aa7bbe 100644 --- a/tests/Samples/schema.json +++ b/tests/Samples/schema.json @@ -6,10 +6,14 @@ "type": "number", "description": "PDF version" }, - "password": { + "userPassword": { "type": ["string", "null"], "description": "Password to open the file" }, + "ownerPassword": { + "type": ["string", "null"], + "description": "Password to restrict document actions" + }, "title": { "type": ["string", "null"], "description": "Title of the document" diff --git a/tests/Samples/update-content b/tests/Samples/update-content index 51c8ccb..9eacf6d 100755 --- a/tests/Samples/update-content +++ b/tests/Samples/update-content @@ -46,7 +46,8 @@ foreach (array_diff(scandir($filesDir = __DIR__ . '/files'), ['..', '.']) as $sa $yamlContent = Yaml::dump( [ 'version' => $parsedPDF->version->value, - 'password' => null, + 'userPassword' => null, + 'ownerPassword' => null, 'title' => $parsedPDF->getInformationDictionary()?->getTitle(), 'producer' => $parsedPDF->getInformationDictionary()?->getProducer(), 'author' => $parsedPDF->getInformationDictionary()?->getAuthor(), From 8186011abe5a8d0fef69e673228129b6dad2f991 Mon Sep 17 00:00:00 2001 From: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com> Date: Tue, 4 Nov 2025 20:41:56 +0100 Subject: [PATCH 4/9] Fix user/ownerPassword entries for encrypted document sample --- .../libreoffice-hello-world-open-password-hello/contents.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml b/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml index 4a0b1b5..a207ab4 100644 --- a/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml +++ b/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml @@ -1,6 +1,7 @@ # yaml-language-server: $schema=../../schema.json version: 1.7 -password: Hello +userPassword: Hello +ownerPassword: null title: null producer: LibreOffice 24.2 author: null From af8fcbb3ea051681cfbda8bd60a9b6d1a050d2a5 Mon Sep 17 00:00:00 2001 From: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com> Date: Tue, 4 Nov 2025 20:42:14 +0100 Subject: [PATCH 5/9] Fix incorrect userPassword entry for encrypted document --- .../libreoffice-hello-world-open-password-hello/contents.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml b/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml index a207ab4..26d97fa 100644 --- a/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml +++ b/tests/Samples/files/libreoffice-hello-world-open-password-hello/contents.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=../../schema.json version: 1.7 -userPassword: Hello +userPassword: hello ownerPassword: null title: null producer: LibreOffice 24.2 From 5a3ecf5e3b34cbed407c4e7b399383d6f9f4af76 Mon Sep 17 00:00:00 2001 From: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com> Date: Tue, 4 Nov 2025 20:43:04 +0100 Subject: [PATCH 6/9] Fix incorrect user/ownerPassword entries in sample tests --- tests/Samples/Info/FileInfo.php | 3 ++- tests/Samples/Info/SampleProvider.php | 7 ++++--- tests/Samples/SamplesTest.php | 5 ++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/tests/Samples/Info/FileInfo.php b/tests/Samples/Info/FileInfo.php index 0938686..4f4dd86 100644 --- a/tests/Samples/Info/FileInfo.php +++ b/tests/Samples/Info/FileInfo.php @@ -9,7 +9,8 @@ class FileInfo { public function __construct( public readonly string $pdfPath, public readonly int $version, - public readonly ?string $password, + public readonly ?string $userPassword, + public readonly ?string $ownerPassword, public readonly ?string $title, public readonly ?string $producer, public readonly ?string $author, diff --git a/tests/Samples/Info/SampleProvider.php b/tests/Samples/Info/SampleProvider.php index 7b93e0f..81490b8 100644 --- a/tests/Samples/Info/SampleProvider.php +++ b/tests/Samples/Info/SampleProvider.php @@ -23,9 +23,9 @@ public static function samples(): iterable { throw new RuntimeException(); } - /** @var object{version: float, password: ?string, title: ?string, producer: ?string, author: ?string, creator: ?string, creationDate: ?\DateTimeImmutable, modificationDate: ?\DateTimeImmutable, pages: list} $content */ + /** @var object{version: float, userPassword: ?string, ownerPassword: ?string, title: ?string, producer: ?string, author: ?string, creator: ?string, creationDate: ?\DateTimeImmutable, modificationDate: ?\DateTimeImmutable, pages: list} $content */ $content = Yaml::parseFile($contentsPath, Yaml::PARSE_OBJECT_FOR_MAP | Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE | Yaml::PARSE_DATETIME); - if ($content->password !== null) { + if ($content->userPassword !== null) { continue; } @@ -33,7 +33,8 @@ public static function samples(): iterable { new FileInfo( $pdfPath, (int) ($content->version * 10), - $content->password, + $content->userPassword, + $content->ownerPassword, $content->title, $content->producer, $content->author, diff --git a/tests/Samples/SamplesTest.php b/tests/Samples/SamplesTest.php index 625b24b..7544a31 100644 --- a/tests/Samples/SamplesTest.php +++ b/tests/Samples/SamplesTest.php @@ -6,6 +6,7 @@ use PHPUnit\Framework\Attributes\CoversNothing; use PHPUnit\Framework\Attributes\DataProviderExternal; use PHPUnit\Framework\TestCase; +use PrinsFrank\PdfParser\Document\Security\StandardSecurity; use PrinsFrank\PdfParser\Document\Version\Version; use PrinsFrank\PdfParser\PdfParser; use PrinsFrank\PdfParser\Tests\Samples\Info\FileInfo; @@ -19,7 +20,9 @@ class SamplesTest extends TestCase { /** @throws TypeError|ValueError|RuntimeException */ #[DataProviderExternal(SampleProvider::class, 'samples')] public function testExternalSourcePDFs(FileInfo $fileInfo): void { - $document = (new PdfParser())->parseFile($fileInfo->pdfPath); + $document = (new PdfParser()) + ->parseFile($fileInfo->pdfPath, security: new StandardSecurity($fileInfo->userPassword, $fileInfo->ownerPassword)); + static::assertSame(Version::from(number_format($fileInfo->version / 10, 1)), $document->version); static::assertSame($fileInfo->title, $document->getInformationDictionary()?->getTitle()); static::assertSame($fileInfo->producer, $document->getInformationDictionary()?->getProducer()); From 5cf40903ab82f4285136fcfbed480d14f4bc3976 Mon Sep 17 00:00:00 2001 From: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com> Date: Tue, 4 Nov 2025 20:43:33 +0100 Subject: [PATCH 7/9] Update test name now that samples are no longer external --- tests/Samples/SamplesTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Samples/SamplesTest.php b/tests/Samples/SamplesTest.php index 7544a31..e4b6976 100644 --- a/tests/Samples/SamplesTest.php +++ b/tests/Samples/SamplesTest.php @@ -19,7 +19,7 @@ class SamplesTest extends TestCase { /** @throws TypeError|ValueError|RuntimeException */ #[DataProviderExternal(SampleProvider::class, 'samples')] - public function testExternalSourcePDFs(FileInfo $fileInfo): void { + public function testSamples(FileInfo $fileInfo): void { $document = (new PdfParser()) ->parseFile($fileInfo->pdfPath, security: new StandardSecurity($fileInfo->userPassword, $fileInfo->ownerPassword)); From 83e68ae9c3d213fdc0a109d19aedc66ac80bacad Mon Sep 17 00:00:00 2001 From: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com> Date: Tue, 4 Nov 2025 20:43:54 +0100 Subject: [PATCH 8/9] Enable parsing encrypted documents in samples test --- tests/Samples/Info/SampleProvider.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/Samples/Info/SampleProvider.php b/tests/Samples/Info/SampleProvider.php index 81490b8..78e5514 100644 --- a/tests/Samples/Info/SampleProvider.php +++ b/tests/Samples/Info/SampleProvider.php @@ -25,10 +25,6 @@ public static function samples(): iterable { /** @var object{version: float, userPassword: ?string, ownerPassword: ?string, title: ?string, producer: ?string, author: ?string, creator: ?string, creationDate: ?\DateTimeImmutable, modificationDate: ?\DateTimeImmutable, pages: list} $content */ $content = Yaml::parseFile($contentsPath, Yaml::PARSE_OBJECT_FOR_MAP | Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE | Yaml::PARSE_DATETIME); - if ($content->userPassword !== null) { - continue; - } - yield $sampleName => [ new FileInfo( $pdfPath, From ebd1db0b1ee4a85a0d1607d156d17bd82c250b3b Mon Sep 17 00:00:00 2001 From: PrinsFrank <25006490+PrinsFrank@users.noreply.github.com> Date: Tue, 4 Nov 2025 20:44:08 +0100 Subject: [PATCH 9/9] Re-enable support for encrypted documents --- src/Document/Document.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Document/Document.php b/src/Document/Document.php index b511c18..3b2fddf 100644 --- a/src/Document/Document.php +++ b/src/Document/Document.php @@ -20,6 +20,7 @@ use PrinsFrank\PdfParser\Document\Object\Item\UncompressedObject\UncompressedObjectParser; use PrinsFrank\PdfParser\Document\Security\StandardSecurity; use PrinsFrank\PdfParser\Document\Version\Version; +use PrinsFrank\PdfParser\Exception\AuthenticationFailedException; use PrinsFrank\PdfParser\Exception\NotImplementedException; use PrinsFrank\PdfParser\Exception\ParseFailureException; use PrinsFrank\PdfParser\Exception\PdfParserException; @@ -40,8 +41,16 @@ public function __construct( public readonly CrossReferenceSource $crossReferenceSource, public ?StandardSecurity $security, ) { - if ($this->getEncryptDictionary() !== null) { - throw new NotImplementedException('Encrypted documents are not supported yet'); + if (($encryptDictionary = $this->getEncryptDictionary()) !== null) { + if ($encryptDictionary->getSecurityHandler() === null) { + throw new NotImplementedException('Empty security handler is not supported'); + } + + $this->security ??= new StandardSecurity(); + if ($this->security->isUserPasswordValid($encryptDictionary, $crossReferenceSource->getFirstId()) === false + && $this->security->isOwnerPasswordValid($encryptDictionary, $crossReferenceSource->getFirstId()) === false) { + throw new AuthenticationFailedException($security === null ? 'Document could not be decrypted using default credentials, please supply an owner or user password' : 'User and owner password are invalid, please supply valid credentials'); + } } }