pdf-lite 1.0.1-alpha.2 → 1.0.1-alpha.3
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/dist/core/decoder.d.ts +39 -0
- package/dist/core/decoder.js +367 -0
- package/dist/core/generators.d.ts +37 -0
- package/{packages/pdf-lite/src/core/generators.ts → dist/core/generators.js} +36 -67
- package/dist/core/incremental-parser.d.ts +103 -0
- package/{packages/pdf-lite/src/core/incremental-parser.ts → dist/core/incremental-parser.js} +63 -100
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +2 -0
- package/dist/core/objects/pdf-array.d.ts +12 -0
- package/dist/core/objects/pdf-array.js +42 -0
- package/dist/core/objects/pdf-boolean.d.ts +8 -0
- package/dist/core/objects/pdf-boolean.js +15 -0
- package/dist/core/objects/pdf-comment.d.ts +18 -0
- package/dist/core/objects/pdf-comment.js +39 -0
- package/dist/core/objects/pdf-date.d.ts +5 -0
- package/dist/core/objects/pdf-date.js +40 -0
- package/dist/core/objects/pdf-dictionary.d.ts +22 -0
- package/dist/core/objects/pdf-dictionary.js +136 -0
- package/dist/core/objects/pdf-hexadecimal.d.ts +17 -0
- package/dist/core/objects/pdf-hexadecimal.js +42 -0
- package/dist/core/objects/pdf-indirect-object.d.ts +27 -0
- package/dist/core/objects/pdf-indirect-object.js +100 -0
- package/dist/core/objects/pdf-name.d.ts +8 -0
- package/dist/core/objects/pdf-name.js +15 -0
- package/dist/core/objects/pdf-null.d.ts +7 -0
- package/dist/core/objects/pdf-null.js +11 -0
- package/dist/core/objects/pdf-number.d.ts +25 -0
- package/dist/core/objects/pdf-number.js +77 -0
- package/dist/core/objects/pdf-object-reference.d.ts +9 -0
- package/dist/core/objects/pdf-object-reference.js +19 -0
- package/dist/core/objects/pdf-object.d.ts +30 -0
- package/dist/core/objects/pdf-object.js +77 -0
- package/dist/core/objects/pdf-start-xref.d.ts +10 -0
- package/dist/core/objects/pdf-start-xref.js +32 -0
- package/dist/core/objects/pdf-stream.d.ts +100 -0
- package/dist/core/objects/pdf-stream.js +521 -0
- package/dist/core/objects/pdf-string.d.ts +15 -0
- package/dist/core/objects/pdf-string.js +30 -0
- package/dist/core/objects/pdf-trailer.d.ts +26 -0
- package/dist/core/objects/pdf-trailer.js +33 -0
- package/dist/core/objects/pdf-xref-table.d.ts +48 -0
- package/dist/core/objects/pdf-xref-table.js +183 -0
- package/{packages/pdf-lite/src/core/parser.ts → dist/core/parser.d.ts} +3 -4
- package/dist/core/parser.js +9 -0
- package/dist/core/ref.d.ts +59 -0
- package/{packages/pdf-lite/src/core/ref.ts → dist/core/ref.js} +23 -41
- package/dist/core/serializer.d.ts +36 -0
- package/{packages/pdf-lite/src/core/serializer.ts → dist/core/serializer.js} +20 -30
- package/dist/core/streams/object-stream.d.ts +6 -0
- package/dist/core/streams/object-stream.js +15 -0
- package/dist/core/tokeniser.d.ts +98 -0
- package/dist/core/tokeniser.js +552 -0
- package/dist/core/tokens/boolean-token.d.ts +8 -0
- package/dist/core/tokens/boolean-token.js +15 -0
- package/dist/core/tokens/byte-offset-token.d.ts +8 -0
- package/dist/core/tokens/byte-offset-token.js +15 -0
- package/dist/core/tokens/comment-token.d.ts +10 -0
- package/dist/core/tokens/comment-token.js +26 -0
- package/dist/core/tokens/end-array-token.d.ts +4 -0
- package/dist/core/tokens/end-array-token.js +8 -0
- package/dist/core/tokens/end-dictionary-token.d.ts +4 -0
- package/dist/core/tokens/end-dictionary-token.js +8 -0
- package/dist/core/tokens/end-object-token.d.ts +4 -0
- package/dist/core/tokens/end-object-token.js +8 -0
- package/dist/core/tokens/end-stream-token.d.ts +5 -0
- package/dist/core/tokens/end-stream-token.js +8 -0
- package/dist/core/tokens/hexadecimal-token.d.ts +7 -0
- package/dist/core/tokens/hexadecimal-token.js +16 -0
- package/dist/core/tokens/name-token.d.ts +6 -0
- package/dist/core/tokens/name-token.js +15 -0
- package/dist/core/tokens/null-token.d.ts +4 -0
- package/dist/core/tokens/null-token.js +8 -0
- package/dist/core/tokens/number-token.d.ts +24 -0
- package/dist/core/tokens/number-token.js +104 -0
- package/dist/core/tokens/object-reference-token.d.ts +7 -0
- package/dist/core/tokens/object-reference-token.js +17 -0
- package/dist/core/tokens/start-array-token.d.ts +4 -0
- package/dist/core/tokens/start-array-token.js +8 -0
- package/dist/core/tokens/start-dictionary-token.d.ts +4 -0
- package/dist/core/tokens/start-dictionary-token.js +8 -0
- package/dist/core/tokens/start-object-token.d.ts +8 -0
- package/dist/core/tokens/start-object-token.js +17 -0
- package/dist/core/tokens/start-stream-token.d.ts +8 -0
- package/dist/core/tokens/start-stream-token.js +38 -0
- package/dist/core/tokens/start-xref-token.d.ts +4 -0
- package/dist/core/tokens/start-xref-token.js +8 -0
- package/dist/core/tokens/stream-chunk-token.d.ts +5 -0
- package/dist/core/tokens/stream-chunk-token.js +6 -0
- package/dist/core/tokens/string-token.d.ts +7 -0
- package/dist/core/tokens/string-token.js +13 -0
- package/dist/core/tokens/token.d.ts +10 -0
- package/dist/core/tokens/token.js +32 -0
- package/dist/core/tokens/trailer-token.d.ts +5 -0
- package/dist/core/tokens/trailer-token.js +10 -0
- package/dist/core/tokens/whitespace-token.d.ts +11 -0
- package/dist/core/tokens/whitespace-token.js +36 -0
- package/dist/core/tokens/xref-table-entry-token.d.ts +13 -0
- package/dist/core/tokens/xref-table-entry-token.js +40 -0
- package/dist/core/tokens/xref-table-section-start-token.d.ts +8 -0
- package/dist/core/tokens/xref-table-section-start-token.js +21 -0
- package/dist/core/tokens/xref-table-start-token.d.ts +5 -0
- package/dist/core/tokens/xref-table-start-token.js +10 -0
- package/dist/crypto/ciphers/aes128.d.ts +19 -0
- package/{packages/pdf-lite/src/crypto/ciphers/aes128.ts → dist/crypto/ciphers/aes128.js} +17 -27
- package/dist/crypto/ciphers/aes256.d.ts +18 -0
- package/{packages/pdf-lite/src/crypto/ciphers/aes256.ts → dist/crypto/ciphers/aes256.js} +14 -17
- package/dist/crypto/ciphers/rc4.d.ts +18 -0
- package/{packages/pdf-lite/src/crypto/ciphers/rc4.ts → dist/crypto/ciphers/rc4.js} +25 -30
- package/dist/crypto/constants.d.ts +6 -0
- package/{packages/pdf-lite/src/crypto/constants.ts → dist/crypto/constants.js} +1 -1
- package/dist/crypto/key-derivation/key-derivation-aes256.d.ts +56 -0
- package/dist/crypto/key-derivation/key-derivation-aes256.js +156 -0
- package/dist/crypto/key-derivation/key-derivation.d.ts +42 -0
- package/{packages/pdf-lite/src/crypto/key-derivation/key-derivation.ts → dist/crypto/key-derivation/key-derivation.js} +35 -66
- package/dist/crypto/key-gen/key-gen-aes256.d.ts +36 -0
- package/{packages/pdf-lite/src/crypto/key-gen/key-gen-aes256.ts → dist/crypto/key-gen/key-gen-aes256.js} +25 -50
- package/dist/crypto/key-gen/key-gen-rc4-128.d.ts +47 -0
- package/{packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-128.ts → dist/crypto/key-gen/key-gen-rc4-128.js} +45 -106
- package/dist/crypto/key-gen/key-gen-rc4-40.d.ts +60 -0
- package/{packages/pdf-lite/src/crypto/key-gen/key-gen-rc4-40.ts → dist/crypto/key-gen/key-gen-rc4-40.js} +26 -62
- package/dist/crypto/types.d.ts +5 -0
- package/dist/crypto/types.js +1 -0
- package/dist/crypto/utils.d.ts +40 -0
- package/{packages/pdf-lite/src/crypto/utils.ts → dist/crypto/utils.js} +27 -36
- package/dist/filters/ascii85.d.ts +16 -0
- package/{packages/pdf-lite/src/filters/ascii85.ts → dist/filters/ascii85.js} +41 -65
- package/dist/filters/asciihex.d.ts +16 -0
- package/{packages/pdf-lite/src/filters/asciihex.ts → dist/filters/asciihex.js} +18 -19
- package/dist/filters/flate.d.ts +15 -0
- package/{packages/pdf-lite/src/filters/flate.ts → dist/filters/flate.js} +7 -10
- package/dist/filters/lzw.d.ts +16 -0
- package/dist/filters/lzw.js +150 -0
- package/dist/filters/pass-through.d.ts +14 -0
- package/{packages/pdf-lite/src/filters/pass-through.ts → dist/filters/pass-through.js} +6 -9
- package/dist/filters/runlength.d.ts +16 -0
- package/{packages/pdf-lite/src/filters/runlength.ts → dist/filters/runlength.js} +36 -40
- package/dist/filters/types.d.ts +18 -0
- package/{packages/pdf-lite/src/filters/types.ts → dist/filters/types.js} +1 -10
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/pdf/errors.d.ts +6 -0
- package/{packages/pdf-lite/src/pdf/errors.ts → dist/pdf/errors.js} +2 -1
- package/dist/pdf/index.d.ts +4 -0
- package/dist/pdf/index.js +4 -0
- package/dist/pdf/pdf-document.d.ts +277 -0
- package/{packages/pdf-lite/src/pdf/pdf-document.ts → dist/pdf/pdf-document.js} +305 -541
- package/dist/pdf/pdf-reader.d.ts +37 -0
- package/{packages/pdf-lite/src/pdf/pdf-reader.ts → dist/pdf/pdf-reader.js} +12 -22
- package/dist/pdf/pdf-revision.d.ts +101 -0
- package/{packages/pdf-lite/src/pdf/pdf-revision.ts → dist/pdf/pdf-revision.js} +70 -105
- package/dist/pdf/pdf-xref-lookup.d.ts +149 -0
- package/dist/pdf/pdf-xref-lookup.js +402 -0
- package/dist/security/crypt-filters/aesv2.d.ts +35 -0
- package/{packages/pdf-lite/src/security/crypt-filters/aesv2.ts → dist/security/crypt-filters/aesv2.js} +9 -26
- package/dist/security/crypt-filters/aesv3.d.ts +36 -0
- package/{packages/pdf-lite/src/security/crypt-filters/aesv3.ts → dist/security/crypt-filters/aesv3.js} +9 -23
- package/{packages/pdf-lite/src/security/crypt-filters/base.ts → dist/security/crypt-filters/base.d.ts} +21 -73
- package/dist/security/crypt-filters/base.js +93 -0
- package/dist/security/crypt-filters/identity.d.ts +28 -0
- package/{packages/pdf-lite/src/security/crypt-filters/identity.ts → dist/security/crypt-filters/identity.js} +9 -13
- package/dist/security/crypt-filters/v2.d.ts +37 -0
- package/{packages/pdf-lite/src/security/crypt-filters/v2.ts → dist/security/crypt-filters/v2.js} +9 -26
- package/dist/security/handlers/base.d.ts +304 -0
- package/dist/security/handlers/base.js +359 -0
- package/dist/security/handlers/pubSec.d.ts +164 -0
- package/dist/security/handlers/pubSec.js +299 -0
- package/dist/security/handlers/utils.d.ts +77 -0
- package/dist/security/handlers/utils.js +244 -0
- package/dist/security/handlers/v1.d.ts +81 -0
- package/dist/security/handlers/v1.js +135 -0
- package/dist/security/handlers/v2.d.ts +63 -0
- package/{packages/pdf-lite/src/security/handlers/v2.ts → dist/security/handlers/v2.js} +25 -62
- package/dist/security/handlers/v4.d.ts +121 -0
- package/dist/security/handlers/v4.js +257 -0
- package/dist/security/handlers/v5.d.ts +112 -0
- package/dist/security/handlers/v5.js +210 -0
- package/{packages/pdf-lite/src/security/types.ts → dist/security/types.d.ts} +72 -94
- package/dist/security/types.js +1 -0
- package/dist/signing/document-security-store.d.ts +108 -0
- package/dist/signing/document-security-store.js +156 -0
- package/dist/signing/index.d.ts +3 -0
- package/dist/signing/index.js +3 -0
- package/dist/signing/signatures/adbe-pkcs7-detached.d.ts +57 -0
- package/dist/signing/signatures/adbe-pkcs7-detached.js +117 -0
- package/dist/signing/signatures/adbe-pkcs7-sha1.d.ts +55 -0
- package/dist/signing/signatures/adbe-pkcs7-sha1.js +121 -0
- package/dist/signing/signatures/adbe-x509-rsa-sha1.d.ts +49 -0
- package/dist/signing/signatures/adbe-x509-rsa-sha1.js +81 -0
- package/dist/signing/signatures/base.d.ts +107 -0
- package/dist/signing/signatures/base.js +145 -0
- package/dist/signing/signatures/etsi-cades-detached.d.ts +64 -0
- package/dist/signing/signatures/etsi-cades-detached.js +159 -0
- package/dist/signing/signatures/etsi-rfc3161.d.ts +37 -0
- package/{packages/pdf-lite/src/signing/signatures/etsi-rfc3161.ts → dist/signing/signatures/etsi-rfc3161.js} +21 -43
- package/dist/signing/signatures/index.d.ts +6 -0
- package/dist/signing/signatures/index.js +6 -0
- package/dist/signing/signer.d.ts +23 -0
- package/dist/signing/signer.js +92 -0
- package/{packages/pdf-lite/src/signing/types.ts → dist/signing/types.d.ts} +40 -48
- package/dist/signing/types.js +1 -0
- package/dist/signing/utils.d.ts +32 -0
- package/{packages/pdf-lite/src/signing/utils.ts → dist/signing/utils.js} +12 -31
- package/dist/types.d.ts +23 -0
- package/dist/types.js +11 -0
- package/dist/utils/IterableReadableStream.d.ts +24 -0
- package/{packages/pdf-lite/src/utils/IterableReadableStream.ts → dist/utils/IterableReadableStream.js} +6 -6
- package/dist/utils/algos.d.ts +242 -0
- package/{packages/pdf-lite/src/utils/algos.ts → dist/utils/algos.js} +63 -136
- package/dist/utils/assert.d.ts +28 -0
- package/{packages/pdf-lite/src/utils/assert.ts → dist/utils/assert.js} +5 -10
- package/dist/utils/bytesToHex.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/bytesToHex.ts → dist/utils/bytesToHex.js} +4 -6
- package/dist/utils/bytesToHexBytes.d.ts +14 -0
- package/{packages/pdf-lite/src/utils/bytesToHexBytes.ts → dist/utils/bytesToHexBytes.js} +7 -12
- package/dist/utils/bytesToString.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/bytesToString.ts → dist/utils/bytesToString.js} +3 -5
- package/dist/utils/concatUint8Arrays.d.ts +16 -0
- package/{packages/pdf-lite/src/utils/concatUint8Arrays.ts → dist/utils/concatUint8Arrays.js} +7 -9
- package/dist/utils/escapeString.d.ts +14 -0
- package/dist/utils/escapeString.js +43 -0
- package/dist/utils/hexBytesToBytes.d.ts +15 -0
- package/{packages/pdf-lite/src/utils/hexBytesToBytes.ts → dist/utils/hexBytesToBytes.js} +4 -6
- package/dist/utils/hexBytesToString.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/hexBytesToString.ts → dist/utils/hexBytesToString.js} +5 -7
- package/dist/utils/hexToBytes.d.ts +13 -0
- package/{packages/pdf-lite/src/utils/hexToBytes.ts → dist/utils/hexToBytes.js} +4 -6
- package/dist/utils/padBytes.d.ts +15 -0
- package/{packages/pdf-lite/src/utils/padBytes.ts → dist/utils/padBytes.js} +5 -9
- package/dist/utils/predictors.d.ts +113 -0
- package/{packages/pdf-lite/src/utils/predictors.ts → dist/utils/predictors.js} +103 -156
- package/dist/utils/replaceInBuffer.d.ts +22 -0
- package/{packages/pdf-lite/src/utils/replaceInBuffer.ts → dist/utils/replaceInBuffer.js} +18 -27
- package/dist/utils/stringToBytes.d.ts +14 -0
- package/{packages/pdf-lite/src/utils/stringToBytes.ts → dist/utils/stringToBytes.js} +6 -7
- package/dist/utils/stringToHexBytes.d.ts +15 -0
- package/{packages/pdf-lite/src/utils/stringToHexBytes.ts → dist/utils/stringToHexBytes.js} +5 -7
- package/dist/utils/unescapeString.d.ts +16 -0
- package/dist/utils/unescapeString.js +114 -0
- package/package.json +37 -34
- package/.commitlintrc.cjs +0 -25
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
- package/.github/workflows/docs.yaml +0 -95
- package/.github/workflows/prepare-release.yaml +0 -79
- package/.github/workflows/release.yaml +0 -80
- package/.github/workflows/test.yaml +0 -35
- package/.husky/commit-msg +0 -1
- package/.husky/pre-commit +0 -1
- package/.prettierignore +0 -4
- package/.prettierrc +0 -4
- package/CONTRIBUTING.md +0 -109
- package/EXAMPLES.md +0 -1512
- package/docs/README.md +0 -127
- package/docs/core/README.md +0 -43
- package/docs/core/decoder/README.md +0 -11
- package/docs/core/decoder/classes/PdfDecoder.md +0 -362
- package/docs/core/generators/README.md +0 -14
- package/docs/core/generators/functions/bytesToPdfObjects.md +0 -26
- package/docs/core/generators/functions/pdfDecoder.md +0 -36
- package/docs/core/generators/functions/pdfDecoderAsync.md +0 -26
- package/docs/core/generators/functions/stringToPdfObjects.md +0 -25
- package/docs/core/incremental-parser/README.md +0 -13
- package/docs/core/incremental-parser/classes/EofReachedError.md +0 -55
- package/docs/core/incremental-parser/classes/IncrementalParser.md +0 -299
- package/docs/core/incremental-parser/classes/NoMoreTokensError.md +0 -55
- package/docs/core/objects/pdf-array/README.md +0 -11
- package/docs/core/objects/pdf-array/classes/PdfArray.md +0 -305
- package/docs/core/objects/pdf-boolean/README.md +0 -11
- package/docs/core/objects/pdf-boolean/classes/PdfBoolean.md +0 -265
- package/docs/core/objects/pdf-comment/README.md +0 -11
- package/docs/core/objects/pdf-comment/classes/PdfComment.md +0 -329
- package/docs/core/objects/pdf-date/README.md +0 -11
- package/docs/core/objects/pdf-date/classes/PdfDate.md +0 -317
- package/docs/core/objects/pdf-dictionary/README.md +0 -17
- package/docs/core/objects/pdf-dictionary/classes/PdfDictionary.md +0 -396
- package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntries.md +0 -9
- package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryEntry.md +0 -9
- package/docs/core/objects/pdf-dictionary/type-aliases/PdfDictionaryMap.md +0 -9
- package/docs/core/objects/pdf-hexadecimal/README.md +0 -11
- package/docs/core/objects/pdf-hexadecimal/classes/PdfHexadecimal.md +0 -320
- package/docs/core/objects/pdf-indirect-object/README.md +0 -11
- package/docs/core/objects/pdf-indirect-object/classes/PdfIndirectObject.md +0 -411
- package/docs/core/objects/pdf-name/README.md +0 -11
- package/docs/core/objects/pdf-name/classes/PdfName.md +0 -271
- package/docs/core/objects/pdf-null/README.md +0 -11
- package/docs/core/objects/pdf-null/classes/PdfNull.md +0 -259
- package/docs/core/objects/pdf-number/README.md +0 -12
- package/docs/core/objects/pdf-number/classes/PdfByteOffsetNumber.md +0 -369
- package/docs/core/objects/pdf-number/classes/PdfNumber.md +0 -345
- package/docs/core/objects/pdf-object/README.md +0 -11
- package/docs/core/objects/pdf-object/classes/PdfObject.md +0 -214
- package/docs/core/objects/pdf-object-reference/README.md +0 -11
- package/docs/core/objects/pdf-object-reference/classes/PdfObjectReference.md +0 -279
- package/docs/core/objects/pdf-start-xref/README.md +0 -11
- package/docs/core/objects/pdf-start-xref/classes/PdfStartXRef.md +0 -265
- package/docs/core/objects/pdf-stream/README.md +0 -23
- package/docs/core/objects/pdf-stream/classes/PdfObjStream.md +0 -699
- package/docs/core/objects/pdf-stream/classes/PdfStream.md +0 -570
- package/docs/core/objects/pdf-stream/classes/PdfXRefStream.md +0 -723
- package/docs/core/objects/pdf-stream/classes/PdfXRefStreamCompressedEntry.md +0 -51
- package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamEntry.md +0 -9
- package/docs/core/objects/pdf-stream/type-aliases/PdfXRefStreamStandardEntry.md +0 -9
- package/docs/core/objects/pdf-stream/variables/PdfXRefStreamStandardEntry.md +0 -9
- package/docs/core/objects/pdf-string/README.md +0 -11
- package/docs/core/objects/pdf-string/classes/PdfString.md +0 -301
- package/docs/core/objects/pdf-trailer/README.md +0 -16
- package/docs/core/objects/pdf-trailer/classes/PdfTrailer.md +0 -271
- package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerDictionary.md +0 -9
- package/docs/core/objects/pdf-trailer/type-aliases/PdfTrailerEntries.md +0 -51
- package/docs/core/objects/pdf-xref-table/README.md +0 -13
- package/docs/core/objects/pdf-xref-table/classes/PdfXRefTable.md +0 -331
- package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableEntry.md +0 -297
- package/docs/core/objects/pdf-xref-table/classes/PdfXRefTableSectionHeader.md +0 -277
- package/docs/core/parser/README.md +0 -11
- package/docs/core/parser/classes/Parser.md +0 -74
- package/docs/core/ref/README.md +0 -15
- package/docs/core/ref/classes/Ref.md +0 -149
- package/docs/core/ref/type-aliases/RefUpdateCallback.md +0 -33
- package/docs/core/serializer/README.md +0 -11
- package/docs/core/serializer/classes/PdfTokenSerializer.md +0 -106
- package/docs/core/streams/object-stream/README.md +0 -11
- package/docs/core/streams/object-stream/classes/PdfObjectStream.md +0 -69
- package/docs/core/tokeniser/README.md +0 -21
- package/docs/core/tokeniser/classes/PdfByteStreamTokeniser.md +0 -366
- package/docs/core/tokeniser/classes/PdfObjectTokeniser.md +0 -69
- package/docs/core/tokeniser/functions/objectToTokens.md +0 -25
- package/docs/core/tokeniser/functions/pdfObjectStreamTokeniser.md +0 -27
- package/docs/core/tokeniser/type-aliases/PdfTokeniser.md +0 -11
- package/docs/core/tokens/boolean-token/README.md +0 -11
- package/docs/core/tokens/boolean-token/classes/PdfBooleanToken.md +0 -139
- package/docs/core/tokens/byte-offset-token/README.md +0 -11
- package/docs/core/tokens/byte-offset-token/classes/PdfByteOffsetToken.md +0 -153
- package/docs/core/tokens/comment-token/README.md +0 -11
- package/docs/core/tokens/comment-token/classes/PdfCommentToken.md +0 -161
- package/docs/core/tokens/end-array-token/README.md +0 -11
- package/docs/core/tokens/end-array-token/classes/PdfEndArrayToken.md +0 -115
- package/docs/core/tokens/end-dictionary-token/README.md +0 -11
- package/docs/core/tokens/end-dictionary-token/classes/PdfEndDictionaryToken.md +0 -115
- package/docs/core/tokens/end-object-token/README.md +0 -11
- package/docs/core/tokens/end-object-token/classes/PdfEndObjectToken.md +0 -115
- package/docs/core/tokens/end-stream-token/README.md +0 -11
- package/docs/core/tokens/end-stream-token/classes/PdfEndStreamToken.md +0 -121
- package/docs/core/tokens/hexadecimal-token/README.md +0 -11
- package/docs/core/tokens/hexadecimal-token/classes/PdfHexadecimalToken.md +0 -127
- package/docs/core/tokens/name-token/README.md +0 -11
- package/docs/core/tokens/name-token/classes/PdfNameToken.md +0 -127
- package/docs/core/tokens/null-token/README.md +0 -11
- package/docs/core/tokens/null-token/classes/PdfNullToken.md +0 -115
- package/docs/core/tokens/number-token/README.md +0 -11
- package/docs/core/tokens/number-token/classes/PdfNumberToken.md +0 -271
- package/docs/core/tokens/object-reference-token/README.md +0 -11
- package/docs/core/tokens/object-reference-token/classes/PdfObjectReferenceToken.md +0 -137
- package/docs/core/tokens/start-array-token/README.md +0 -11
- package/docs/core/tokens/start-array-token/classes/PdfStartArrayToken.md +0 -115
- package/docs/core/tokens/start-dictionary-token/README.md +0 -11
- package/docs/core/tokens/start-dictionary-token/classes/PdfStartDictionaryToken.md +0 -115
- package/docs/core/tokens/start-object-token/README.md +0 -11
- package/docs/core/tokens/start-object-token/classes/PdfStartObjectToken.md +0 -147
- package/docs/core/tokens/start-stream-token/README.md +0 -11
- package/docs/core/tokens/start-stream-token/classes/PdfStartStreamToken.md +0 -147
- package/docs/core/tokens/start-xref-token/README.md +0 -11
- package/docs/core/tokens/start-xref-token/classes/PdfStartXRefToken.md +0 -115
- package/docs/core/tokens/stream-chunk-token/README.md +0 -11
- package/docs/core/tokens/stream-chunk-token/classes/PdfStreamChunkToken.md +0 -121
- package/docs/core/tokens/string-token/README.md +0 -11
- package/docs/core/tokens/string-token/classes/PdfStringToken.md +0 -127
- package/docs/core/tokens/token/README.md +0 -11
- package/docs/core/tokens/token/classes/PdfToken.md +0 -116
- package/docs/core/tokens/trailer-token/README.md +0 -11
- package/docs/core/tokens/trailer-token/classes/PdfTrailerToken.md +0 -127
- package/docs/core/tokens/whitespace-token/README.md +0 -11
- package/docs/core/tokens/whitespace-token/classes/PdfWhitespaceToken.md +0 -161
- package/docs/core/tokens/xref-table-entry-token/README.md +0 -11
- package/docs/core/tokens/xref-table-entry-token/classes/PdfXRefTableEntryToken.md +0 -157
- package/docs/core/tokens/xref-table-section-start-token/README.md +0 -11
- package/docs/core/tokens/xref-table-section-start-token/classes/PdfXRefTableSectionStartToken.md +0 -137
- package/docs/core/tokens/xref-table-start-token/README.md +0 -11
- package/docs/core/tokens/xref-table-start-token/classes/PdfXRefTableStartToken.md +0 -127
- package/docs/crypto/ciphers/aes128/README.md +0 -11
- package/docs/crypto/ciphers/aes128/functions/aes128.md +0 -39
- package/docs/crypto/ciphers/aes256/README.md +0 -11
- package/docs/crypto/ciphers/aes256/functions/aes256.md +0 -35
- package/docs/crypto/ciphers/rc4/README.md +0 -11
- package/docs/crypto/ciphers/rc4/functions/rc4.md +0 -35
- package/docs/crypto/constants/README.md +0 -11
- package/docs/crypto/constants/variables/DEFAULT_PADDING.md +0 -13
- package/docs/crypto/key-derivation/key-derivation/README.md +0 -13
- package/docs/crypto/key-derivation/key-derivation/functions/computeMasterKey.md +0 -57
- package/docs/crypto/key-derivation/key-derivation/functions/deriveObjectKey.md +0 -50
- package/docs/crypto/key-derivation/key-derivation/functions/padPassword.md +0 -33
- package/docs/crypto/key-derivation/key-derivation-aes256/README.md +0 -13
- package/docs/crypto/key-derivation/key-derivation-aes256/functions/computeAlgorithm2bHash.md +0 -45
- package/docs/crypto/key-derivation/key-derivation-aes256/functions/getFileKey.md +0 -66
- package/docs/crypto/key-derivation/key-derivation-aes256/functions/validatePasswordHash.md +0 -52
- package/docs/crypto/key-gen/key-gen-aes256/README.md +0 -12
- package/docs/crypto/key-gen/key-gen-aes256/functions/generateOandOe.md +0 -44
- package/docs/crypto/key-gen/key-gen-aes256/functions/generateUandUe.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-128/README.md +0 -13
- package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeOValueRc4_128.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-128/functions/computeUValueRc4_128.md +0 -62
- package/docs/crypto/key-gen/key-gen-rc4-128/functions/decryptUserPasswordRc4_128.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-40/README.md +0 -14
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeEncryptionKeyRc4_40.md +0 -49
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeORc4_40.md +0 -38
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/computeURc4_40.md +0 -50
- package/docs/crypto/key-gen/key-gen-rc4-40/functions/decryptUserPasswordRc4_40.md +0 -38
- package/docs/crypto/types/README.md +0 -11
- package/docs/crypto/types/interfaces/Cipher.md +0 -39
- package/docs/crypto/utils/README.md +0 -13
- package/docs/crypto/utils/functions/int32ToLittleEndianBytes.md +0 -31
- package/docs/crypto/utils/functions/padPassword.md +0 -33
- package/docs/crypto/utils/functions/removePdfPasswordPadding.md +0 -32
- package/docs/filters/ascii85/README.md +0 -11
- package/docs/filters/ascii85/functions/ascii85.md +0 -27
- package/docs/filters/asciihex/README.md +0 -11
- package/docs/filters/asciihex/functions/asciiHex.md +0 -27
- package/docs/filters/flate/README.md +0 -11
- package/docs/filters/flate/functions/flate.md +0 -26
- package/docs/filters/lzw/README.md +0 -11
- package/docs/filters/lzw/functions/lzw.md +0 -27
- package/docs/filters/pass-through/README.md +0 -11
- package/docs/filters/pass-through/functions/passthroughFilter.md +0 -25
- package/docs/filters/runlength/README.md +0 -11
- package/docs/filters/runlength/functions/runLength.md +0 -27
- package/docs/filters/types/README.md +0 -19
- package/docs/filters/types/interfaces/PdfFilter.md +0 -39
- package/docs/filters/types/type-aliases/PdfStreamFilterType.md +0 -9
- package/docs/filters/types/variables/PDF_FILTER_TYPES.md +0 -51
- package/docs/index/README.md +0 -235
- package/docs/pdf/README.md +0 -31
- package/docs/pdf/errors/README.md +0 -11
- package/docs/pdf/errors/classes/FoundCompressedObjectError.md +0 -56
- package/docs/pdf/pdf-document/README.md +0 -11
- package/docs/pdf/pdf-document/classes/PdfDocument.md +0 -876
- package/docs/pdf/pdf-reader/README.md +0 -11
- package/docs/pdf/pdf-reader/classes/PdfReader.md +0 -82
- package/docs/pdf/pdf-revision/README.md +0 -11
- package/docs/pdf/pdf-revision/classes/PdfRevision.md +0 -508
- package/docs/pdf/pdf-xref-lookup/README.md +0 -11
- package/docs/pdf/pdf-xref-lookup/classes/PdfXrefLookup.md +0 -421
- package/docs/security/crypt-filters/aesv2/README.md +0 -11
- package/docs/security/crypt-filters/aesv2/classes/AesV2CryptFilter.md +0 -274
- package/docs/security/crypt-filters/aesv3/README.md +0 -11
- package/docs/security/crypt-filters/aesv3/classes/AesV3CryptFilter.md +0 -275
- package/docs/security/crypt-filters/base/README.md +0 -15
- package/docs/security/crypt-filters/base/classes/PdfCryptFilter.md +0 -221
- package/docs/security/crypt-filters/base/type-aliases/CryptFilterOptions.md +0 -43
- package/docs/security/crypt-filters/identity/README.md +0 -11
- package/docs/security/crypt-filters/identity/classes/IdentityCryptFilter.md +0 -249
- package/docs/security/crypt-filters/v2/README.md +0 -11
- package/docs/security/crypt-filters/v2/classes/V2CryptFilter.md +0 -279
- package/docs/security/handlers/base/README.md +0 -17
- package/docs/security/handlers/base/classes/PdfSecurityHandler.md +0 -384
- package/docs/security/handlers/base/classes/PdfStandardSecurityHandler.md +0 -694
- package/docs/security/handlers/base/type-aliases/PdfSecurityHandlerOptions.md +0 -27
- package/docs/security/handlers/base/type-aliases/PdfStandardSecurityHandlerOptions.md +0 -43
- package/docs/security/handlers/pubSec/README.md +0 -11
- package/docs/security/handlers/pubSec/classes/PdfPublicKeySecurityHandler.md +0 -503
- package/docs/security/handlers/utils/README.md +0 -14
- package/docs/security/handlers/utils/functions/createFromDictionary.md +0 -56
- package/docs/security/handlers/utils/functions/createFromEncryptionOptions.md +0 -40
- package/docs/security/handlers/utils/functions/createStandardSecurityHandlerFromDictionary.md +0 -55
- package/docs/security/handlers/utils/functions/getCryptFilter.md +0 -35
- package/docs/security/handlers/v1/README.md +0 -11
- package/docs/security/handlers/v1/classes/PdfV1SecurityHandler.md +0 -779
- package/docs/security/handlers/v2/README.md +0 -11
- package/docs/security/handlers/v2/classes/PdfV2SecurityHandler.md +0 -783
- package/docs/security/handlers/v4/README.md +0 -11
- package/docs/security/handlers/v4/classes/PdfV4SecurityHandler.md +0 -907
- package/docs/security/handlers/v5/README.md +0 -11
- package/docs/security/handlers/v5/classes/PdfV5SecurityHandler.md +0 -926
- package/docs/security/types/README.md +0 -19
- package/docs/security/types/type-aliases/CryptFilterType.md +0 -15
- package/docs/security/types/type-aliases/PdfCryptFilterDictionary.md +0 -12
- package/docs/security/types/type-aliases/PdfEncryptionAlgorithmOptions.md +0 -11
- package/docs/security/types/type-aliases/PdfEncryptionAlgorithmType.md +0 -17
- package/docs/security/types/type-aliases/PdfEncryptionDictionary.md +0 -13
- package/docs/security/types/type-aliases/PdfEncryptionDictionaryObject.md +0 -11
- package/docs/security/types/type-aliases/PdfEncryptionOptions.md +0 -90
- package/docs/security/types/type-aliases/PdfEncryptionRecipient.md +0 -24
- package/docs/security/types/type-aliases/PdfId.md +0 -13
- package/docs/signing/README.md +0 -127
- package/docs/signing/document-security-store/README.md +0 -19
- package/docs/signing/document-security-store/classes/PdfCertObject.md +0 -443
- package/docs/signing/document-security-store/classes/PdfCrlObject.md +0 -443
- package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreDictionary.md +0 -416
- package/docs/signing/document-security-store/classes/PdfDocumentSecurityStoreObject.md +0 -563
- package/docs/signing/document-security-store/classes/PdfOcspObject.md +0 -443
- package/docs/signing/document-security-store/type-aliases/PdfVriObject.md +0 -12
- package/docs/signing/signatures/README.md +0 -55
- package/docs/signing/signatures/adbe-pkcs7-detached/README.md +0 -11
- package/docs/signing/signatures/adbe-pkcs7-detached/classes/PdfAdbePkcs7DetachedSignatureObject.md +0 -669
- package/docs/signing/signatures/adbe-pkcs7-sha1/README.md +0 -11
- package/docs/signing/signatures/adbe-pkcs7-sha1/classes/PdfAdbePkcs7Sha1SignatureObject.md +0 -667
- package/docs/signing/signatures/adbe-x509-rsa-sha1/README.md +0 -11
- package/docs/signing/signatures/adbe-x509-rsa-sha1/classes/PdfAdbePkcsX509RsaSha1SignatureObject.md +0 -651
- package/docs/signing/signatures/base/README.md +0 -16
- package/docs/signing/signatures/base/classes/PdfSignatureDictionary.md +0 -420
- package/docs/signing/signatures/base/classes/PdfSignatureObject.md +0 -584
- package/docs/signing/signatures/base/type-aliases/PdfSignatureSignOptions.md +0 -51
- package/docs/signing/signatures/etsi-cades-detached/README.md +0 -11
- package/docs/signing/signatures/etsi-cades-detached/classes/PdfEtsiCadesDetachedSignatureObject.md +0 -693
- package/docs/signing/signatures/etsi-rfc3161/README.md +0 -11
- package/docs/signing/signatures/etsi-rfc3161/classes/PdfEtsiRfc3161SignatureObject.md +0 -614
- package/docs/signing/signer/README.md +0 -11
- package/docs/signing/signer/classes/PdfSigner.md +0 -58
- package/docs/signing/types/README.md +0 -16
- package/docs/signing/types/type-aliases/PdfSignatureDictionaryEntries.md +0 -95
- package/docs/signing/types/type-aliases/PdfSignatureSubType.md +0 -17
- package/docs/signing/types/type-aliases/PdfSignatureType.md +0 -14
- package/docs/signing/types/type-aliases/RevocationInfo.md +0 -43
- package/docs/signing/types/type-aliases/SignaturePolicyDocument.md +0 -35
- package/docs/signing/types/type-aliases/TimeStampAuthority.md +0 -35
- package/docs/signing/utils/README.md +0 -11
- package/docs/signing/utils/functions/fetchRevocationInfo.md +0 -70
- package/docs/types/README.md +0 -21
- package/docs/types/type-aliases/ByteArray.md +0 -9
- package/docs/types/type-aliases/ChangeType.md +0 -9
- package/docs/types/type-aliases/DecodeParms.md +0 -33
- package/docs/types/type-aliases/HashAlgorithm.md +0 -9
- package/docs/types/type-aliases/PdfEncryptionAlgorithm.md +0 -9
- package/docs/types/type-aliases/PdfPermissions.md +0 -63
- package/docs/types/type-aliases/PdfVersion.md +0 -9
- package/docs/types/variables/PERMISSION_FLAGS.md +0 -9
- package/docs/utils/IterableReadableStream/README.md +0 -11
- package/docs/utils/IterableReadableStream/classes/IterableReadableStream.md +0 -103
- package/docs/utils/algos/README.md +0 -28
- package/docs/utils/algos/functions/aes128CbcNoPaddingEncrypt.md +0 -43
- package/docs/utils/algos/functions/aes128cbcDecrypt.md +0 -47
- package/docs/utils/algos/functions/aes128cbcEncrypt.md +0 -47
- package/docs/utils/algos/functions/aes256CbcNoPaddingDecrypt.md +0 -43
- package/docs/utils/algos/functions/aes256CbcNoPaddingEncrypt.md +0 -43
- package/docs/utils/algos/functions/aes256cbcDecrypt.md +0 -43
- package/docs/utils/algos/functions/aes256cbcEncrypt.md +0 -43
- package/docs/utils/algos/functions/aes256ecbDecrypt.md +0 -41
- package/docs/utils/algos/functions/aes256ecbEncrypt.md +0 -41
- package/docs/utils/algos/functions/deflateData.md +0 -31
- package/docs/utils/algos/functions/getRandomBytes.md +0 -35
- package/docs/utils/algos/functions/hash.md +0 -41
- package/docs/utils/algos/functions/inflateData.md +0 -35
- package/docs/utils/algos/functions/md5.md +0 -31
- package/docs/utils/algos/functions/sha1.md +0 -31
- package/docs/utils/algos/functions/sha256.md +0 -31
- package/docs/utils/algos/functions/sha384.md +0 -31
- package/docs/utils/algos/functions/sha512.md +0 -31
- package/docs/utils/assert/README.md +0 -12
- package/docs/utils/assert/functions/assert.md +0 -39
- package/docs/utils/assert/functions/assertIfDefined.md +0 -46
- package/docs/utils/bytesToHex/README.md +0 -11
- package/docs/utils/bytesToHex/functions/bytesToHex.md +0 -31
- package/docs/utils/bytesToHexBytes/README.md +0 -11
- package/docs/utils/bytesToHexBytes/functions/bytesToHexBytes.md +0 -32
- package/docs/utils/bytesToString/README.md +0 -11
- package/docs/utils/bytesToString/functions/bytesToString.md +0 -31
- package/docs/utils/concatUint8Arrays/README.md +0 -11
- package/docs/utils/concatUint8Arrays/functions/concatUint8Arrays.md +0 -31
- package/docs/utils/escapeString/README.md +0 -11
- package/docs/utils/escapeString/functions/escapeString.md +0 -32
- package/docs/utils/hexBytesToBytes/README.md +0 -11
- package/docs/utils/hexBytesToBytes/functions/hexBytesToBytes.md +0 -33
- package/docs/utils/hexBytesToString/README.md +0 -11
- package/docs/utils/hexBytesToString/functions/hexBytesToString.md +0 -31
- package/docs/utils/hexToBytes/README.md +0 -11
- package/docs/utils/hexToBytes/functions/hexToBytes.md +0 -31
- package/docs/utils/padBytes/README.md +0 -11
- package/docs/utils/padBytes/functions/padBytes.md +0 -41
- package/docs/utils/predictors/README.md +0 -11
- package/docs/utils/predictors/classes/Predictor.md +0 -306
- package/docs/utils/replaceInBuffer/README.md +0 -11
- package/docs/utils/replaceInBuffer/functions/replaceInBuffer.md +0 -65
- package/docs/utils/stringToBytes/README.md +0 -11
- package/docs/utils/stringToBytes/functions/stringToBytes.md +0 -32
- package/docs/utils/stringToHexBytes/README.md +0 -11
- package/docs/utils/stringToHexBytes/functions/stringToHexBytes.md +0 -33
- package/docs/utils/unescapeString/README.md +0 -11
- package/docs/utils/unescapeString/functions/unescapeString.md +0 -34
- package/examples/001-create-pdf.ts +0 -112
- package/examples/002-create-encrypted-pdf.ts +0 -121
- package/examples/003-sign-pdf.ts +0 -347
- package/examples/004-incremental-update.ts +0 -206
- package/examples/005-modify-acroform.ts +0 -374
- package/examples/006-tokeniser-example.ts +0 -131
- package/examples/007-decoder-example.ts +0 -197
- package/packages/pdf-lite/README.md +0 -3
- package/packages/pdf-lite/node_modules/.bin/playwright +0 -16
- package/packages/pdf-lite/node_modules/.bin/tsc +0 -16
- package/packages/pdf-lite/node_modules/.bin/tsserver +0 -16
- package/packages/pdf-lite/node_modules/.bin/vitest +0 -16
- package/packages/pdf-lite/package.json +0 -68
- package/packages/pdf-lite/scripts/create-encryption-tests.sh +0 -41
- package/packages/pdf-lite/scripts/gen-signing-keys.sh +0 -290
- package/packages/pdf-lite/scripts/generate-all-signing-keys.sh +0 -70
- package/packages/pdf-lite/src/core/decoder.ts +0 -454
- package/packages/pdf-lite/src/core/index.ts +0 -2
- package/packages/pdf-lite/src/core/objects/pdf-array.ts +0 -54
- package/packages/pdf-lite/src/core/objects/pdf-boolean.ts +0 -19
- package/packages/pdf-lite/src/core/objects/pdf-comment.ts +0 -50
- package/packages/pdf-lite/src/core/objects/pdf-date.ts +0 -74
- package/packages/pdf-lite/src/core/objects/pdf-dictionary.ts +0 -171
- package/packages/pdf-lite/src/core/objects/pdf-hexadecimal.ts +0 -54
- package/packages/pdf-lite/src/core/objects/pdf-indirect-object.ts +0 -137
- package/packages/pdf-lite/src/core/objects/pdf-name.ts +0 -19
- package/packages/pdf-lite/src/core/objects/pdf-null.ts +0 -15
- package/packages/pdf-lite/src/core/objects/pdf-number.ts +0 -98
- package/packages/pdf-lite/src/core/objects/pdf-object-reference.ts +0 -30
- package/packages/pdf-lite/src/core/objects/pdf-object.ts +0 -107
- package/packages/pdf-lite/src/core/objects/pdf-start-xref.ts +0 -39
- package/packages/pdf-lite/src/core/objects/pdf-stream.ts +0 -687
- package/packages/pdf-lite/src/core/objects/pdf-string.ts +0 -38
- package/packages/pdf-lite/src/core/objects/pdf-trailer.ts +0 -57
- package/packages/pdf-lite/src/core/objects/pdf-xref-table.ts +0 -264
- package/packages/pdf-lite/src/core/streams/object-stream.ts +0 -20
- package/packages/pdf-lite/src/core/tokeniser.ts +0 -687
- package/packages/pdf-lite/src/core/tokens/boolean-token.ts +0 -20
- package/packages/pdf-lite/src/core/tokens/byte-offset-token.ts +0 -20
- package/packages/pdf-lite/src/core/tokens/comment-token.ts +0 -32
- package/packages/pdf-lite/src/core/tokens/end-array-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/end-dictionary-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/end-object-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/end-stream-token.ts +0 -11
- package/packages/pdf-lite/src/core/tokens/hexadecimal-token.ts +0 -22
- package/packages/pdf-lite/src/core/tokens/name-token.ts +0 -19
- package/packages/pdf-lite/src/core/tokens/null-token.ts +0 -9
- package/packages/pdf-lite/src/core/tokens/number-token.ts +0 -164
- package/packages/pdf-lite/src/core/tokens/object-reference-token.ts +0 -24
- package/packages/pdf-lite/src/core/tokens/start-array-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/start-dictionary-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/start-object-token.ts +0 -28
- package/packages/pdf-lite/src/core/tokens/start-stream-token.ts +0 -52
- package/packages/pdf-lite/src/core/tokens/start-xref-token.ts +0 -10
- package/packages/pdf-lite/src/core/tokens/stream-chunk-token.ts +0 -8
- package/packages/pdf-lite/src/core/tokens/string-token.ts +0 -17
- package/packages/pdf-lite/src/core/tokens/token.ts +0 -43
- package/packages/pdf-lite/src/core/tokens/trailer-token.ts +0 -12
- package/packages/pdf-lite/src/core/tokens/whitespace-token.ts +0 -43
- package/packages/pdf-lite/src/core/tokens/xref-table-entry-token.ts +0 -65
- package/packages/pdf-lite/src/core/tokens/xref-table-section-start-token.ts +0 -31
- package/packages/pdf-lite/src/core/tokens/xref-table-start-token.ts +0 -13
- package/packages/pdf-lite/src/crypto/key-derivation/key-derivation-aes256.ts +0 -213
- package/packages/pdf-lite/src/crypto/types.ts +0 -6
- package/packages/pdf-lite/src/filters/lzw.ts +0 -144
- package/packages/pdf-lite/src/index.ts +0 -4
- package/packages/pdf-lite/src/pdf/index.ts +0 -4
- package/packages/pdf-lite/src/pdf/pdf-xref-lookup.ts +0 -527
- package/packages/pdf-lite/src/security/handlers/base.ts +0 -625
- package/packages/pdf-lite/src/security/handlers/pubSec.ts +0 -413
- package/packages/pdf-lite/src/security/handlers/utils.ts +0 -304
- package/packages/pdf-lite/src/security/handlers/v1.ts +0 -225
- package/packages/pdf-lite/src/security/handlers/v4.ts +0 -379
- package/packages/pdf-lite/src/security/handlers/v5.ts +0 -298
- package/packages/pdf-lite/src/signing/document-security-store.ts +0 -224
- package/packages/pdf-lite/src/signing/index.ts +0 -3
- package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-detached.ts +0 -154
- package/packages/pdf-lite/src/signing/signatures/adbe-pkcs7-sha1.ts +0 -161
- package/packages/pdf-lite/src/signing/signatures/adbe-x509-rsa-sha1.ts +0 -106
- package/packages/pdf-lite/src/signing/signatures/base.ts +0 -229
- package/packages/pdf-lite/src/signing/signatures/etsi-cades-detached.ts +0 -229
- package/packages/pdf-lite/src/signing/signatures/index.ts +0 -6
- package/packages/pdf-lite/src/signing/signer.ts +0 -120
- package/packages/pdf-lite/src/types.ts +0 -44
- package/packages/pdf-lite/src/utils/escapeString.ts +0 -49
- package/packages/pdf-lite/src/utils/unescapeString.ts +0 -123
- package/packages/pdf-lite/test/acceptance/__snapshots__/versions.node.test.ts.snap +0 -60766
- 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 +0 -43
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-aes-256.pdf +0 -43
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-128.pdf +0 -43
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic-rc4-40.pdf +0 -44
- package/packages/pdf-lite/test/acceptance/fixtures/2.0/basic.pdf +0 -79
- package/packages/pdf-lite/test/acceptance/versions.node.test.ts +0 -41
- package/packages/pdf-lite/test/unit/__snapshots__/decoder.node.test.ts.snap +0 -86947
- package/packages/pdf-lite/test/unit/__snapshots__/tokeniser.node.test.ts.snap +0 -131829
- package/packages/pdf-lite/test/unit/ciphers.test.ts +0 -61
- package/packages/pdf-lite/test/unit/decoder.node.test.ts +0 -21
- package/packages/pdf-lite/test/unit/decoder.test.ts +0 -567
- package/packages/pdf-lite/test/unit/filters.test.ts +0 -67
- 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 +0 -43
- package/packages/pdf-lite/test/unit/fixtures/protectedAdobeLivecycle.pdf +0 -0
- package/packages/pdf-lite/test/unit/fixtures/rsa-2048/index.ts +0 -187
- 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 +0 -195
- package/packages/pdf-lite/test/unit/pdf.browser.test.ts +0 -0
- package/packages/pdf-lite/test/unit/predictors.test.ts +0 -226
- package/packages/pdf-lite/test/unit/ref.test.ts +0 -158
- package/packages/pdf-lite/test/unit/security-handlers.test.ts +0 -645
- package/packages/pdf-lite/test/unit/serializer.test.ts +0 -81
- package/packages/pdf-lite/test/unit/signature-objects.test.ts +0 -814
- package/packages/pdf-lite/test/unit/string-escaping.test.ts +0 -84
- package/packages/pdf-lite/test/unit/tokeniser.node.test.ts +0 -38
- package/packages/pdf-lite/test/unit/tokeniser.test.ts +0 -1213
- package/packages/pdf-lite/test/unit/utils.test.ts +0 -248
- package/packages/pdf-lite/test/unit/xref-lookup.test.ts +0 -72
- package/packages/pdf-lite/tsconfig.json +0 -4
- package/packages/pdf-lite/tsconfig.prod.json +0 -8
- package/packages/pdf-lite/typedoc.json +0 -14
- package/packages/pdf-lite/vitest.config.ts +0 -43
- package/pnpm-workspace.yaml +0 -2
- package/renovate.json +0 -34
- package/scripts/build-examples.ts +0 -30
- package/scripts/bump-version.sh +0 -56
- package/scripts/gen-html-docs.sh +0 -21
- package/scripts/gen-md-docs.sh +0 -15
- package/scripts/prepare-release.sh +0 -33
- package/tsconfig.json +0 -22
- package/tsconfig.prod.json +0 -12
- package/typedoc.json +0 -34
|
@@ -1,374 +0,0 @@
|
|
|
1
|
-
// Modifying AcroForms example - Creating and filling PDF form fields
|
|
2
|
-
|
|
3
|
-
import { PdfArray } from 'pdf-lite/core/objects/pdf-array'
|
|
4
|
-
import { PdfBoolean } from 'pdf-lite/core/objects/pdf-boolean'
|
|
5
|
-
import { PdfDictionary } from 'pdf-lite/core/objects/pdf-dictionary'
|
|
6
|
-
import { PdfIndirectObject } from 'pdf-lite/core/objects/pdf-indirect-object'
|
|
7
|
-
import { PdfName } from 'pdf-lite/core/objects/pdf-name'
|
|
8
|
-
import { PdfNumber } from 'pdf-lite/core/objects/pdf-number'
|
|
9
|
-
import { PdfObjectReference } from 'pdf-lite/core/objects/pdf-object-reference'
|
|
10
|
-
import { PdfStream } from 'pdf-lite/core/objects/pdf-stream'
|
|
11
|
-
import { PdfString } from 'pdf-lite/core/objects/pdf-string'
|
|
12
|
-
import { PdfDocument } from 'pdf-lite/pdf/pdf-document'
|
|
13
|
-
import fs from 'fs/promises'
|
|
14
|
-
|
|
15
|
-
const tmpFolder = `${import.meta.dirname}/tmp`
|
|
16
|
-
await fs.mkdir(tmpFolder, { recursive: true })
|
|
17
|
-
|
|
18
|
-
// Helper function to create a basic page
|
|
19
|
-
function createPage(
|
|
20
|
-
contentStreamRef: PdfObjectReference,
|
|
21
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
22
|
-
const pageDict = new PdfDictionary()
|
|
23
|
-
pageDict.set('Type', new PdfName('Page'))
|
|
24
|
-
pageDict.set(
|
|
25
|
-
'MediaBox',
|
|
26
|
-
new PdfArray([
|
|
27
|
-
new PdfNumber(0),
|
|
28
|
-
new PdfNumber(0),
|
|
29
|
-
new PdfNumber(612),
|
|
30
|
-
new PdfNumber(792),
|
|
31
|
-
]),
|
|
32
|
-
)
|
|
33
|
-
pageDict.set('Contents', contentStreamRef)
|
|
34
|
-
return new PdfIndirectObject({ content: pageDict })
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Helper function to create pages collection
|
|
38
|
-
function createPages(
|
|
39
|
-
pages: PdfIndirectObject<PdfDictionary>[],
|
|
40
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
41
|
-
const pagesDict = new PdfDictionary()
|
|
42
|
-
pagesDict.set('Type', new PdfName('Pages'))
|
|
43
|
-
pagesDict.set('Kids', new PdfArray(pages.map((x) => x.reference)))
|
|
44
|
-
pagesDict.set('Count', new PdfNumber(pages.length))
|
|
45
|
-
return new PdfIndirectObject({ content: pagesDict })
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// Helper function to create catalog
|
|
49
|
-
function createCatalog(
|
|
50
|
-
pagesRef: PdfObjectReference,
|
|
51
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
52
|
-
const catalogDict = new PdfDictionary()
|
|
53
|
-
catalogDict.set('Type', new PdfName('Catalog'))
|
|
54
|
-
catalogDict.set('Pages', pagesRef)
|
|
55
|
-
return new PdfIndirectObject({ content: catalogDict })
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Helper function to create font
|
|
59
|
-
function createFont(): PdfIndirectObject<PdfDictionary> {
|
|
60
|
-
const fontDict = new PdfDictionary()
|
|
61
|
-
fontDict.set('Type', new PdfName('Font'))
|
|
62
|
-
fontDict.set('Subtype', new PdfName('Type1'))
|
|
63
|
-
fontDict.set('BaseFont', new PdfName('Helvetica'))
|
|
64
|
-
return new PdfIndirectObject({ content: fontDict })
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Helper function to create resources
|
|
68
|
-
function createResources(
|
|
69
|
-
fontRef: PdfObjectReference,
|
|
70
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
71
|
-
const resourcesDict = new PdfDictionary()
|
|
72
|
-
const fontDict = new PdfDictionary()
|
|
73
|
-
fontDict.set('F1', fontRef)
|
|
74
|
-
resourcesDict.set('Font', fontDict)
|
|
75
|
-
return new PdfIndirectObject({ content: resourcesDict })
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Helper function to create a text field widget annotation
|
|
79
|
-
function createTextField(
|
|
80
|
-
fieldName: string,
|
|
81
|
-
pageRef: PdfObjectReference,
|
|
82
|
-
rect: [number, number, number, number],
|
|
83
|
-
defaultValue: string = '',
|
|
84
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
85
|
-
const fieldDict = new PdfDictionary()
|
|
86
|
-
// Annotation properties
|
|
87
|
-
fieldDict.set('Type', new PdfName('Annot'))
|
|
88
|
-
fieldDict.set('Subtype', new PdfName('Widget'))
|
|
89
|
-
// Field type: Text
|
|
90
|
-
fieldDict.set('FT', new PdfName('Tx'))
|
|
91
|
-
// Field name
|
|
92
|
-
fieldDict.set('T', new PdfString(fieldName))
|
|
93
|
-
// Bounding rectangle [x1, y1, x2, y2]
|
|
94
|
-
fieldDict.set(
|
|
95
|
-
'Rect',
|
|
96
|
-
new PdfArray([
|
|
97
|
-
new PdfNumber(rect[0]),
|
|
98
|
-
new PdfNumber(rect[1]),
|
|
99
|
-
new PdfNumber(rect[2]),
|
|
100
|
-
new PdfNumber(rect[3]),
|
|
101
|
-
]),
|
|
102
|
-
)
|
|
103
|
-
// Annotation flags (4 = print)
|
|
104
|
-
fieldDict.set('F', new PdfNumber(4))
|
|
105
|
-
// Parent page reference
|
|
106
|
-
fieldDict.set('P', pageRef)
|
|
107
|
-
// Default value (if any)
|
|
108
|
-
if (defaultValue) {
|
|
109
|
-
fieldDict.set('V', new PdfString(defaultValue))
|
|
110
|
-
fieldDict.set('DV', new PdfString(defaultValue))
|
|
111
|
-
}
|
|
112
|
-
// Default appearance string (font and size)
|
|
113
|
-
fieldDict.set('DA', new PdfString('/Helv 12 Tf 0 g'))
|
|
114
|
-
|
|
115
|
-
return new PdfIndirectObject({ content: fieldDict })
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Helper function to create a checkbox field widget annotation
|
|
119
|
-
function createCheckboxField(
|
|
120
|
-
fieldName: string,
|
|
121
|
-
pageRef: PdfObjectReference,
|
|
122
|
-
rect: [number, number, number, number],
|
|
123
|
-
checked: boolean = false,
|
|
124
|
-
): PdfIndirectObject<PdfDictionary> {
|
|
125
|
-
const fieldDict = new PdfDictionary()
|
|
126
|
-
// Annotation properties
|
|
127
|
-
fieldDict.set('Type', new PdfName('Annot'))
|
|
128
|
-
fieldDict.set('Subtype', new PdfName('Widget'))
|
|
129
|
-
// Field type: Button
|
|
130
|
-
fieldDict.set('FT', new PdfName('Btn'))
|
|
131
|
-
// Field name
|
|
132
|
-
fieldDict.set('T', new PdfString(fieldName))
|
|
133
|
-
// Bounding rectangle
|
|
134
|
-
fieldDict.set(
|
|
135
|
-
'Rect',
|
|
136
|
-
new PdfArray([
|
|
137
|
-
new PdfNumber(rect[0]),
|
|
138
|
-
new PdfNumber(rect[1]),
|
|
139
|
-
new PdfNumber(rect[2]),
|
|
140
|
-
new PdfNumber(rect[3]),
|
|
141
|
-
]),
|
|
142
|
-
)
|
|
143
|
-
// Annotation flags (4 = print)
|
|
144
|
-
fieldDict.set('F', new PdfNumber(4))
|
|
145
|
-
// Parent page reference
|
|
146
|
-
fieldDict.set('P', pageRef)
|
|
147
|
-
// Value: /Yes for checked, /Off for unchecked
|
|
148
|
-
fieldDict.set('V', new PdfName(checked ? 'Yes' : 'Off'))
|
|
149
|
-
fieldDict.set('AS', new PdfName(checked ? 'Yes' : 'Off'))
|
|
150
|
-
|
|
151
|
-
return new PdfIndirectObject({ content: fieldDict })
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// ============================================
|
|
155
|
-
// PART 1: Create a PDF with form fields
|
|
156
|
-
// ============================================
|
|
157
|
-
|
|
158
|
-
const document = new PdfDocument()
|
|
159
|
-
|
|
160
|
-
// Create font
|
|
161
|
-
const font = createFont()
|
|
162
|
-
document.add(font)
|
|
163
|
-
|
|
164
|
-
// Create resources with the font
|
|
165
|
-
const resources = createResources(font.reference)
|
|
166
|
-
document.add(resources)
|
|
167
|
-
|
|
168
|
-
// Create content stream with form labels
|
|
169
|
-
const contentStream = new PdfIndirectObject({
|
|
170
|
-
content: new PdfStream({
|
|
171
|
-
header: new PdfDictionary(),
|
|
172
|
-
original: `BT
|
|
173
|
-
/F1 18 Tf 72 720 Td (PDF Form Example) Tj
|
|
174
|
-
/F1 12 Tf 0 -40 Td (Name:) Tj
|
|
175
|
-
0 -30 Td (Email:) Tj
|
|
176
|
-
0 -30 Td (Phone:) Tj
|
|
177
|
-
0 -30 Td (Subscribe to newsletter:) Tj
|
|
178
|
-
ET`,
|
|
179
|
-
}),
|
|
180
|
-
})
|
|
181
|
-
document.add(contentStream)
|
|
182
|
-
|
|
183
|
-
// Create page
|
|
184
|
-
const page = createPage(contentStream.reference)
|
|
185
|
-
page.content.set('Resources', resources.reference)
|
|
186
|
-
document.add(page)
|
|
187
|
-
|
|
188
|
-
// Create form fields
|
|
189
|
-
const nameField = createTextField('name', page.reference, [150, 665, 400, 685])
|
|
190
|
-
const emailField = createTextField(
|
|
191
|
-
'email',
|
|
192
|
-
page.reference,
|
|
193
|
-
[150, 635, 400, 655],
|
|
194
|
-
)
|
|
195
|
-
const phoneField = createTextField(
|
|
196
|
-
'phone',
|
|
197
|
-
page.reference,
|
|
198
|
-
[150, 605, 400, 625],
|
|
199
|
-
)
|
|
200
|
-
const subscribeField = createCheckboxField(
|
|
201
|
-
'subscribe',
|
|
202
|
-
page.reference,
|
|
203
|
-
[200, 575, 215, 590],
|
|
204
|
-
)
|
|
205
|
-
|
|
206
|
-
document.add(nameField)
|
|
207
|
-
document.add(emailField)
|
|
208
|
-
document.add(phoneField)
|
|
209
|
-
document.add(subscribeField)
|
|
210
|
-
|
|
211
|
-
// Add annotations to page
|
|
212
|
-
page.content.set(
|
|
213
|
-
'Annots',
|
|
214
|
-
new PdfArray([
|
|
215
|
-
nameField.reference,
|
|
216
|
-
emailField.reference,
|
|
217
|
-
phoneField.reference,
|
|
218
|
-
subscribeField.reference,
|
|
219
|
-
]),
|
|
220
|
-
)
|
|
221
|
-
|
|
222
|
-
// Create pages collection
|
|
223
|
-
const pages = createPages([page])
|
|
224
|
-
page.content.set('Parent', pages.reference)
|
|
225
|
-
document.add(pages)
|
|
226
|
-
|
|
227
|
-
// Create catalog
|
|
228
|
-
const catalog = createCatalog(pages.reference)
|
|
229
|
-
|
|
230
|
-
// Create AcroForm with all fields
|
|
231
|
-
const acroForm = new PdfDictionary()
|
|
232
|
-
acroForm.set(
|
|
233
|
-
'Fields',
|
|
234
|
-
new PdfArray([
|
|
235
|
-
nameField.reference,
|
|
236
|
-
emailField.reference,
|
|
237
|
-
phoneField.reference,
|
|
238
|
-
subscribeField.reference,
|
|
239
|
-
]),
|
|
240
|
-
)
|
|
241
|
-
// NeedAppearances flag tells PDF readers to generate appearance streams
|
|
242
|
-
acroForm.set('NeedAppearances', new PdfBoolean(true))
|
|
243
|
-
|
|
244
|
-
// Default resources for the form (font)
|
|
245
|
-
const formResources = new PdfDictionary()
|
|
246
|
-
const formFontDict = new PdfDictionary()
|
|
247
|
-
const helveticaFont = new PdfDictionary()
|
|
248
|
-
helveticaFont.set('Type', new PdfName('Font'))
|
|
249
|
-
helveticaFont.set('Subtype', new PdfName('Type1'))
|
|
250
|
-
helveticaFont.set('BaseFont', new PdfName('Helvetica'))
|
|
251
|
-
formFontDict.set('Helv', helveticaFont)
|
|
252
|
-
formResources.set('Font', formFontDict)
|
|
253
|
-
acroForm.set('DR', formResources)
|
|
254
|
-
|
|
255
|
-
const acroFormObj = new PdfIndirectObject({ content: acroForm })
|
|
256
|
-
document.add(acroFormObj)
|
|
257
|
-
catalog.content.set('AcroForm', acroFormObj.reference)
|
|
258
|
-
|
|
259
|
-
document.add(catalog)
|
|
260
|
-
|
|
261
|
-
// Set the catalog as the root
|
|
262
|
-
document.trailerDict.set('Root', catalog.reference)
|
|
263
|
-
|
|
264
|
-
await document.commit()
|
|
265
|
-
|
|
266
|
-
// Save the empty form
|
|
267
|
-
// This demonstrates creating a blank form that users can fill in
|
|
268
|
-
await fs.writeFile(`${tmpFolder}/form-empty.pdf`, document.toBytes())
|
|
269
|
-
console.log('Created form-empty.pdf with empty form fields')
|
|
270
|
-
|
|
271
|
-
// ============================================
|
|
272
|
-
// PART 2: Fill in the form fields
|
|
273
|
-
// ============================================
|
|
274
|
-
// This demonstrates how to programmatically fill in form fields.
|
|
275
|
-
// We now read the previously saved empty form and modify it.
|
|
276
|
-
|
|
277
|
-
// Read the empty form PDF
|
|
278
|
-
const emptyFormBytes = await fs.readFile(`${tmpFolder}/form-empty.pdf`)
|
|
279
|
-
const filledDocument = await PdfDocument.fromBytes([emptyFormBytes])
|
|
280
|
-
|
|
281
|
-
// Get the catalog reference from trailer
|
|
282
|
-
const catalogRef = filledDocument.trailerDict.get('Root')
|
|
283
|
-
if (!catalogRef || !(catalogRef instanceof PdfObjectReference)) {
|
|
284
|
-
throw new Error('No catalog found in PDF')
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
// Read the catalog object
|
|
288
|
-
const catalogObj = await filledDocument.readObject({
|
|
289
|
-
objectNumber: catalogRef.objectNumber,
|
|
290
|
-
})
|
|
291
|
-
if (!catalogObj || !(catalogObj.content instanceof PdfDictionary)) {
|
|
292
|
-
throw new Error('Catalog object not found')
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
// Get the AcroForm reference
|
|
296
|
-
const acroFormRef = catalogObj.content.get('AcroForm')
|
|
297
|
-
if (!acroFormRef || !(acroFormRef instanceof PdfObjectReference)) {
|
|
298
|
-
throw new Error('No AcroForm found in PDF')
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
// Read the AcroForm object
|
|
302
|
-
const filledAcroFormObj = await filledDocument.readObject({
|
|
303
|
-
objectNumber: acroFormRef.objectNumber,
|
|
304
|
-
})
|
|
305
|
-
if (
|
|
306
|
-
!filledAcroFormObj ||
|
|
307
|
-
!(filledAcroFormObj.content instanceof PdfDictionary)
|
|
308
|
-
) {
|
|
309
|
-
throw new Error('AcroForm object not found')
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
// Get the fields array
|
|
313
|
-
const fieldsArray = filledAcroFormObj.content.get('Fields')
|
|
314
|
-
if (!fieldsArray || !(fieldsArray instanceof PdfArray)) {
|
|
315
|
-
throw new Error('No fields found in AcroForm')
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
// Helper function to find a field by name
|
|
319
|
-
async function findField(
|
|
320
|
-
fieldName: string,
|
|
321
|
-
): Promise<PdfIndirectObject<PdfDictionary> | null> {
|
|
322
|
-
for (const fieldRef of fieldsArray.items) {
|
|
323
|
-
if (!(fieldRef instanceof PdfObjectReference)) continue
|
|
324
|
-
const fieldObj = await filledDocument.readObject({
|
|
325
|
-
objectNumber: fieldRef.objectNumber,
|
|
326
|
-
})
|
|
327
|
-
if (!fieldObj || !(fieldObj.content instanceof PdfDictionary)) continue
|
|
328
|
-
|
|
329
|
-
const name = fieldObj.content.get('T')
|
|
330
|
-
if (name instanceof PdfString) {
|
|
331
|
-
// Convert bytes to string for comparison
|
|
332
|
-
const nameStr = name.value
|
|
333
|
-
if (nameStr === fieldName) {
|
|
334
|
-
return fieldObj as PdfIndirectObject<PdfDictionary>
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
return null
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
// Update the name field value
|
|
342
|
-
const nameFieldObj = await findField('name')
|
|
343
|
-
if (nameFieldObj) {
|
|
344
|
-
nameFieldObj.content.set('V', new PdfString('John Doe'))
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
// Update the email field value
|
|
348
|
-
const emailFieldObj = await findField('email')
|
|
349
|
-
if (emailFieldObj) {
|
|
350
|
-
emailFieldObj.content.set('V', new PdfString('john.doe@example.com'))
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
// Update the phone field value
|
|
354
|
-
const phoneFieldObj = await findField('phone')
|
|
355
|
-
if (phoneFieldObj) {
|
|
356
|
-
phoneFieldObj.content.set('V', new PdfString('+1 (555) 123-4567'))
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
// Check the subscribe checkbox
|
|
360
|
-
const subscribeFieldObj = await findField('subscribe')
|
|
361
|
-
if (subscribeFieldObj) {
|
|
362
|
-
subscribeFieldObj.content.set('V', new PdfName('Yes'))
|
|
363
|
-
subscribeFieldObj.content.set('AS', new PdfName('Yes'))
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
// Save the filled form
|
|
367
|
-
await fs.writeFile(`${tmpFolder}/form-filled.pdf`, filledDocument.toBytes())
|
|
368
|
-
console.log('Created form-filled.pdf with filled form fields')
|
|
369
|
-
|
|
370
|
-
console.log('\nForm field values:')
|
|
371
|
-
console.log('- Name: John Doe')
|
|
372
|
-
console.log('- Email: john.doe@example.com')
|
|
373
|
-
console.log('- Phone: +1 (555) 123-4567')
|
|
374
|
-
console.log('- Subscribe: Yes')
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
// Tokeniser usage example
|
|
2
|
-
|
|
3
|
-
import { PdfByteStreamTokeniser } from 'pdf-lite/core/tokeniser'
|
|
4
|
-
import { PdfToken } from 'pdf-lite/core/tokens/token'
|
|
5
|
-
import { stringToBytes } from 'pdf-lite/utils/stringToBytes'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* This example demonstrates how to use the PdfByteStreamTokeniser
|
|
9
|
-
* to tokenize PDF content into individual tokens.
|
|
10
|
-
*
|
|
11
|
-
* The tokeniser converts raw PDF bytes into a stream of tokens that can
|
|
12
|
-
* be further processed by the decoder or used for PDF analysis.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
// Sample PDF content to tokenize
|
|
16
|
-
const pdfContent = `%PDF-2.0
|
|
17
|
-
1 0 obj
|
|
18
|
-
<< /Type /Catalog /Pages 2 0 R >>
|
|
19
|
-
endobj
|
|
20
|
-
2 0 obj
|
|
21
|
-
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
|
|
22
|
-
endobj
|
|
23
|
-
3 0 obj
|
|
24
|
-
<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] >>
|
|
25
|
-
endobj
|
|
26
|
-
trailer
|
|
27
|
-
<< /Size 4 /Root 1 0 R >>
|
|
28
|
-
startxref
|
|
29
|
-
0
|
|
30
|
-
%%EOF`
|
|
31
|
-
|
|
32
|
-
// Create the tokeniser
|
|
33
|
-
const tokeniser = new PdfByteStreamTokeniser()
|
|
34
|
-
|
|
35
|
-
// Convert the PDF content to bytes and feed it to the tokeniser
|
|
36
|
-
const bytes = stringToBytes(pdfContent)
|
|
37
|
-
tokeniser.feedBytes(bytes)
|
|
38
|
-
|
|
39
|
-
// Signal end of input
|
|
40
|
-
tokeniser.eof = true
|
|
41
|
-
|
|
42
|
-
// Collect all tokens
|
|
43
|
-
const tokens: PdfToken[] = []
|
|
44
|
-
for (const token of tokeniser.nextItems()) {
|
|
45
|
-
tokens.push(token)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// Display tokenisation results
|
|
49
|
-
console.log('PDF Tokenisation Example')
|
|
50
|
-
console.log('========================\n')
|
|
51
|
-
console.log(`Input: ${pdfContent.length} bytes`)
|
|
52
|
-
console.log(`Output: ${tokens.length} tokens\n`)
|
|
53
|
-
|
|
54
|
-
// Group tokens by type for summary
|
|
55
|
-
const tokenCounts = new Map<string, number>()
|
|
56
|
-
for (const token of tokens) {
|
|
57
|
-
const type = token.constructor.name
|
|
58
|
-
tokenCounts.set(type, (tokenCounts.get(type) ?? 0) + 1)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
console.log('Token type counts:')
|
|
62
|
-
for (const [type, count] of tokenCounts) {
|
|
63
|
-
console.log(` ${type}: ${count}`)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
console.log('\nFirst 20 tokens:')
|
|
67
|
-
for (const token of tokens.slice(0, 20)) {
|
|
68
|
-
const tokenString = token.toString().slice(0, 40)
|
|
69
|
-
const displayString =
|
|
70
|
-
tokenString.length >= 40 ? tokenString + '...' : tokenString
|
|
71
|
-
console.log(
|
|
72
|
-
` ${token.constructor.name.padEnd(30)} ${JSON.stringify(displayString)}`,
|
|
73
|
-
)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Example: Tokenising incrementally (useful for streaming)
|
|
77
|
-
console.log('\n\nIncremental Tokenisation Example')
|
|
78
|
-
console.log('=================================\n')
|
|
79
|
-
|
|
80
|
-
const incrementalTokeniser = new PdfByteStreamTokeniser()
|
|
81
|
-
|
|
82
|
-
// Feed bytes in chunks (simulating streaming)
|
|
83
|
-
const chunkSize = 50
|
|
84
|
-
const numChunks = Math.ceil(bytes.length / chunkSize)
|
|
85
|
-
|
|
86
|
-
console.log(`Processing ${numChunks} chunks of ~${chunkSize} bytes each...`)
|
|
87
|
-
|
|
88
|
-
let totalTokens = 0
|
|
89
|
-
for (let i = 0; i < bytes.length; i += chunkSize) {
|
|
90
|
-
const chunk = bytes.slice(i, i + chunkSize)
|
|
91
|
-
incrementalTokeniser.feedBytes(chunk)
|
|
92
|
-
|
|
93
|
-
// Process tokens as they become available
|
|
94
|
-
for (const _ of incrementalTokeniser.nextItems()) {
|
|
95
|
-
totalTokens++
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Signal end of input and collect remaining tokens
|
|
100
|
-
incrementalTokeniser.eof = true
|
|
101
|
-
for (const _ of incrementalTokeniser.nextItems()) {
|
|
102
|
-
totalTokens++
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
console.log(`Total tokens produced: ${totalTokens}`)
|
|
106
|
-
|
|
107
|
-
// Example: Custom stream chunk size
|
|
108
|
-
console.log('\n\nCustom Stream Chunk Size Example')
|
|
109
|
-
console.log('================================\n')
|
|
110
|
-
|
|
111
|
-
const customTokeniser = new PdfByteStreamTokeniser({
|
|
112
|
-
streamChunkSizeBytes: 512, // Customize the chunk size for stream content
|
|
113
|
-
})
|
|
114
|
-
|
|
115
|
-
const streamContent = `1 0 obj
|
|
116
|
-
<< /Length 100 >>
|
|
117
|
-
stream
|
|
118
|
-
This is stream content that will be chunked by the tokeniser.
|
|
119
|
-
The chunk size determines how the stream data is delivered.
|
|
120
|
-
endstream
|
|
121
|
-
endobj`
|
|
122
|
-
|
|
123
|
-
customTokeniser.feedBytes(stringToBytes(streamContent))
|
|
124
|
-
customTokeniser.eof = true
|
|
125
|
-
|
|
126
|
-
console.log('Tokens from stream content:')
|
|
127
|
-
for (const token of customTokeniser.nextItems()) {
|
|
128
|
-
const type = token.constructor.name
|
|
129
|
-
const preview = token.toString().slice(0, 50).replace(/\n/g, '\\n')
|
|
130
|
-
console.log(` ${type.padEnd(25)} ${JSON.stringify(preview)}`)
|
|
131
|
-
}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
// Decoder usage example
|
|
2
|
-
|
|
3
|
-
import { PdfDecoder } from 'pdf-lite/core/decoder'
|
|
4
|
-
import { PdfByteStreamTokeniser } from 'pdf-lite/core/tokeniser'
|
|
5
|
-
import { pdfDecoder } from 'pdf-lite/core/generators'
|
|
6
|
-
import { PdfObject } from 'pdf-lite/core/objects/pdf-object'
|
|
7
|
-
import { PdfIndirectObject } from 'pdf-lite/core/objects/pdf-indirect-object'
|
|
8
|
-
import { PdfDictionary } from 'pdf-lite/core/objects/pdf-dictionary'
|
|
9
|
-
import { PdfStream } from 'pdf-lite/core/objects/pdf-stream'
|
|
10
|
-
import { PdfTrailer } from 'pdf-lite/core/objects/pdf-trailer'
|
|
11
|
-
import { PdfXRefTable } from 'pdf-lite/core/objects/pdf-xref-table'
|
|
12
|
-
import { PdfComment } from 'pdf-lite/core/objects/pdf-comment'
|
|
13
|
-
import { PdfStartXRef } from 'pdf-lite/core/objects/pdf-start-xref'
|
|
14
|
-
import { stringToBytes } from 'pdf-lite/utils/stringToBytes'
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* This example demonstrates how to use the PdfDecoder
|
|
18
|
-
* to decode PDF tokens into PDF objects.
|
|
19
|
-
*
|
|
20
|
-
* The decoder transforms a stream of tokens (from the tokeniser)
|
|
21
|
-
* into high-level PDF objects like dictionaries, arrays, streams,
|
|
22
|
-
* and indirect objects.
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
// Sample PDF content to decode
|
|
26
|
-
const pdfContent = `%PDF-2.0
|
|
27
|
-
1 0 obj
|
|
28
|
-
<< /Type /Catalog /Pages 2 0 R >>
|
|
29
|
-
endobj
|
|
30
|
-
2 0 obj
|
|
31
|
-
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
|
|
32
|
-
endobj
|
|
33
|
-
3 0 obj
|
|
34
|
-
<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R >>
|
|
35
|
-
endobj
|
|
36
|
-
4 0 obj
|
|
37
|
-
<< /Length 44 >>
|
|
38
|
-
stream
|
|
39
|
-
BT /F1 12 Tf 100 700 Td (Hello!) Tj ET
|
|
40
|
-
endstream
|
|
41
|
-
endobj
|
|
42
|
-
xref
|
|
43
|
-
0 5
|
|
44
|
-
0000000000 65535 f
|
|
45
|
-
0000000010 00000 n
|
|
46
|
-
0000000060 00000 n
|
|
47
|
-
0000000118 00000 n
|
|
48
|
-
0000000217 00000 n
|
|
49
|
-
trailer
|
|
50
|
-
<< /Size 5 /Root 1 0 R >>
|
|
51
|
-
startxref
|
|
52
|
-
310
|
|
53
|
-
%%EOF`
|
|
54
|
-
|
|
55
|
-
// Method 1: Using the pdfDecoder generator (recommended)
|
|
56
|
-
console.log('PDF Decoder Example - Using pdfDecoder Generator')
|
|
57
|
-
console.log('================================================\n')
|
|
58
|
-
|
|
59
|
-
const bytes = stringToBytes(pdfContent)
|
|
60
|
-
const objects: PdfObject[] = []
|
|
61
|
-
|
|
62
|
-
for (const obj of pdfDecoder([bytes])) {
|
|
63
|
-
objects.push(obj)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
console.log(`Decoded ${objects.length} PDF objects:\n`)
|
|
67
|
-
|
|
68
|
-
for (const obj of objects) {
|
|
69
|
-
const type = obj.constructor.name
|
|
70
|
-
|
|
71
|
-
if (obj instanceof PdfComment) {
|
|
72
|
-
console.log(` ${type}: ${obj.toString().trim()}`)
|
|
73
|
-
} else if (obj instanceof PdfIndirectObject) {
|
|
74
|
-
const contentType = obj.content.constructor.name
|
|
75
|
-
console.log(
|
|
76
|
-
` ${type}: ${obj.objectNumber} ${obj.generationNumber} obj (${contentType})`,
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
// Show dictionary keys if content is a dictionary or stream
|
|
80
|
-
if (obj.content instanceof PdfDictionary) {
|
|
81
|
-
const keys = Object.keys(obj.content.values)
|
|
82
|
-
console.log(` Keys: ${keys.join(', ')}`)
|
|
83
|
-
}
|
|
84
|
-
if (obj.content instanceof PdfStream) {
|
|
85
|
-
console.log(
|
|
86
|
-
` Stream length: ${obj.content.original.length} bytes`,
|
|
87
|
-
)
|
|
88
|
-
}
|
|
89
|
-
} else if (obj instanceof PdfXRefTable) {
|
|
90
|
-
console.log(` ${type}: ${obj.entries.length} entries`)
|
|
91
|
-
} else if (obj instanceof PdfTrailer) {
|
|
92
|
-
const size = obj.dict.get('Size')?.toString() ?? 'unknown'
|
|
93
|
-
console.log(` ${type}: Size=${size}`)
|
|
94
|
-
} else if (obj instanceof PdfStartXRef) {
|
|
95
|
-
console.log(` ${type}: offset=${obj.offset}`)
|
|
96
|
-
} else {
|
|
97
|
-
console.log(` ${type}`)
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Method 2: Using the PdfDecoder class directly with a tokeniser
|
|
102
|
-
console.log('\n\nPDF Decoder Example - Manual Pipeline')
|
|
103
|
-
console.log('======================================\n')
|
|
104
|
-
|
|
105
|
-
const tokeniser = new PdfByteStreamTokeniser()
|
|
106
|
-
const decoder = new PdfDecoder({ ignoreWhitespace: true })
|
|
107
|
-
|
|
108
|
-
// Feed bytes to tokeniser
|
|
109
|
-
tokeniser.feedBytes(bytes)
|
|
110
|
-
tokeniser.eof = true
|
|
111
|
-
|
|
112
|
-
// Feed tokens to decoder
|
|
113
|
-
for (const token of tokeniser.nextItems()) {
|
|
114
|
-
decoder.feed(token)
|
|
115
|
-
}
|
|
116
|
-
decoder.eof = true
|
|
117
|
-
|
|
118
|
-
// Collect decoded objects
|
|
119
|
-
const manualObjects: PdfObject[] = []
|
|
120
|
-
for (const obj of decoder.nextItems()) {
|
|
121
|
-
manualObjects.push(obj)
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
console.log(`Decoded ${manualObjects.length} objects with whitespace ignored\n`)
|
|
125
|
-
|
|
126
|
-
// Count objects by type
|
|
127
|
-
const typeCounts = new Map<string, number>()
|
|
128
|
-
for (const obj of manualObjects) {
|
|
129
|
-
const type = obj.constructor.name
|
|
130
|
-
typeCounts.set(type, (typeCounts.get(type) ?? 0) + 1)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
console.log('Object type counts:')
|
|
134
|
-
for (const [type, count] of typeCounts) {
|
|
135
|
-
console.log(` ${type}: ${count}`)
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Example: Incremental decoding (useful for streaming)
|
|
139
|
-
console.log('\n\nIncremental Decoding Example')
|
|
140
|
-
console.log('============================\n')
|
|
141
|
-
|
|
142
|
-
const streamTokeniser = new PdfByteStreamTokeniser()
|
|
143
|
-
const streamDecoder = new PdfDecoder()
|
|
144
|
-
|
|
145
|
-
// Simulate streaming by processing in chunks
|
|
146
|
-
const chunkSize = 100
|
|
147
|
-
let objectCount = 0
|
|
148
|
-
|
|
149
|
-
for (let i = 0; i < bytes.length; i += chunkSize) {
|
|
150
|
-
const chunk = bytes.slice(i, i + chunkSize)
|
|
151
|
-
streamTokeniser.feedBytes(chunk)
|
|
152
|
-
|
|
153
|
-
// Process available tokens
|
|
154
|
-
for (const token of streamTokeniser.nextItems()) {
|
|
155
|
-
streamDecoder.feed(token)
|
|
156
|
-
|
|
157
|
-
// Collect any complete objects
|
|
158
|
-
for (const obj of streamDecoder.nextItems()) {
|
|
159
|
-
objectCount++
|
|
160
|
-
console.log(
|
|
161
|
-
` Chunk ${Math.floor(i / chunkSize) + 1}: Found ${obj.constructor.name}`,
|
|
162
|
-
)
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// Finalize
|
|
168
|
-
streamTokeniser.eof = true
|
|
169
|
-
streamDecoder.eof = true
|
|
170
|
-
|
|
171
|
-
for (const token of streamTokeniser.nextItems()) {
|
|
172
|
-
streamDecoder.feed(token)
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
for (const obj of streamDecoder.nextItems()) {
|
|
176
|
-
objectCount++
|
|
177
|
-
console.log(` Final: Found ${obj.constructor.name}`)
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
console.log(`\nTotal objects decoded incrementally: ${objectCount}`)
|
|
181
|
-
|
|
182
|
-
// Example: Preserving whitespace for round-trip
|
|
183
|
-
console.log('\n\nRound-Trip Example (Preserving Whitespace)')
|
|
184
|
-
console.log('==========================================\n')
|
|
185
|
-
|
|
186
|
-
const simpleDict = `<< /Type /Page /MediaBox [0 0 612 792] >>`
|
|
187
|
-
const preservingDecoder = pdfDecoder([stringToBytes(simpleDict)], {
|
|
188
|
-
ignoreWhitespace: false,
|
|
189
|
-
})
|
|
190
|
-
|
|
191
|
-
for (const obj of preservingDecoder) {
|
|
192
|
-
// toString() will recreate the original representation
|
|
193
|
-
const reconstructed = obj.toString()
|
|
194
|
-
console.log('Original: ', JSON.stringify(simpleDict))
|
|
195
|
-
console.log('Reconstructed:', JSON.stringify(reconstructed))
|
|
196
|
-
console.log('Match:', simpleDict === reconstructed)
|
|
197
|
-
}
|