pdf-lite 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.commitlintrc.cjs +25 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
- package/.github/workflows/docs.yaml +93 -0
- package/.github/workflows/prepare-release.yaml +79 -0
- package/.github/workflows/release.yaml +80 -0
- package/.github/workflows/test.yaml +35 -0
- package/.husky/commit-msg +1 -0
- package/.husky/pre-commit +1 -0
- package/.prettierignore +4 -0
- package/.prettierrc +4 -0
- package/CONTRIBUTING.md +109 -0
- package/EXAMPLES.md +1515 -0
- package/LICENSE +21 -0
- package/README.md +285 -0
- package/examples/001-create-pdf.ts +112 -0
- package/examples/002-create-encrypted-pdf.ts +121 -0
- package/examples/003-sign-pdf.ts +347 -0
- package/examples/004-incremental-update.ts +206 -0
- package/examples/005-modify-acroform.ts +374 -0
- package/examples/006-tokeniser-example.ts +131 -0
- package/examples/007-decoder-example.ts +197 -0
- package/package.json +72 -0
- package/packages/pdf-lite/README.md +3 -0
- package/packages/pdf-lite/package.json +68 -0
- package/packages/pdf-lite/scripts/create-encryption-tests.sh +41 -0
- package/packages/pdf-lite/scripts/gen-signing-keys.sh +290 -0
- package/packages/pdf-lite/scripts/generate-all-signing-keys.sh +70 -0
- package/packages/pdf-lite/src/core/decoder.ts +454 -0
- package/packages/pdf-lite/src/core/generators.ts +128 -0
- package/packages/pdf-lite/src/core/incremental-parser.ts +221 -0
- package/packages/pdf-lite/src/core/index.ts +2 -0
- package/packages/pdf-lite/src/core/objects/pdf-array.ts +54 -0
- package/packages/pdf-lite/src/core/objects/pdf-boolean.ts +19 -0
- package/packages/pdf-lite/src/core/objects/pdf-comment.ts +50 -0
- package/packages/pdf-lite/src/core/objects/pdf-date.ts +74 -0
- package/packages/pdf-lite/src/core/objects/pdf-dictionary.ts +171 -0
- package/packages/pdf-lite/src/core/objects/pdf-hexadecimal.ts +54 -0
- package/packages/pdf-lite/src/core/objects/pdf-indirect-object.ts +137 -0
- package/packages/pdf-lite/src/core/objects/pdf-name.ts +19 -0
- package/packages/pdf-lite/src/core/objects/pdf-null.ts +15 -0
- package/packages/pdf-lite/src/core/objects/pdf-number.ts +98 -0
- package/packages/pdf-lite/src/core/objects/pdf-object-reference.ts +30 -0
- package/packages/pdf-lite/src/core/objects/pdf-object.ts +107 -0
- package/packages/pdf-lite/src/core/objects/pdf-start-xref.ts +39 -0
- package/packages/pdf-lite/src/core/objects/pdf-stream.ts +687 -0
- package/packages/pdf-lite/src/core/objects/pdf-string.ts +38 -0
- package/packages/pdf-lite/src/core/objects/pdf-trailer.ts +57 -0
- package/packages/pdf-lite/src/core/objects/pdf-xref-table.ts +264 -0
- package/packages/pdf-lite/src/core/parser.ts +22 -0
- package/packages/pdf-lite/src/core/ref.ts +102 -0
- package/packages/pdf-lite/src/core/serializer.ts +68 -0
- package/packages/pdf-lite/src/core/streams/object-stream.ts +20 -0
- package/packages/pdf-lite/src/core/tokeniser.ts +687 -0
- package/packages/pdf-lite/src/core/tokens/boolean-token.ts +20 -0
- package/packages/pdf-lite/src/core/tokens/byte-offset-token.ts +20 -0
- package/packages/pdf-lite/src/core/tokens/comment-token.ts +32 -0
- package/packages/pdf-lite/src/core/tokens/end-array-token.ts +10 -0
- package/packages/pdf-lite/src/core/tokens/end-dictionary-token.ts +10 -0
- package/packages/pdf-lite/src/core/tokens/end-object-token.ts +10 -0
- package/packages/pdf-lite/src/core/tokens/end-stream-token.ts +11 -0
- package/packages/pdf-lite/src/core/tokens/hexadecimal-token.ts +22 -0
- package/packages/pdf-lite/src/core/tokens/name-token.ts +19 -0
- package/packages/pdf-lite/src/core/tokens/null-token.ts +9 -0
- package/packages/pdf-lite/src/core/tokens/number-token.ts +164 -0
- package/packages/pdf-lite/src/core/tokens/object-reference-token.ts +24 -0
- package/packages/pdf-lite/src/core/tokens/start-array-token.ts +10 -0
- package/packages/pdf-lite/src/core/tokens/start-dictionary-token.ts +10 -0
- package/packages/pdf-lite/src/core/tokens/start-object-token.ts +28 -0
- package/packages/pdf-lite/src/core/tokens/start-stream-token.ts +52 -0
- package/packages/pdf-lite/src/core/tokens/start-xref-token.ts +10 -0
- package/packages/pdf-lite/src/core/tokens/stream-chunk-token.ts +8 -0
- package/packages/pdf-lite/src/core/tokens/string-token.ts +17 -0
- package/packages/pdf-lite/src/core/tokens/token.ts +43 -0
- package/packages/pdf-lite/src/core/tokens/trailer-token.ts +12 -0
- package/packages/pdf-lite/src/core/tokens/whitespace-token.ts +43 -0
- package/packages/pdf-lite/src/core/tokens/xref-table-entry-token.ts +65 -0
- package/packages/pdf-lite/src/core/tokens/xref-table-section-start-token.ts +31 -0
- package/packages/pdf-lite/src/core/tokens/xref-table-start-token.ts +13 -0
- package/packages/pdf-lite/src/crypto/ciphers/aes128.ts +63 -0
- package/packages/pdf-lite/src/crypto/ciphers/aes256.ts +50 -0
- package/packages/pdf-lite/src/crypto/ciphers/rc4.ts +82 -0
- package/packages/pdf-lite/src/crypto/constants.ts +10 -0
- package/packages/pdf-lite/src/crypto/key-derivation/key-derivation-aes256.ts +213 -0
- package/packages/pdf-lite/src/crypto/key-derivation/key-derivation.ts +122 -0
- package/packages/pdf-lite/src/crypto/key-gen/key-gen-aes256.ts +79 -0
- package/packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-128.ts +190 -0
- package/packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-40.ts +129 -0
- package/packages/pdf-lite/src/crypto/types.ts +6 -0
- package/packages/pdf-lite/src/crypto/utils.ts +81 -0
- package/packages/pdf-lite/src/filters/ascii85.ts +128 -0
- package/packages/pdf-lite/src/filters/asciihex.ts +55 -0
- package/packages/pdf-lite/src/filters/flate.ts +39 -0
- package/packages/pdf-lite/src/filters/lzw.ts +144 -0
- package/packages/pdf-lite/src/filters/pass-through.ts +37 -0
- package/packages/pdf-lite/src/filters/runlength.ts +92 -0
- package/packages/pdf-lite/src/filters/types.ts +21 -0
- package/packages/pdf-lite/src/index.ts +4 -0
- package/packages/pdf-lite/src/pdf/errors.ts +5 -0
- package/packages/pdf-lite/src/pdf/index.ts +4 -0
- package/packages/pdf-lite/src/pdf/pdf-document.ts +924 -0
- package/packages/pdf-lite/src/pdf/pdf-reader.ts +57 -0
- package/packages/pdf-lite/src/pdf/pdf-revision.ts +234 -0
- package/packages/pdf-lite/src/pdf/pdf-xref-lookup.ts +527 -0
- package/packages/pdf-lite/src/security/crypt-filters/aesv2.ts +58 -0
- package/packages/pdf-lite/src/security/crypt-filters/aesv3.ts +56 -0
- package/packages/pdf-lite/src/security/crypt-filters/base.ts +140 -0
- package/packages/pdf-lite/src/security/crypt-filters/identity.ts +40 -0
- package/packages/pdf-lite/src/security/crypt-filters/v2.ts +59 -0
- package/packages/pdf-lite/src/security/handlers/base.ts +625 -0
- package/packages/pdf-lite/src/security/handlers/pubSec.ts +413 -0
- package/packages/pdf-lite/src/security/handlers/utils.ts +304 -0
- package/packages/pdf-lite/src/security/handlers/v1.ts +225 -0
- package/packages/pdf-lite/src/security/handlers/v2.ts +128 -0
- package/packages/pdf-lite/src/security/handlers/v4.ts +379 -0
- package/packages/pdf-lite/src/security/handlers/v5.ts +298 -0
- package/packages/pdf-lite/src/security/types.ts +158 -0
- package/packages/pdf-lite/src/signing/document-security-store.ts +224 -0
- package/packages/pdf-lite/src/signing/index.ts +3 -0
- package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-detached.ts +154 -0
- package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-sha1.ts +161 -0
- package/packages/pdf-lite/src/signing/signatures/adbe-x509-rsa-sha1.ts +106 -0
- package/packages/pdf-lite/src/signing/signatures/base.ts +229 -0
- package/packages/pdf-lite/src/signing/signatures/etsi-cades-detached.ts +229 -0
- package/packages/pdf-lite/src/signing/signatures/etsi-rfc3161.ts +92 -0
- package/packages/pdf-lite/src/signing/signatures/index.ts +6 -0
- package/packages/pdf-lite/src/signing/signer.ts +120 -0
- package/packages/pdf-lite/src/signing/types.ts +86 -0
- package/packages/pdf-lite/src/signing/utils.ts +71 -0
- package/packages/pdf-lite/src/types.ts +44 -0
- package/packages/pdf-lite/src/utils/IterableReadableStream.ts +30 -0
- package/packages/pdf-lite/src/utils/algos.ts +446 -0
- package/packages/pdf-lite/src/utils/assert.ts +42 -0
- package/packages/pdf-lite/src/utils/bytesToHex.ts +18 -0
- package/packages/pdf-lite/src/utils/bytesToHexBytes.ts +27 -0
- package/packages/pdf-lite/src/utils/bytesToString.ts +17 -0
- package/packages/pdf-lite/src/utils/concatUint8Arrays.ts +26 -0
- package/packages/pdf-lite/src/utils/escapeString.ts +49 -0
- package/packages/pdf-lite/src/utils/hexBytesToBytes.ts +22 -0
- package/packages/pdf-lite/src/utils/hexBytesToString.ts +21 -0
- package/packages/pdf-lite/src/utils/hexToBytes.ts +18 -0
- package/packages/pdf-lite/src/utils/padBytes.ts +25 -0
- package/packages/pdf-lite/src/utils/predictors.ts +332 -0
- package/packages/pdf-lite/src/utils/replaceInBuffer.ts +56 -0
- package/packages/pdf-lite/src/utils/stringToBytes.ts +22 -0
- package/packages/pdf-lite/src/utils/stringToHexBytes.ts +23 -0
- package/packages/pdf-lite/src/utils/unescapeString.ts +123 -0
- package/packages/pdf-lite/test/acceptance/__snapshots__/versions.node.test.ts.snap +60766 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.3/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-aes-128.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-aes-256.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-rc4-128.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic-rc4-40.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.4/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.5/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.6/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/1.7/basic.pdf +0 -0
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-aes-128.pdf +43 -0
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-aes-256.pdf +43 -0
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-128.pdf +43 -0
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-40.pdf +44 -0
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic.pdf +79 -0
- package/packages/pdf-lite/test/acceptance/versions.node.test.ts +41 -0
- package/packages/pdf-lite/test/unit/__snapshots__/decoder.node.test.ts.snap +86947 -0
- package/packages/pdf-lite/test/unit/__snapshots__/tokeniser.node.test.ts.snap +131829 -0
- package/packages/pdf-lite/test/unit/ciphers.test.ts +61 -0
- package/packages/pdf-lite/test/unit/decoder.node.test.ts +21 -0
- package/packages/pdf-lite/test/unit/decoder.test.ts +567 -0
- package/packages/pdf-lite/test/unit/filters.test.ts +67 -0
- package/packages/pdf-lite/test/unit/fixtures/basic.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-aes-128.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-aes-256.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-rc4-128.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/encrypted_v1/basic-rc4-40.pdf +43 -0
- package/packages/pdf-lite/test/unit/fixtures/protectedAdobeLivecycle.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/rsa-2048/index.ts +187 -0
- package/packages/pdf-lite/test/unit/fixtures/template.pdf +0 -0
- package/packages/pdf-lite/test/unit/incremental-update.test.ts +0 -0
- package/packages/pdf-lite/test/unit/objects.test.ts +0 -0
- package/packages/pdf-lite/test/unit/pdf-document-signing.test.ts +0 -0
- package/packages/pdf-lite/test/unit/pdf-revision.test.ts +195 -0
- package/packages/pdf-lite/test/unit/pdf.browser.test.ts +0 -0
- package/packages/pdf-lite/test/unit/predictors.test.ts +226 -0
- package/packages/pdf-lite/test/unit/ref.test.ts +158 -0
- package/packages/pdf-lite/test/unit/security-handlers.test.ts +645 -0
- package/packages/pdf-lite/test/unit/serializer.test.ts +81 -0
- package/packages/pdf-lite/test/unit/signature-objects.test.ts +814 -0
- package/packages/pdf-lite/test/unit/string-escaping.test.ts +84 -0
- package/packages/pdf-lite/test/unit/tokeniser.node.test.ts +38 -0
- package/packages/pdf-lite/test/unit/tokeniser.test.ts +1213 -0
- package/packages/pdf-lite/test/unit/utils.test.ts +248 -0
- package/packages/pdf-lite/test/unit/xref-lookup.test.ts +72 -0
- package/packages/pdf-lite/tsconfig.json +4 -0
- package/packages/pdf-lite/tsconfig.prod.json +8 -0
- package/packages/pdf-lite/typedoc.json +14 -0
- package/packages/pdf-lite/vitest.config.ts +43 -0
- package/pnpm-workspace.yaml +2 -0
- package/renovate.json +34 -0
- package/scripts/build-examples.ts +30 -0
- package/scripts/bump-version.sh +56 -0
- package/scripts/gen-html-docs.sh +21 -0
- package/scripts/gen-md-docs.sh +15 -0
- package/scripts/prepare-release.sh +33 -0
- package/tsconfig.json +22 -0
- package/tsconfig.prod.json +12 -0
- package/typedoc.json +34 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
%PDF-2.0
|
|
2
|
+
%����
|
|
3
|
+
1 0 obj
|
|
4
|
+
<< /AcroForm 2 0 R /Pages 3 0 R /Type /Catalog >>
|
|
5
|
+
endobj
|
|
6
|
+
2 0 obj
|
|
7
|
+
<< /NeedAppearances true /Producer <3f7dd753bfc7> >>
|
|
8
|
+
endobj
|
|
9
|
+
3 0 obj
|
|
10
|
+
<< /Count 1 /Kids [ 4 0 R ] /Type /Pages >>
|
|
11
|
+
endobj
|
|
12
|
+
4 0 obj
|
|
13
|
+
<< /Contents 5 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 3 0 R /Resources << /Font 6 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >> /Type /Page >>
|
|
14
|
+
endobj
|
|
15
|
+
5 0 obj
|
|
16
|
+
<< /Length 84 /Filter /FlateDecode >>
|
|
17
|
+
stream
|
|
18
|
+
�t�vӏ���٫_���cR�ώЦ���������=�p�V:-�Ѽ�#��V/�Nք͊yxm���Bb}`D�gݲendstream
|
|
19
|
+
endobj
|
|
20
|
+
6 0 obj
|
|
21
|
+
<< /F1 7 0 R >>
|
|
22
|
+
endobj
|
|
23
|
+
7 0 obj
|
|
24
|
+
<< /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >>
|
|
25
|
+
endobj
|
|
26
|
+
8 0 obj
|
|
27
|
+
<< /Filter /Standard /Length 128 /O <35295b66f96d5cc28136704cb7d7f11bb875b8fc825755878c946d93b46904b7> /P -4 /R 3 /U <1291f6e8328286eb86f681dce6c4cb220122456a91bae5134273a6db134c87c4> /V 2 >>
|
|
28
|
+
endobj
|
|
29
|
+
xref
|
|
30
|
+
0 9
|
|
31
|
+
0000000000 65535 f
|
|
32
|
+
0000000015 00000 n
|
|
33
|
+
0000000080 00000 n
|
|
34
|
+
0000000148 00000 n
|
|
35
|
+
0000000207 00000 n
|
|
36
|
+
0000000406 00000 n
|
|
37
|
+
0000000560 00000 n
|
|
38
|
+
0000000591 00000 n
|
|
39
|
+
0000000698 00000 n
|
|
40
|
+
trailer << /Info 2 0 R /Root 1 0 R /Size 9 /ID [<97752b1184e3dcb9cc00364142340e4a><97752b1184e3dcb9cc00364142340e4a>] /Encrypt 8 0 R >>
|
|
41
|
+
startxref
|
|
42
|
+
905
|
|
43
|
+
%%EOF
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
%PDF-2.0
|
|
2
|
+
%����
|
|
3
|
+
1 0 obj
|
|
4
|
+
<< /AcroForm 2 0 R /Pages 3 0 R /Type /Catalog >>
|
|
5
|
+
endobj
|
|
6
|
+
2 0 obj
|
|
7
|
+
<< /NeedAppearances true /Producer <24e42a91dbb600708d3d335a662d6665487408f475f48c9acd08ccaa4a90231d> >>
|
|
8
|
+
endobj
|
|
9
|
+
3 0 obj
|
|
10
|
+
<< /Count 1 /Kids [ 4 0 R ] /Type /Pages >>
|
|
11
|
+
endobj
|
|
12
|
+
4 0 obj
|
|
13
|
+
<< /Contents 5 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 3 0 R /Resources << /Font 6 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >> /Type /Page >>
|
|
14
|
+
endobj
|
|
15
|
+
5 0 obj
|
|
16
|
+
<< /Length 112 /Filter /FlateDecode >>
|
|
17
|
+
stream
|
|
18
|
+
�m���<��c���6��
|
|
19
|
+
endobj
|
|
20
|
+
6 0 obj
|
|
21
|
+
<< /F1 7 0 R >>
|
|
22
|
+
endobj
|
|
23
|
+
7 0 obj
|
|
24
|
+
<< /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >>
|
|
25
|
+
endobj
|
|
26
|
+
8 0 obj
|
|
27
|
+
<< /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV3 /Length 32 >> >> /Filter /Standard /Length 256 /O <94ea9bbbadea3e091c0edcfcebfabc26a343200a102c37592db4b315d2dd85af25dc4f8011f0f8bc5459281ff4392723> /OE <6b853c49ef8626e090f6a12d2715967d387faa4ee264198fc173d35eb5be3150> /P -4 /Perms <efa8e43326bfc3b1f83f0d6ec933c6b8> /R 6 /StmF /StdCF /StrF /StdCF /U <e2f9e264d4bfdd08f4a90843d339bbb1ca8e3fa1798037a75fd005c5366a063f15a21488d4d20bdeca8a5263f603ede3> /UE <cc6aa3fd78fa0099a1a43d4c1108bc96bf2c52e39edc6fcfcc21fa1af8684512> /V 5 >>
|
|
28
|
+
endobj
|
|
29
|
+
xref
|
|
30
|
+
0 9
|
|
31
|
+
0000000000 65535 f
|
|
32
|
+
0000000015 00000 n
|
|
33
|
+
0000000080 00000 n
|
|
34
|
+
0000000200 00000 n
|
|
35
|
+
0000000259 00000 n
|
|
36
|
+
0000000458 00000 n
|
|
37
|
+
0000000641 00000 n
|
|
38
|
+
0000000672 00000 n
|
|
39
|
+
0000000779 00000 n
|
|
40
|
+
trailer << /Info 2 0 R /Root 1 0 R /Size 9 /ID [<ef1fc90c94924aec2278ae62da81624e><ef1fc90c94924aec2278ae62da81624e>] /Encrypt 8 0 R >>
|
|
41
|
+
startxref
|
|
42
|
+
1326
|
|
43
|
+
%%EOF
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
%PDF-2.0
|
|
2
|
+
%����
|
|
3
|
+
1 0 obj
|
|
4
|
+
<< /AcroForm 2 0 R /Pages 3 0 R /Type /Catalog >>
|
|
5
|
+
endobj
|
|
6
|
+
2 0 obj
|
|
7
|
+
<< /NeedAppearances true /Producer <8a55d45aaff0> >>
|
|
8
|
+
endobj
|
|
9
|
+
3 0 obj
|
|
10
|
+
<< /Count 1 /Kids [ 4 0 R ] /Type /Pages >>
|
|
11
|
+
endobj
|
|
12
|
+
4 0 obj
|
|
13
|
+
<< /Contents 5 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 3 0 R /Resources << /Font 6 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >> /Type /Page >>
|
|
14
|
+
endobj
|
|
15
|
+
5 0 obj
|
|
16
|
+
<< /Length 84 /Filter /FlateDecode >>
|
|
17
|
+
stream
|
|
18
|
+
���������˲Ǖm�z��p��#%y��A��_��!�J���X�yX�u(�{Kb�w��V<�r�5���ڀ��E�|�endstream
|
|
19
|
+
endobj
|
|
20
|
+
6 0 obj
|
|
21
|
+
<< /F1 7 0 R >>
|
|
22
|
+
endobj
|
|
23
|
+
7 0 obj
|
|
24
|
+
<< /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >>
|
|
25
|
+
endobj
|
|
26
|
+
8 0 obj
|
|
27
|
+
<< /Filter /Standard /Length 128 /O <35295b66f96d5cc28136704cb7d7f11bb875b8fc825755878c946d93b46904b7> /P -4 /R 3 /U <340ca3e1ae4ea890ae09bc759397b9580122456a91bae5134273a6db134c87c4> /V 2 >>
|
|
28
|
+
endobj
|
|
29
|
+
xref
|
|
30
|
+
0 9
|
|
31
|
+
0000000000 65535 f
|
|
32
|
+
0000000015 00000 n
|
|
33
|
+
0000000080 00000 n
|
|
34
|
+
0000000148 00000 n
|
|
35
|
+
0000000207 00000 n
|
|
36
|
+
0000000406 00000 n
|
|
37
|
+
0000000560 00000 n
|
|
38
|
+
0000000591 00000 n
|
|
39
|
+
0000000698 00000 n
|
|
40
|
+
trailer << /Info 2 0 R /Root 1 0 R /Size 9 /ID [<747eeee6f831df246f0281bd1151f82c><747eeee6f831df246f0281bd1151f82c>] /Encrypt 8 0 R >>
|
|
41
|
+
startxref
|
|
42
|
+
905
|
|
43
|
+
%%EOF
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
%PDF-2.0
|
|
2
|
+
%����
|
|
3
|
+
1 0 obj
|
|
4
|
+
<< /AcroForm 2 0 R /Pages 3 0 R /Type /Catalog >>
|
|
5
|
+
endobj
|
|
6
|
+
2 0 obj
|
|
7
|
+
<< /NeedAppearances true /Producer <a1e567cf1c86> >>
|
|
8
|
+
endobj
|
|
9
|
+
3 0 obj
|
|
10
|
+
<< /Count 1 /Kids [ 4 0 R ] /Type /Pages >>
|
|
11
|
+
endobj
|
|
12
|
+
4 0 obj
|
|
13
|
+
<< /Contents 5 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 3 0 R /Resources << /Font 6 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >> /Type /Page >>
|
|
14
|
+
endobj
|
|
15
|
+
5 0 obj
|
|
16
|
+
<< /Length 84 /Filter /FlateDecode >>
|
|
17
|
+
stream
|
|
18
|
+
��7�Xh3:�r���y�a��u�Ic)��n϶Y-���eR�
|
|
19
|
+
����tK�6�Y��W�n]��N��0���&�;�zendstream
|
|
20
|
+
endobj
|
|
21
|
+
6 0 obj
|
|
22
|
+
<< /F1 7 0 R >>
|
|
23
|
+
endobj
|
|
24
|
+
7 0 obj
|
|
25
|
+
<< /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >>
|
|
26
|
+
endobj
|
|
27
|
+
8 0 obj
|
|
28
|
+
<< /Filter /Standard /Length 40 /O <a5ae38c732f978c2db2b7f3385b1bf8382e4dc2ea0fdd1ad57d898a4abd23f55> /P -4 /R 2 /U <07132e1087c623fbb3fa13787e97ee3eea75e05b0138e93156e8df41608e9269> /V 1 >>
|
|
29
|
+
endobj
|
|
30
|
+
xref
|
|
31
|
+
0 9
|
|
32
|
+
0000000000 65535 f
|
|
33
|
+
0000000015 00000 n
|
|
34
|
+
0000000080 00000 n
|
|
35
|
+
0000000148 00000 n
|
|
36
|
+
0000000207 00000 n
|
|
37
|
+
0000000406 00000 n
|
|
38
|
+
0000000560 00000 n
|
|
39
|
+
0000000591 00000 n
|
|
40
|
+
0000000698 00000 n
|
|
41
|
+
trailer << /Info 2 0 R /Root 1 0 R /Size 9 /ID [<339d12004ecc3e6607a0e8942cc356d8><339d12004ecc3e6607a0e8942cc356d8>] /Encrypt 8 0 R >>
|
|
42
|
+
startxref
|
|
43
|
+
904
|
|
44
|
+
%%EOF
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
%PDF-2.0
|
|
2
|
+
%����
|
|
3
|
+
1 0 obj
|
|
4
|
+
<<
|
|
5
|
+
/Type /Pages
|
|
6
|
+
/Count 1
|
|
7
|
+
/Kids [ 3 0 R ]
|
|
8
|
+
>>
|
|
9
|
+
endobj
|
|
10
|
+
2 0 obj
|
|
11
|
+
<<
|
|
12
|
+
/Producer (PyPDF2)
|
|
13
|
+
/NeedAppearances true
|
|
14
|
+
>>
|
|
15
|
+
endobj
|
|
16
|
+
3 0 obj
|
|
17
|
+
<<
|
|
18
|
+
/Contents 5 0 R
|
|
19
|
+
/MediaBox [ 0 0 595.2756 841.8898 ]
|
|
20
|
+
/Parent 1 0 R
|
|
21
|
+
/Resources <<
|
|
22
|
+
/Font 6 0 R
|
|
23
|
+
/ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
|
24
|
+
>>
|
|
25
|
+
/Rotate 0
|
|
26
|
+
/Trans <<
|
|
27
|
+
>>
|
|
28
|
+
/Type /Page
|
|
29
|
+
>>
|
|
30
|
+
endobj
|
|
31
|
+
4 0 obj
|
|
32
|
+
<<
|
|
33
|
+
/Type /Catalog
|
|
34
|
+
/Pages 1 0 R
|
|
35
|
+
/AcroForm 2 0 R
|
|
36
|
+
>>
|
|
37
|
+
endobj
|
|
38
|
+
5 0 obj
|
|
39
|
+
<<
|
|
40
|
+
/Filter [ /ASCII85Decode /FlateDecode ]
|
|
41
|
+
/Length 107
|
|
42
|
+
>>
|
|
43
|
+
stream
|
|
44
|
+
GapQh0E=F,0U\H3T\pNYT^QKk?tc>IP,;W#U1^23ihPEM_?CW4KISi90MjG^2,FS#<RC5+c,n)Z;(0aDb"5I[<!^TD#gi]&=5X,[6,OA.~>
|
|
45
|
+
endstream
|
|
46
|
+
endobj
|
|
47
|
+
6 0 obj
|
|
48
|
+
<<
|
|
49
|
+
/F1 7 0 R
|
|
50
|
+
>>
|
|
51
|
+
endobj
|
|
52
|
+
7 0 obj
|
|
53
|
+
<<
|
|
54
|
+
/BaseFont /Helvetica
|
|
55
|
+
/Encoding /WinAnsiEncoding
|
|
56
|
+
/Name /F1
|
|
57
|
+
/Subtype /Type1
|
|
58
|
+
/Type /Font
|
|
59
|
+
>>
|
|
60
|
+
endobj
|
|
61
|
+
xref
|
|
62
|
+
0 8
|
|
63
|
+
0000000000 65535 f
|
|
64
|
+
0000000015 00000 n
|
|
65
|
+
0000000074 00000 n
|
|
66
|
+
0000000136 00000 n
|
|
67
|
+
0000000335 00000 n
|
|
68
|
+
0000000400 00000 n
|
|
69
|
+
0000000598 00000 n
|
|
70
|
+
0000000629 00000 n
|
|
71
|
+
trailer
|
|
72
|
+
<<
|
|
73
|
+
/Size 8
|
|
74
|
+
/Root 4 0 R
|
|
75
|
+
/Info 2 0 R
|
|
76
|
+
>>
|
|
77
|
+
startxref
|
|
78
|
+
736
|
|
79
|
+
%%EOF
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { describe, expect, test } from 'vitest'
|
|
2
|
+
import fs from 'fs'
|
|
3
|
+
import { PdfDocument } from '../../src/pdf/pdf-document.js'
|
|
4
|
+
|
|
5
|
+
async function readPdf(fileName: string): Promise<PdfDocument> {
|
|
6
|
+
const data = fs.readFileSync(`${import.meta.dirname}/fixtures/${fileName}`)
|
|
7
|
+
|
|
8
|
+
return PdfDocument.fromBytes([data])
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const fixtures = {
|
|
12
|
+
'1.3': ['basic.pdf'],
|
|
13
|
+
'1.4': [
|
|
14
|
+
'basic.pdf',
|
|
15
|
+
'basic-rc4-40.pdf',
|
|
16
|
+
'basic-rc4-128.pdf',
|
|
17
|
+
'basic-aes-128.pdf',
|
|
18
|
+
'basic-aes-256.pdf',
|
|
19
|
+
],
|
|
20
|
+
'1.5': ['basic.pdf'],
|
|
21
|
+
'1.6': ['basic.pdf'],
|
|
22
|
+
'1.7': ['basic.pdf'],
|
|
23
|
+
'2.0': [
|
|
24
|
+
'basic.pdf',
|
|
25
|
+
'basic-rc4-40.pdf',
|
|
26
|
+
'basic-rc4-128.pdf',
|
|
27
|
+
'basic-aes-128.pdf',
|
|
28
|
+
'basic-aes-256.pdf',
|
|
29
|
+
],
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
for (const version in fixtures) {
|
|
33
|
+
describe(`PDF ${version} acceptance tests`, () => {
|
|
34
|
+
for (const fileName of fixtures[version as keyof typeof fixtures]) {
|
|
35
|
+
test(`${version}-${fileName}`, { timeout: 20000 }, async () => {
|
|
36
|
+
const objects = await readPdf(`${version}/${fileName}`)
|
|
37
|
+
expect(objects).toMatchSnapshot()
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
}
|