@pdfme/pdf-lib 6.0.3 → 6.0.4-dev.1
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/{src/api/Embeddable.ts → dist/api/Embeddable.d.ts} +1 -1
- package/dist/api/PDFDocument.d.ts +778 -0
- package/dist/api/PDFDocumentOptions.d.ts +38 -0
- package/dist/api/PDFEmbeddedFile.d.ts +38 -0
- package/dist/api/PDFEmbeddedPage.d.ts +73 -0
- package/dist/api/PDFFont.d.ts +94 -0
- package/dist/api/PDFImage.d.ts +95 -0
- package/dist/api/PDFJavaScript.d.ts +38 -0
- package/dist/api/PDFPage.d.ts +910 -0
- package/dist/api/PDFPageOptions.d.ts +172 -0
- package/dist/api/StandardFonts.d.ts +16 -0
- package/dist/api/colors.d.ts +34 -0
- package/dist/api/errors.d.ts +42 -0
- package/dist/api/form/PDFButton.d.ts +137 -0
- package/dist/api/form/PDFCheckBox.d.ts +142 -0
- package/dist/api/form/PDFDropdown.d.ts +402 -0
- package/dist/api/form/PDFField.d.ts +203 -0
- package/dist/api/form/PDFForm.d.ts +411 -0
- package/dist/api/form/PDFOptionList.d.ts +335 -0
- package/dist/api/form/PDFRadioGroup.d.ts +252 -0
- package/dist/api/form/PDFSignature.d.ts +29 -0
- package/dist/api/form/PDFTextField.d.ts +537 -0
- package/dist/api/form/appearances.d.ts +41 -0
- package/dist/api/image/alignment.d.ts +5 -0
- package/dist/api/objects.d.ts +4 -0
- package/dist/api/operations.d.ts +226 -0
- package/dist/api/operators.d.ts +90 -0
- package/dist/api/rotations.d.ts +38 -0
- package/dist/api/sizes.d.ts +52 -0
- package/dist/api/svg.d.ts +70 -0
- package/dist/api/svgPath.d.ts +2 -0
- package/dist/api/text/alignment.d.ts +5 -0
- package/dist/api/text/layout.d.ts +54 -0
- package/dist/core/PDFContext.d.ts +84 -0
- package/dist/core/PDFObjectCopier.d.ts +37 -0
- package/dist/core/acroform/PDFAcroButton.d.ts +21 -0
- package/dist/core/acroform/PDFAcroCheckBox.d.ts +13 -0
- package/dist/core/acroform/PDFAcroChoice.d.ts +20 -0
- package/dist/core/acroform/PDFAcroComboBox.d.ts +9 -0
- package/dist/core/acroform/PDFAcroField.d.ts +36 -0
- package/dist/core/acroform/PDFAcroForm.d.ts +20 -0
- package/dist/core/acroform/PDFAcroListBox.d.ts +9 -0
- package/dist/core/acroform/PDFAcroNonTerminal.d.ts +13 -0
- package/dist/core/acroform/PDFAcroPushButton.d.ts +9 -0
- package/dist/core/acroform/PDFAcroRadioButton.d.ts +13 -0
- package/{src/core/acroform/PDFAcroSignature.ts → dist/core/acroform/PDFAcroSignature.d.ts} +2 -4
- package/dist/core/acroform/PDFAcroTerminal.d.ts +16 -0
- package/dist/core/acroform/PDFAcroText.d.ts +22 -0
- package/dist/core/acroform/flags.d.ts +141 -0
- package/dist/core/acroform/utils.d.ts +6 -0
- package/dist/core/annotation/AppearanceCharacteristics.d.ts +33 -0
- package/dist/core/annotation/BorderStyle.d.ts +11 -0
- package/dist/core/annotation/PDFAnnotation.d.ts +51 -0
- package/dist/core/annotation/PDFWidgetAnnotation.d.ts +26 -0
- package/dist/core/annotation/flags.d.ts +79 -0
- package/dist/core/crypto.d.ts +95 -0
- package/dist/core/document/PDFCrossRefSection.d.ts +27 -0
- package/dist/core/document/PDFHeader.d.ts +10 -0
- package/dist/core/document/PDFTrailer.d.ts +9 -0
- package/dist/core/document/PDFTrailerDict.d.ts +10 -0
- package/dist/core/embedders/CMap.d.ts +3 -0
- package/dist/core/embedders/CustomFontEmbedder.d.ts +44 -0
- package/dist/core/embedders/CustomFontSubsetEmbedder.d.ts +20 -0
- package/dist/core/embedders/FileEmbedder.d.ts +33 -0
- package/dist/core/embedders/FontFlags.d.ts +13 -0
- package/dist/core/embedders/JavaScriptEmbedder.d.ts +10 -0
- package/dist/core/embedders/JpegEmbedder.d.ts +23 -0
- package/dist/core/embedders/PDFPageEmbedder.d.ts +37 -0
- package/dist/core/embedders/PngEmbedder.d.ts +19 -0
- package/dist/core/embedders/StandardFontEmbedder.d.ts +36 -0
- package/dist/core/errors.d.ts +94 -0
- package/{src/core/index.ts → dist/core/index.d.ts} +1 -17
- package/dist/core/interactive/ViewerPreferences.d.ts +347 -0
- package/dist/core/objects/PDFArray.d.ts +63 -0
- package/dist/core/objects/PDFBool.d.ts +13 -0
- package/dist/core/objects/PDFDict.d.ts +62 -0
- package/dist/core/objects/PDFHexString.d.ts +16 -0
- package/dist/core/objects/PDFInvalidObject.d.ts +11 -0
- package/dist/core/objects/PDFName.d.ts +41 -0
- package/dist/core/objects/PDFNull.d.ts +10 -0
- package/dist/core/objects/PDFNumber.d.ts +15 -0
- package/dist/core/objects/PDFObject.d.ts +8 -0
- package/dist/core/objects/PDFRawStream.d.ts +16 -0
- package/dist/core/objects/PDFRef.d.ts +13 -0
- package/dist/core/objects/PDFStream.d.ts +16 -0
- package/dist/core/objects/PDFString.d.ts +16 -0
- package/dist/core/operators/PDFOperator.d.ts +19 -0
- package/dist/core/operators/PDFOperatorNames.d.ts +76 -0
- package/dist/core/parser/BaseParser.d.ts +14 -0
- package/dist/core/parser/ByteStream.d.ts +26 -0
- package/dist/core/parser/PDFObjectParser.d.ts +31 -0
- package/dist/core/parser/PDFObjectStreamParser.d.ts +13 -0
- package/dist/core/parser/PDFParser.d.ts +46 -0
- package/dist/core/parser/PDFXRefStreamParser.d.ts +21 -0
- package/dist/core/streams/Ascii85Stream.d.ts +9 -0
- package/dist/core/streams/AsciiHexStream.d.ts +9 -0
- package/dist/core/streams/DecodeStream.d.ts +26 -0
- package/dist/core/streams/DecryptStream.d.ts +12 -0
- package/dist/core/streams/FlateStream.d.ts +13 -0
- package/dist/core/streams/LZWStream.d.ts +12 -0
- package/dist/core/streams/RunLengthStream.d.ts +8 -0
- package/dist/core/streams/Stream.d.ts +34 -0
- package/dist/core/streams/decode.d.ts +3 -0
- package/dist/core/structures/PDFCatalog.d.ts +27 -0
- package/dist/core/structures/PDFContentStream.d.ts +15 -0
- package/dist/core/structures/PDFCrossRefStream.d.ts +53 -0
- package/dist/core/structures/PDFFlateStream.d.ts +13 -0
- package/dist/core/structures/PDFObjectStream.d.ts +20 -0
- package/dist/core/structures/PDFPageLeaf.d.ts +54 -0
- package/dist/core/structures/PDFPageTree.d.ts +41 -0
- package/dist/core/syntax/CharCodes.d.ts +61 -0
- package/dist/core/syntax/Delimiters.d.ts +1 -0
- package/dist/core/syntax/Irregular.d.ts +1 -0
- package/dist/core/syntax/Keywords.d.ts +22 -0
- package/dist/core/syntax/Numeric.d.ts +3 -0
- package/dist/core/syntax/Whitespace.d.ts +1 -0
- package/dist/core/writers/PDFStreamWriter.d.ts +19 -0
- package/dist/core/writers/PDFWriter.d.ts +29 -0
- package/dist/index.js +19124 -0
- package/dist/index.js.map +1 -0
- package/dist/types/fontkit.d.ts +597 -0
- package/{src/types/index.ts → dist/types/index.d.ts} +8 -13
- package/{src/types/matrix.ts → dist/types/matrix.d.ts} +1 -2
- package/dist/utils/Cache.d.ts +10 -0
- package/dist/utils/arrays.d.ts +16 -0
- package/dist/utils/async.d.ts +5 -0
- package/dist/utils/base64.d.ts +10 -0
- package/dist/utils/elements/Arc.d.ts +22 -0
- package/dist/utils/elements/Circle.d.ts +14 -0
- package/dist/utils/elements/Ellipse.d.ts +20 -0
- package/dist/utils/elements/GraphElement.d.ts +6 -0
- package/dist/utils/elements/Line.d.ts +23 -0
- package/dist/utils/elements/Plot.d.ts +11 -0
- package/dist/utils/elements/Point.d.ts +18 -0
- package/dist/utils/elements/Rectangle.d.ts +21 -0
- package/dist/utils/elements/Segment.d.ts +19 -0
- package/dist/utils/errors.d.ts +1 -0
- package/dist/utils/intersections.d.ts +9 -0
- package/dist/utils/maths.d.ts +45 -0
- package/dist/utils/numbers.d.ts +23 -0
- package/dist/utils/objects.d.ts +15 -0
- package/dist/utils/pdfDocEncoding.d.ts +7 -0
- package/dist/utils/png.d.ts +17 -0
- package/dist/utils/rng.d.ts +13 -0
- package/dist/utils/strings.d.ts +25 -0
- package/{src/utils/unicode.ts → dist/utils/unicode.d.ts} +8 -195
- package/dist/utils/validators.d.ts +26 -0
- package/package.json +6 -1
- package/__tests__/api/PDFDocument.spec.ts +0 -576
- package/__tests__/api/PDFImage.spec.ts +0 -60
- package/__tests__/api/PDFPage.spec.ts +0 -151
- package/__tests__/api/form/PDFCheckBox.spec.ts +0 -71
- package/__tests__/api/form/PDFDropdown.spec.ts +0 -118
- package/__tests__/api/form/PDFForm.spec.ts +0 -370
- package/__tests__/api/form/PDFOptionList.spec.ts +0 -104
- package/__tests__/api/form/PDFRadioGroup.spec.ts +0 -183
- package/__tests__/api/form/PDFTextField.spec.ts +0 -148
- package/__tests__/api/svgPath.spec.ts +0 -153
- package/__tests__/api/text/layout.spec.ts +0 -166
- package/__tests__/core/PDFContext.spec.ts +0 -194
- package/__tests__/core/PDFObjectCopier.spec.ts +0 -421
- package/__tests__/core/acroform/PDFAcroField.spec.ts +0 -98
- package/__tests__/core/acroform/PDFAcroTerminal.spec.ts +0 -39
- package/__tests__/core/annotation/PDFWidgetAnnotation.spec.ts +0 -40
- package/__tests__/core/document/PDFCrossRefSection.spec.ts +0 -88
- package/__tests__/core/document/PDFHeader.spec.ts +0 -22
- package/__tests__/core/document/PDFTrailer.spec.ts +0 -28
- package/__tests__/core/document/PDFTrailerDict.spec.ts +0 -24
- package/__tests__/core/embedders/CMap.spec.ts +0 -47
- package/__tests__/core/embedders/CustomFontEmbedder.spec.ts +0 -96
- package/__tests__/core/embedders/CustomFontSubsetEmbedder.spec.ts +0 -62
- package/__tests__/core/embedders/FileEmbedder.spec.ts +0 -54
- package/__tests__/core/embedders/JpegEmbedder.spec.ts +0 -67
- package/__tests__/core/embedders/PDFPageEmbedder.spec.ts +0 -65
- package/__tests__/core/embedders/PngEmbedder.spec.ts +0 -87
- package/__tests__/core/embedders/StandardFontEmbedder.spec.ts +0 -79
- package/__tests__/core/embedders/data/SourceHanSerifJP-Regular.otf.cmap +0 -16096
- package/__tests__/core/embedders/data/Ubuntu-R.ttf.cmap +0 -1211
- package/__tests__/core/objects/PDFArray.spec.ts +0 -134
- package/__tests__/core/objects/PDFBool.spec.ts +0 -42
- package/__tests__/core/objects/PDFDict.spec.ts +0 -195
- package/__tests__/core/objects/PDFHexString.spec.ts +0 -168
- package/__tests__/core/objects/PDFInvalidObject.spec.ts +0 -32
- package/__tests__/core/objects/PDFName.spec.ts +0 -122
- package/__tests__/core/objects/PDFNull.spec.ts +0 -30
- package/__tests__/core/objects/PDFNumber.spec.ts +0 -50
- package/__tests__/core/objects/PDFObject.spec.ts +0 -29
- package/__tests__/core/objects/PDFRawStream.spec.ts +0 -45
- package/__tests__/core/objects/PDFRef.spec.ts +0 -60
- package/__tests__/core/objects/PDFString.spec.ts +0 -237
- package/__tests__/core/operators/PDFOperator.spec.ts +0 -77
- package/__tests__/core/parser/PDFObjectParser.spec.ts +0 -730
- package/__tests__/core/parser/PDFObjectStreamParser.spec.ts +0 -158
- package/__tests__/core/parser/PDFParser.spec.ts +0 -398
- package/__tests__/core/parser/PDFXRefStreamParser.spec.ts +0 -187
- package/__tests__/core/parser/data/object-stream-invalid +0 -2
- package/__tests__/core/parser/data/object-stream1 +0 -16
- package/__tests__/core/parser/data/object-stream2 +0 -10
- package/__tests__/core/parser/data/object-stream3 +0 -0
- package/__tests__/core/parser/data/object-stream4 +0 -0
- package/__tests__/core/parser/data/xref-stream1 +0 -0
- package/__tests__/core/parser/data/xref-stream2 +0 -0
- package/__tests__/core/parser/data/xref-stream3 +0 -0
- package/__tests__/core/parser/data/xref-stream4 +0 -0
- package/__tests__/core/streams/Ascii85Stream.spec.ts +0 -20
- package/__tests__/core/streams/AsciiHexStream.spec.ts +0 -20
- package/__tests__/core/streams/FlateStream.spec.ts +0 -20
- package/__tests__/core/streams/LZWStream.spec.ts +0 -20
- package/__tests__/core/streams/RunLengthStream.spec.ts +0 -20
- package/__tests__/core/streams/Stream.spec.ts +0 -128
- package/__tests__/core/streams/data/ascii85/1.decoded +0 -0
- package/__tests__/core/streams/data/ascii85/1.encoded +0 -43
- package/__tests__/core/streams/data/asciihex/1.decoded +0 -1
- package/__tests__/core/streams/data/asciihex/1.encoded +0 -1
- package/__tests__/core/streams/data/asciihex/2.decoded +0 -7
- package/__tests__/core/streams/data/asciihex/2.encoded +0 -1
- package/__tests__/core/streams/data/flate/1.corrupt.encoded +0 -1
- package/__tests__/core/streams/data/flate/1.decoded +0 -0
- package/__tests__/core/streams/data/flate/1.encoded +0 -2
- package/__tests__/core/streams/data/flate/2.decoded +0 -33
- package/__tests__/core/streams/data/flate/2.encoded +0 -0
- package/__tests__/core/streams/data/flate/3.decoded +0 -15
- package/__tests__/core/streams/data/flate/3.encoded +0 -0
- package/__tests__/core/streams/data/flate/4.decoded +0 -16
- package/__tests__/core/streams/data/flate/4.encoded +0 -0
- package/__tests__/core/streams/data/flate/5.decoded +0 -0
- package/__tests__/core/streams/data/flate/5.encoded +0 -0
- package/__tests__/core/streams/data/flate/6.decoded +0 -17
- package/__tests__/core/streams/data/flate/6.encoded +0 -0
- package/__tests__/core/streams/data/flate/7.decoded +0 -20
- package/__tests__/core/streams/data/flate/7.encoded +0 -1
- package/__tests__/core/streams/data/lzw/1.decoded +0 -0
- package/__tests__/core/streams/data/lzw/1.encoded +0 -0
- package/__tests__/core/streams/data/lzw/2.decoded +0 -0
- package/__tests__/core/streams/data/lzw/2.encoded +0 -0
- package/__tests__/core/streams/data/lzw/3.decoded +0 -14
- package/__tests__/core/streams/data/lzw/3.encoded +0 -2
- package/__tests__/core/streams/data/lzw/4.decoded +0 -14
- package/__tests__/core/streams/data/lzw/4.encoded +0 -2
- package/__tests__/core/streams/data/runlength/1.decoded +0 -1
- package/__tests__/core/streams/data/runlength/1.encoded +0 -1
- package/__tests__/core/streams/data/runlength/2.decoded +0 -1
- package/__tests__/core/streams/data/runlength/2.encoded +0 -1
- package/__tests__/core/streams/data/runlength/3.decoded +0 -0
- package/__tests__/core/streams/data/runlength/3.encoded +0 -0
- package/__tests__/core/streams/data/runlength/4.decoded +0 -1
- package/__tests__/core/streams/data/runlength/4.encoded +0 -1
- package/__tests__/core/streams/data/runlength/5.decoded +0 -1
- package/__tests__/core/streams/data/runlength/5.encoded +0 -1
- package/__tests__/core/streams/data/runlength/empty.encoded +0 -1
- package/__tests__/core/structures/PDFCatalog.spec.ts +0 -108
- package/__tests__/core/structures/PDFContentStream.spec.ts +0 -117
- package/__tests__/core/structures/PDFCrossRefStream.spec.ts +0 -145
- package/__tests__/core/structures/PDFObjectStream.spec.ts +0 -138
- package/__tests__/core/structures/PDFPageLeaf.spec.ts +0 -355
- package/__tests__/core/structures/PDFPageTree.spec.ts +0 -592
- package/__tests__/core/writers/PDFStreamWriter.spec.ts +0 -71
- package/__tests__/core/writers/PDFWriter.spec.ts +0 -144
- package/__tests__/core/writers/data/stream-writer-1.pdf +0 -0
- package/__tests__/index.test.ts +0 -12
- package/__tests__/utils/base64.spec.ts +0 -61
- package/__tests__/utils/data/simple.pdf +0 -201
- package/__tests__/utils/data/simple.pdf.base64 +0 -1
- package/__tests__/utils/pdfDocEncoding.spec.ts +0 -82
- package/__tests__/utils/png.spec.ts +0 -53
- package/__tests__/utils/rng.spec.ts +0 -14
- package/__tests__/utils/strings.spec.ts +0 -98
- package/__tests__/utils/unicode.spec.ts +0 -337
- package/assets/fonts/source_hans_jp/SourceHanSerifJP-Regular.otf +0 -0
- package/assets/fonts/ubuntu/Ubuntu-B.ttf +0 -0
- package/assets/fonts/ubuntu/Ubuntu-R.ttf +0 -0
- package/assets/images/cat_riding_unicorn.jpg +0 -0
- package/assets/images/cmyk_colorspace.jpg +0 -0
- package/assets/images/greyscale_bird.png +0 -0
- package/assets/images/minions_banana_alpha.png +0 -0
- package/assets/images/minions_banana_no_alpha.png +0 -0
- package/assets/images/minions_laughing.jpg +0 -0
- package/assets/pdfs/bixby_guide.pdf +0 -0
- package/assets/pdfs/encrypted_new.pdf +0 -0
- package/assets/pdfs/encrypted_old.pdf +0 -0
- package/assets/pdfs/fancy_fields.pdf +0 -0
- package/assets/pdfs/giraffe.pdf +0 -0
- package/assets/pdfs/invalid_root_ref.pdf +0 -0
- package/assets/pdfs/just_metadata.pdf +0 -49
- package/assets/pdfs/missing_endobj_keyword.pdf +0 -70
- package/assets/pdfs/missing_xref_trailer_dict.pdf +0 -141
- package/assets/pdfs/normal.pdf +0 -0
- package/assets/pdfs/pdf20examples/PDF 2.0 with offset start.pdf +0 -179
- package/assets/pdfs/stuff_following_header.pdf +0 -0
- package/assets/pdfs/us_constitution.pdf +0 -0
- package/assets/pdfs/with_comments.pdf +0 -0
- package/assets/pdfs/with_invalid_objects.pdf +0 -53
- package/assets/pdfs/with_invalid_stream_EOL.pdf +0 -0
- package/assets/pdfs/with_null_parent_entry.pdf +0 -0
- package/assets/pdfs/with_signature.pdf +0 -0
- package/assets/pdfs/with_update_sections.pdf +0 -0
- package/assets/pdfs/with_viewer_prefs.pdf +0 -0
- package/assets/pdfs/with_xfa_fields.pdf +0 -0
- package/src/api/PDFDocument.ts +0 -1389
- package/src/api/PDFDocumentOptions.ts +0 -45
- package/src/api/PDFEmbeddedFile.ts +0 -87
- package/src/api/PDFEmbeddedPage.ts +0 -100
- package/src/api/PDFFont.ts +0 -149
- package/src/api/PDFImage.ts +0 -143
- package/src/api/PDFJavaScript.ts +0 -75
- package/src/api/PDFPage.ts +0 -1604
- package/src/api/PDFPageOptions.ts +0 -175
- package/src/api/StandardFonts.ts +0 -16
- package/src/api/colors.ts +0 -109
- package/src/api/errors.ts +0 -110
- package/src/api/form/PDFButton.ts +0 -242
- package/src/api/form/PDFCheckBox.ts +0 -247
- package/src/api/form/PDFDropdown.ts +0 -637
- package/src/api/form/PDFField.ts +0 -491
- package/src/api/form/PDFForm.ts +0 -842
- package/src/api/form/PDFOptionList.ts +0 -555
- package/src/api/form/PDFRadioGroup.ts +0 -455
- package/src/api/form/PDFSignature.ts +0 -44
- package/src/api/form/PDFTextField.ts +0 -811
- package/src/api/form/appearances.ts +0 -655
- package/src/api/image/alignment.ts +0 -5
- package/src/api/objects.ts +0 -10
- package/src/api/operations.ts +0 -873
- package/src/api/operators.ts +0 -335
- package/src/api/rotations.ts +0 -84
- package/src/api/sizes.ts +0 -52
- package/src/api/svg.ts +0 -888
- package/src/api/svgPath.ts +0 -460
- package/src/api/text/alignment.ts +0 -5
- package/src/api/text/layout.ts +0 -328
- package/src/core/PDFContext.ts +0 -274
- package/src/core/PDFObjectCopier.ts +0 -142
- package/src/core/acroform/PDFAcroButton.ts +0 -104
- package/src/core/acroform/PDFAcroCheckBox.ts +0 -48
- package/src/core/acroform/PDFAcroChoice.ts +0 -143
- package/src/core/acroform/PDFAcroComboBox.ts +0 -21
- package/src/core/acroform/PDFAcroField.ts +0 -168
- package/src/core/acroform/PDFAcroForm.ts +0 -96
- package/src/core/acroform/PDFAcroListBox.ts +0 -19
- package/src/core/acroform/PDFAcroNonTerminal.ts +0 -33
- package/src/core/acroform/PDFAcroPushButton.ts +0 -21
- package/src/core/acroform/PDFAcroRadioButton.ts +0 -57
- package/src/core/acroform/PDFAcroTerminal.ts +0 -70
- package/src/core/acroform/PDFAcroText.ts +0 -76
- package/src/core/acroform/flags.ts +0 -162
- package/src/core/acroform/utils.ts +0 -129
- package/src/core/annotation/AppearanceCharacteristics.ts +0 -133
- package/src/core/annotation/BorderStyle.ts +0 -31
- package/src/core/annotation/PDFAnnotation.ts +0 -148
- package/src/core/annotation/PDFWidgetAnnotation.ts +0 -111
- package/src/core/annotation/flags.ts +0 -90
- package/src/core/crypto.ts +0 -1844
- package/src/core/document/PDFCrossRefSection.ts +0 -161
- package/src/core/document/PDFHeader.ts +0 -48
- package/src/core/document/PDFTrailer.ts +0 -48
- package/src/core/document/PDFTrailerDict.ts +0 -39
- package/src/core/embedders/CMap.ts +0 -65
- package/src/core/embedders/CustomFontEmbedder.ts +0 -237
- package/src/core/embedders/CustomFontSubsetEmbedder.ts +0 -89
- package/src/core/embedders/FileEmbedder.ts +0 -77
- package/src/core/embedders/FontFlags.ts +0 -45
- package/src/core/embedders/JavaScriptEmbedder.ts +0 -34
- package/src/core/embedders/JpegEmbedder.ts +0 -118
- package/src/core/embedders/PDFPageEmbedder.ts +0 -139
- package/src/core/embedders/PngEmbedder.ts +0 -69
- package/src/core/embedders/StandardFontEmbedder.ts +0 -121
- package/src/core/errors.ts +0 -226
- package/src/core/interactive/ViewerPreferences.ts +0 -565
- package/src/core/objects/PDFArray.ts +0 -179
- package/src/core/objects/PDFBool.ts +0 -53
- package/src/core/objects/PDFDict.ts +0 -220
- package/src/core/objects/PDFHexString.ts +0 -94
- package/src/core/objects/PDFInvalidObject.ts +0 -34
- package/src/core/objects/PDFName.ts +0 -152
- package/src/core/objects/PDFNull.ts +0 -30
- package/src/core/objects/PDFNumber.ts +0 -44
- package/src/core/objects/PDFObject.ts +0 -22
- package/src/core/objects/PDFRawStream.ts +0 -41
- package/src/core/objects/PDFRef.ts +0 -51
- package/src/core/objects/PDFStream.ts +0 -87
- package/src/core/objects/PDFString.ts +0 -118
- package/src/core/operators/PDFOperator.ts +0 -72
- package/src/core/operators/PDFOperatorNames.ts +0 -92
- package/src/core/parser/BaseParser.ts +0 -119
- package/src/core/parser/ByteStream.ts +0 -76
- package/src/core/parser/PDFObjectParser.ts +0 -302
- package/src/core/parser/PDFObjectStreamParser.ts +0 -65
- package/src/core/parser/PDFParser.ts +0 -363
- package/src/core/parser/PDFXRefStreamParser.ts +0 -129
- package/src/core/streams/Ascii85Stream.ts +0 -97
- package/src/core/streams/AsciiHexStream.ts +0 -77
- package/src/core/streams/DecodeStream.ts +0 -188
- package/src/core/streams/DecryptStream.ts +0 -49
- package/src/core/streams/FlateStream.ts +0 -397
- package/src/core/streams/LZWStream.ts +0 -157
- package/src/core/streams/RunLengthStream.ts +0 -55
- package/src/core/streams/Stream.ts +0 -126
- package/src/core/streams/decode.ts +0 -70
- package/src/core/structures/PDFCatalog.ts +0 -81
- package/src/core/structures/PDFContentStream.ts +0 -58
- package/src/core/structures/PDFCrossRefStream.ts +0 -238
- package/src/core/structures/PDFFlateStream.ts +0 -40
- package/src/core/structures/PDFObjectStream.ts +0 -91
- package/src/core/structures/PDFPageLeaf.ts +0 -244
- package/src/core/structures/PDFPageTree.ts +0 -192
- package/src/core/syntax/CharCodes.ts +0 -62
- package/src/core/syntax/Delimiters.ts +0 -14
- package/src/core/syntax/Irregular.ts +0 -10
- package/src/core/syntax/Keywords.ts +0 -57
- package/src/core/syntax/Numeric.ts +0 -26
- package/src/core/syntax/Whitespace.ts +0 -10
- package/src/core/writers/PDFStreamWriter.ts +0 -114
- package/src/core/writers/PDFWriter.ts +0 -146
- package/src/types/fontkit.ts +0 -643
- package/src/utils/Cache.ts +0 -26
- package/src/utils/arrays.ts +0 -153
- package/src/utils/async.ts +0 -8
- package/src/utils/base64.ts +0 -98
- package/src/utils/elements/Arc.ts +0 -97
- package/src/utils/elements/Circle.ts +0 -47
- package/src/utils/elements/Ellipse.ts +0 -117
- package/src/utils/elements/GraphElement.ts +0 -14
- package/src/utils/elements/Line.ts +0 -83
- package/src/utils/elements/Plot.ts +0 -50
- package/src/utils/elements/Point.ts +0 -37
- package/src/utils/elements/Rectangle.ts +0 -65
- package/src/utils/elements/Segment.ts +0 -81
- package/src/utils/errors.ts +0 -3
- package/src/utils/intersections.ts +0 -237
- package/src/utils/maths.ts +0 -96
- package/src/utils/numbers.ts +0 -55
- package/src/utils/objects.ts +0 -13
- package/src/utils/pdfDocEncoding.ts +0 -69
- package/src/utils/png.ts +0 -100
- package/src/utils/rng.ts +0 -21
- package/src/utils/strings.ts +0 -191
- package/src/utils/validators.ts +0 -192
- package/tsconfig.build.json +0 -14
- package/tsconfig.json +0 -15
- package/vite.config.mts +0 -39
- /package/{src/api/form/index.ts → dist/api/form/index.d.ts} +0 -0
- /package/{src/api/image/index.ts → dist/api/image/index.d.ts} +0 -0
- /package/{src/api/index.ts → dist/api/index.d.ts} +0 -0
- /package/{src/api/text/index.ts → dist/api/text/index.d.ts} +0 -0
- /package/{src/core/acroform/index.ts → dist/core/acroform/index.d.ts} +0 -0
- /package/{src/core/annotation/index.ts → dist/core/annotation/index.d.ts} +0 -0
- /package/{src/index.ts → dist/index.d.ts} +0 -0
- /package/{src/utils/elements/index.ts → dist/utils/elements/index.d.ts} +0 -0
- /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { PrivateConstructorError } from '../errors';
|
|
2
|
-
import PDFObject from './PDFObject';
|
|
3
|
-
import CharCodes from '../syntax/CharCodes';
|
|
4
|
-
import { IsIrregular } from '../syntax/Irregular';
|
|
5
|
-
import { charFromHexCode, copyStringIntoBuffer, toCharCode, toHexString } from '../../utils';
|
|
6
|
-
|
|
7
|
-
const decodeName = (name: string) =>
|
|
8
|
-
name.replace(/#([\dABCDEF]{2})/g, (_, hex) => charFromHexCode(hex));
|
|
9
|
-
|
|
10
|
-
const isRegularChar = (charCode: number) =>
|
|
11
|
-
charCode >= CharCodes.ExclamationPoint && charCode <= CharCodes.Tilde && !IsIrregular[charCode];
|
|
12
|
-
|
|
13
|
-
const ENFORCER = {};
|
|
14
|
-
const pool = new Map<string, PDFName>();
|
|
15
|
-
|
|
16
|
-
class PDFName extends PDFObject {
|
|
17
|
-
static of = (name: string): PDFName => {
|
|
18
|
-
const decodedValue = decodeName(name);
|
|
19
|
-
|
|
20
|
-
let instance = pool.get(decodedValue);
|
|
21
|
-
if (!instance) {
|
|
22
|
-
instance = new PDFName(ENFORCER, decodedValue);
|
|
23
|
-
pool.set(decodedValue, instance);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return instance;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
/* tslint:disable member-ordering */
|
|
30
|
-
static readonly Length = PDFName.of('Length');
|
|
31
|
-
static readonly FlateDecode = PDFName.of('FlateDecode');
|
|
32
|
-
static readonly Resources = PDFName.of('Resources');
|
|
33
|
-
static readonly Font = PDFName.of('Font');
|
|
34
|
-
static readonly XObject = PDFName.of('XObject');
|
|
35
|
-
static readonly ExtGState = PDFName.of('ExtGState');
|
|
36
|
-
static readonly Contents = PDFName.of('Contents');
|
|
37
|
-
static readonly Type = PDFName.of('Type');
|
|
38
|
-
static readonly Parent = PDFName.of('Parent');
|
|
39
|
-
static readonly MediaBox = PDFName.of('MediaBox');
|
|
40
|
-
static readonly Page = PDFName.of('Page');
|
|
41
|
-
static readonly Annots = PDFName.of('Annots');
|
|
42
|
-
static readonly TrimBox = PDFName.of('TrimBox');
|
|
43
|
-
static readonly ArtBox = PDFName.of('ArtBox');
|
|
44
|
-
static readonly BleedBox = PDFName.of('BleedBox');
|
|
45
|
-
static readonly CropBox = PDFName.of('CropBox');
|
|
46
|
-
static readonly Rotate = PDFName.of('Rotate');
|
|
47
|
-
static readonly Title = PDFName.of('Title');
|
|
48
|
-
static readonly Author = PDFName.of('Author');
|
|
49
|
-
static readonly Subject = PDFName.of('Subject');
|
|
50
|
-
static readonly Creator = PDFName.of('Creator');
|
|
51
|
-
static readonly Keywords = PDFName.of('Keywords');
|
|
52
|
-
static readonly Producer = PDFName.of('Producer');
|
|
53
|
-
static readonly CreationDate = PDFName.of('CreationDate');
|
|
54
|
-
static readonly ModDate = PDFName.of('ModDate');
|
|
55
|
-
/* tslint:enable member-ordering */
|
|
56
|
-
|
|
57
|
-
private readonly encodedName: string;
|
|
58
|
-
|
|
59
|
-
private constructor(enforcer: any, name: string) {
|
|
60
|
-
if (enforcer !== ENFORCER) throw new PrivateConstructorError('PDFName');
|
|
61
|
-
super();
|
|
62
|
-
|
|
63
|
-
let encodedName = '/';
|
|
64
|
-
for (let idx = 0, len = name.length; idx < len; idx++) {
|
|
65
|
-
const character = name[idx];
|
|
66
|
-
const code = toCharCode(character);
|
|
67
|
-
encodedName += isRegularChar(code) ? character : `#${toHexString(code)}`;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
this.encodedName = encodedName;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
asBytes(): Uint8Array {
|
|
74
|
-
const bytes: number[] = [];
|
|
75
|
-
|
|
76
|
-
let hex = '';
|
|
77
|
-
let escaped = false;
|
|
78
|
-
|
|
79
|
-
const pushByte = (byte?: number) => {
|
|
80
|
-
if (byte !== undefined) bytes.push(byte);
|
|
81
|
-
escaped = false;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
for (let idx = 1, len = this.encodedName.length; idx < len; idx++) {
|
|
85
|
-
const char = this.encodedName[idx];
|
|
86
|
-
const byte = toCharCode(char);
|
|
87
|
-
const nextChar = this.encodedName[idx + 1];
|
|
88
|
-
if (!escaped) {
|
|
89
|
-
if (byte === CharCodes.Hash) escaped = true;
|
|
90
|
-
else pushByte(byte);
|
|
91
|
-
} else {
|
|
92
|
-
if (
|
|
93
|
-
(byte >= CharCodes.Zero && byte <= CharCodes.Nine) ||
|
|
94
|
-
(byte >= CharCodes.a && byte <= CharCodes.f) ||
|
|
95
|
-
(byte >= CharCodes.A && byte <= CharCodes.F)
|
|
96
|
-
) {
|
|
97
|
-
hex += char;
|
|
98
|
-
if (
|
|
99
|
-
hex.length === 2 ||
|
|
100
|
-
!(
|
|
101
|
-
(nextChar >= '0' && nextChar <= '9') ||
|
|
102
|
-
(nextChar >= 'a' && nextChar <= 'f') ||
|
|
103
|
-
(nextChar >= 'A' && nextChar <= 'F')
|
|
104
|
-
)
|
|
105
|
-
) {
|
|
106
|
-
pushByte(parseInt(hex, 16));
|
|
107
|
-
hex = '';
|
|
108
|
-
}
|
|
109
|
-
} else {
|
|
110
|
-
pushByte(byte);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return new Uint8Array(bytes);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// TODO: This should probably use `utf8Decode()`
|
|
119
|
-
// TODO: Polyfill Array.from?
|
|
120
|
-
decodeText(): string {
|
|
121
|
-
const bytes = this.asBytes();
|
|
122
|
-
return String.fromCharCode(...Array.from(bytes));
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
asString(): string {
|
|
126
|
-
return this.encodedName;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/** @deprecated in favor of [[PDFName.asString]] */
|
|
130
|
-
value(): string {
|
|
131
|
-
return this.encodedName;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
clone(): PDFName {
|
|
135
|
-
return this;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
toString(): string {
|
|
139
|
-
return this.encodedName;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
sizeInBytes(): number {
|
|
143
|
-
return this.encodedName.length;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
copyBytesInto(buffer: Uint8Array, offset: number): number {
|
|
147
|
-
offset += copyStringIntoBuffer(this.encodedName, buffer, offset);
|
|
148
|
-
return this.encodedName.length;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export default PDFName;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import PDFObject from './PDFObject';
|
|
2
|
-
import CharCodes from '../syntax/CharCodes';
|
|
3
|
-
|
|
4
|
-
class PDFNull extends PDFObject {
|
|
5
|
-
asNull(): null {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
clone(): PDFNull {
|
|
10
|
-
return this;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
toString(): string {
|
|
14
|
-
return 'null';
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
sizeInBytes(): number {
|
|
18
|
-
return 4;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
copyBytesInto(buffer: Uint8Array, offset: number): number {
|
|
22
|
-
buffer[offset++] = CharCodes.n;
|
|
23
|
-
buffer[offset++] = CharCodes.u;
|
|
24
|
-
buffer[offset++] = CharCodes.l;
|
|
25
|
-
buffer[offset++] = CharCodes.l;
|
|
26
|
-
return 4;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export default new PDFNull();
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { copyStringIntoBuffer, numberToString } from '../../utils/index';
|
|
2
|
-
|
|
3
|
-
import PDFObject from './PDFObject';
|
|
4
|
-
|
|
5
|
-
class PDFNumber extends PDFObject {
|
|
6
|
-
static of = (value: number) => new PDFNumber(value);
|
|
7
|
-
|
|
8
|
-
private readonly numberValue: number;
|
|
9
|
-
private readonly stringValue: string;
|
|
10
|
-
|
|
11
|
-
private constructor(value: number) {
|
|
12
|
-
super();
|
|
13
|
-
this.numberValue = value;
|
|
14
|
-
this.stringValue = numberToString(value);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
asNumber(): number {
|
|
18
|
-
return this.numberValue;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/** @deprecated in favor of [[PDFNumber.asNumber]] */
|
|
22
|
-
value(): number {
|
|
23
|
-
return this.numberValue;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
clone(): PDFNumber {
|
|
27
|
-
return PDFNumber.of(this.numberValue);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
toString(): string {
|
|
31
|
-
return this.stringValue;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
sizeInBytes(): number {
|
|
35
|
-
return this.stringValue.length;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
copyBytesInto(buffer: Uint8Array, offset: number): number {
|
|
39
|
-
offset += copyStringIntoBuffer(this.stringValue, buffer, offset);
|
|
40
|
-
return this.stringValue.length;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export default PDFNumber;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { MethodNotImplementedError } from '../errors';
|
|
2
|
-
import PDFContext from '../PDFContext';
|
|
3
|
-
|
|
4
|
-
class PDFObject {
|
|
5
|
-
clone(_context?: PDFContext): PDFObject {
|
|
6
|
-
throw new MethodNotImplementedError(this.constructor.name, 'clone');
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
toString(): string {
|
|
10
|
-
throw new MethodNotImplementedError(this.constructor.name, 'toString');
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
sizeInBytes(): number {
|
|
14
|
-
throw new MethodNotImplementedError(this.constructor.name, 'sizeInBytes');
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
copyBytesInto(_buffer: Uint8Array, _offset: number): number {
|
|
18
|
-
throw new MethodNotImplementedError(this.constructor.name, 'copyBytesInto');
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export default PDFObject;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import PDFDict from './PDFDict';
|
|
2
|
-
import PDFStream from './PDFStream';
|
|
3
|
-
import PDFContext from '../PDFContext';
|
|
4
|
-
import { arrayAsString } from '../../utils';
|
|
5
|
-
import { CipherTransform } from '../crypto';
|
|
6
|
-
|
|
7
|
-
class PDFRawStream extends PDFStream {
|
|
8
|
-
static of = (dict: PDFDict, contents: Uint8Array, transform?: CipherTransform) =>
|
|
9
|
-
new PDFRawStream(dict, contents, transform);
|
|
10
|
-
|
|
11
|
-
readonly contents: Uint8Array;
|
|
12
|
-
readonly transform?: CipherTransform;
|
|
13
|
-
|
|
14
|
-
private constructor(dict: PDFDict, contents: Uint8Array, transform?: CipherTransform) {
|
|
15
|
-
super(dict);
|
|
16
|
-
this.contents = contents;
|
|
17
|
-
this.transform = transform;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
asUint8Array(): Uint8Array {
|
|
21
|
-
return this.contents.slice();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
clone(context?: PDFContext): PDFRawStream {
|
|
25
|
-
return PDFRawStream.of(this.dict.clone(context), this.contents.slice());
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
getContentsString(): string {
|
|
29
|
-
return arrayAsString(this.contents);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
getContents(): Uint8Array {
|
|
33
|
-
return this.contents;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
getContentsSize(): number {
|
|
37
|
-
return this.contents.length;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export default PDFRawStream;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { PrivateConstructorError } from '../errors';
|
|
2
|
-
import PDFObject from '../objects/PDFObject';
|
|
3
|
-
import { copyStringIntoBuffer } from '../../utils';
|
|
4
|
-
|
|
5
|
-
const ENFORCER = {};
|
|
6
|
-
const pool = new Map<string, PDFRef>();
|
|
7
|
-
|
|
8
|
-
class PDFRef extends PDFObject {
|
|
9
|
-
static of = (objectNumber: number, generationNumber = 0) => {
|
|
10
|
-
const tag = `${objectNumber} ${generationNumber} R`;
|
|
11
|
-
|
|
12
|
-
let instance = pool.get(tag);
|
|
13
|
-
if (!instance) {
|
|
14
|
-
instance = new PDFRef(ENFORCER, objectNumber, generationNumber);
|
|
15
|
-
pool.set(tag, instance);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return instance;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
readonly objectNumber: number;
|
|
22
|
-
readonly generationNumber: number;
|
|
23
|
-
readonly tag: string;
|
|
24
|
-
|
|
25
|
-
private constructor(enforcer: any, objectNumber: number, generationNumber: number) {
|
|
26
|
-
if (enforcer !== ENFORCER) throw new PrivateConstructorError('PDFRef');
|
|
27
|
-
super();
|
|
28
|
-
this.objectNumber = objectNumber;
|
|
29
|
-
this.generationNumber = generationNumber;
|
|
30
|
-
this.tag = `${objectNumber} ${generationNumber} R`;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
clone(): PDFRef {
|
|
34
|
-
return this;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
toString(): string {
|
|
38
|
-
return this.tag;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
sizeInBytes(): number {
|
|
42
|
-
return this.tag.length;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
copyBytesInto(buffer: Uint8Array, offset: number): number {
|
|
46
|
-
offset += copyStringIntoBuffer(this.tag, buffer, offset);
|
|
47
|
-
return this.tag.length;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export default PDFRef;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { MethodNotImplementedError } from '../errors';
|
|
2
|
-
import PDFDict from './PDFDict';
|
|
3
|
-
import PDFName from './PDFName';
|
|
4
|
-
import PDFNumber from './PDFNumber';
|
|
5
|
-
import PDFObject from './PDFObject';
|
|
6
|
-
import PDFContext from '../PDFContext';
|
|
7
|
-
import CharCodes from '../syntax/CharCodes';
|
|
8
|
-
|
|
9
|
-
class PDFStream extends PDFObject {
|
|
10
|
-
readonly dict: PDFDict;
|
|
11
|
-
|
|
12
|
-
constructor(dict: PDFDict) {
|
|
13
|
-
super();
|
|
14
|
-
this.dict = dict;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
clone(_context?: PDFContext): PDFStream {
|
|
18
|
-
throw new MethodNotImplementedError(this.constructor.name, 'clone');
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
getContentsString(): string {
|
|
22
|
-
throw new MethodNotImplementedError(this.constructor.name, 'getContentsString');
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
getContents(): Uint8Array {
|
|
26
|
-
throw new MethodNotImplementedError(this.constructor.name, 'getContents');
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
getContentsSize(): number {
|
|
30
|
-
throw new MethodNotImplementedError(this.constructor.name, 'getContentsSize');
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
updateDict(): void {
|
|
34
|
-
const contentsSize = this.getContentsSize();
|
|
35
|
-
this.dict.set(PDFName.Length, PDFNumber.of(contentsSize));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
sizeInBytes(): number {
|
|
39
|
-
this.updateDict();
|
|
40
|
-
return this.dict.sizeInBytes() + this.getContentsSize() + 18;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
toString(): string {
|
|
44
|
-
this.updateDict();
|
|
45
|
-
let streamString = this.dict.toString();
|
|
46
|
-
streamString += '\nstream\n';
|
|
47
|
-
streamString += this.getContentsString();
|
|
48
|
-
streamString += '\nendstream';
|
|
49
|
-
return streamString;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
copyBytesInto(buffer: Uint8Array, offset: number): number {
|
|
53
|
-
this.updateDict();
|
|
54
|
-
const initialOffset = offset;
|
|
55
|
-
|
|
56
|
-
offset += this.dict.copyBytesInto(buffer, offset);
|
|
57
|
-
buffer[offset++] = CharCodes.Newline;
|
|
58
|
-
|
|
59
|
-
buffer[offset++] = CharCodes.s;
|
|
60
|
-
buffer[offset++] = CharCodes.t;
|
|
61
|
-
buffer[offset++] = CharCodes.r;
|
|
62
|
-
buffer[offset++] = CharCodes.e;
|
|
63
|
-
buffer[offset++] = CharCodes.a;
|
|
64
|
-
buffer[offset++] = CharCodes.m;
|
|
65
|
-
buffer[offset++] = CharCodes.Newline;
|
|
66
|
-
|
|
67
|
-
const contents = this.getContents();
|
|
68
|
-
for (let idx = 0, len = contents.length; idx < len; idx++) {
|
|
69
|
-
buffer[offset++] = contents[idx];
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
buffer[offset++] = CharCodes.Newline;
|
|
73
|
-
buffer[offset++] = CharCodes.e;
|
|
74
|
-
buffer[offset++] = CharCodes.n;
|
|
75
|
-
buffer[offset++] = CharCodes.d;
|
|
76
|
-
buffer[offset++] = CharCodes.s;
|
|
77
|
-
buffer[offset++] = CharCodes.t;
|
|
78
|
-
buffer[offset++] = CharCodes.r;
|
|
79
|
-
buffer[offset++] = CharCodes.e;
|
|
80
|
-
buffer[offset++] = CharCodes.a;
|
|
81
|
-
buffer[offset++] = CharCodes.m;
|
|
82
|
-
|
|
83
|
-
return offset - initialOffset;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export default PDFStream;
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import PDFObject from './PDFObject';
|
|
2
|
-
import CharCodes from '../syntax/CharCodes';
|
|
3
|
-
import {
|
|
4
|
-
copyStringIntoBuffer,
|
|
5
|
-
padStart,
|
|
6
|
-
utf16Decode,
|
|
7
|
-
pdfDocEncodingDecode,
|
|
8
|
-
toCharCode,
|
|
9
|
-
parseDate,
|
|
10
|
-
hasUtf16BOM,
|
|
11
|
-
} from '../../utils';
|
|
12
|
-
import { InvalidPDFDateStringError } from '../errors';
|
|
13
|
-
|
|
14
|
-
class PDFString extends PDFObject {
|
|
15
|
-
// The PDF spec allows newlines and parens to appear directly within a literal
|
|
16
|
-
// string. These character _may_ be escaped. But they do not _have_ to be. So
|
|
17
|
-
// for simplicity, we will not bother escaping them.
|
|
18
|
-
static of = (value: string) => new PDFString(value);
|
|
19
|
-
|
|
20
|
-
static fromDate = (date: Date) => {
|
|
21
|
-
const year = padStart(String(date.getUTCFullYear()), 4, '0');
|
|
22
|
-
const month = padStart(String(date.getUTCMonth() + 1), 2, '0');
|
|
23
|
-
const day = padStart(String(date.getUTCDate()), 2, '0');
|
|
24
|
-
const hours = padStart(String(date.getUTCHours()), 2, '0');
|
|
25
|
-
const mins = padStart(String(date.getUTCMinutes()), 2, '0');
|
|
26
|
-
const secs = padStart(String(date.getUTCSeconds()), 2, '0');
|
|
27
|
-
return new PDFString(`D:${year}${month}${day}${hours}${mins}${secs}Z`);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
private readonly value: string;
|
|
31
|
-
|
|
32
|
-
private constructor(value: string) {
|
|
33
|
-
super();
|
|
34
|
-
this.value = value;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
asBytes(): Uint8Array {
|
|
38
|
-
const bytes: number[] = [];
|
|
39
|
-
|
|
40
|
-
let octal = '';
|
|
41
|
-
let escaped = false;
|
|
42
|
-
|
|
43
|
-
const pushByte = (byte?: number) => {
|
|
44
|
-
if (byte !== undefined) bytes.push(byte);
|
|
45
|
-
escaped = false;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
for (let idx = 0, len = this.value.length; idx < len; idx++) {
|
|
49
|
-
const char = this.value[idx];
|
|
50
|
-
const byte = toCharCode(char);
|
|
51
|
-
const nextChar = this.value[idx + 1];
|
|
52
|
-
if (!escaped) {
|
|
53
|
-
if (byte === CharCodes.BackSlash) escaped = true;
|
|
54
|
-
else pushByte(byte);
|
|
55
|
-
} else {
|
|
56
|
-
if (byte === CharCodes.Newline) pushByte();
|
|
57
|
-
else if (byte === CharCodes.CarriageReturn) pushByte();
|
|
58
|
-
else if (byte === CharCodes.n) pushByte(CharCodes.Newline);
|
|
59
|
-
else if (byte === CharCodes.r) pushByte(CharCodes.CarriageReturn);
|
|
60
|
-
else if (byte === CharCodes.t) pushByte(CharCodes.Tab);
|
|
61
|
-
else if (byte === CharCodes.b) pushByte(CharCodes.Backspace);
|
|
62
|
-
else if (byte === CharCodes.f) pushByte(CharCodes.FormFeed);
|
|
63
|
-
else if (byte === CharCodes.LeftParen) pushByte(CharCodes.LeftParen);
|
|
64
|
-
else if (byte === CharCodes.RightParen) pushByte(CharCodes.RightParen);
|
|
65
|
-
else if (byte === CharCodes.Backspace) pushByte(CharCodes.BackSlash);
|
|
66
|
-
else if (byte >= CharCodes.Zero && byte <= CharCodes.Seven) {
|
|
67
|
-
octal += char;
|
|
68
|
-
if (octal.length === 3 || !(nextChar >= '0' && nextChar <= '7')) {
|
|
69
|
-
pushByte(parseInt(octal, 8));
|
|
70
|
-
octal = '';
|
|
71
|
-
}
|
|
72
|
-
} else {
|
|
73
|
-
pushByte(byte);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return new Uint8Array(bytes);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
decodeText(): string {
|
|
82
|
-
const bytes = this.asBytes();
|
|
83
|
-
if (hasUtf16BOM(bytes)) return utf16Decode(bytes);
|
|
84
|
-
return pdfDocEncodingDecode(bytes);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
decodeDate(): Date {
|
|
88
|
-
const text = this.decodeText();
|
|
89
|
-
const date = parseDate(text);
|
|
90
|
-
if (!date) throw new InvalidPDFDateStringError(text);
|
|
91
|
-
return date;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
asString(): string {
|
|
95
|
-
return this.value;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
clone(): PDFString {
|
|
99
|
-
return PDFString.of(this.value);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
toString(): string {
|
|
103
|
-
return `(${this.value})`;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
sizeInBytes(): number {
|
|
107
|
-
return this.value.length + 2;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
copyBytesInto(buffer: Uint8Array, offset: number): number {
|
|
111
|
-
buffer[offset++] = CharCodes.LeftParen;
|
|
112
|
-
offset += copyStringIntoBuffer(this.value, buffer, offset);
|
|
113
|
-
buffer[offset++] = CharCodes.RightParen;
|
|
114
|
-
return this.value.length + 2;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export default PDFString;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import PDFArray from '../objects/PDFArray';
|
|
2
|
-
import PDFHexString from '../objects/PDFHexString';
|
|
3
|
-
import PDFName from '../objects/PDFName';
|
|
4
|
-
import PDFNumber from '../objects/PDFNumber';
|
|
5
|
-
import PDFObject from '../objects/PDFObject';
|
|
6
|
-
import PDFString from '../objects/PDFString';
|
|
7
|
-
import PDFOperatorNames from './PDFOperatorNames';
|
|
8
|
-
import PDFContext from '../PDFContext';
|
|
9
|
-
import CharCodes from '../syntax/CharCodes';
|
|
10
|
-
import { copyStringIntoBuffer } from '../../utils';
|
|
11
|
-
|
|
12
|
-
export type PDFOperatorArg = string | PDFName | PDFArray | PDFNumber | PDFString | PDFHexString;
|
|
13
|
-
|
|
14
|
-
class PDFOperator {
|
|
15
|
-
static of = (name: PDFOperatorNames, args?: PDFOperatorArg[]) => new PDFOperator(name, args);
|
|
16
|
-
|
|
17
|
-
private readonly name: PDFOperatorNames;
|
|
18
|
-
private readonly args: PDFOperatorArg[];
|
|
19
|
-
|
|
20
|
-
private constructor(name: PDFOperatorNames, args?: PDFOperatorArg[]) {
|
|
21
|
-
this.name = name;
|
|
22
|
-
this.args = args || [];
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
clone(context?: PDFContext): PDFOperator {
|
|
26
|
-
const args = Array(this.args.length);
|
|
27
|
-
for (let idx = 0, len = args.length; idx < len; idx++) {
|
|
28
|
-
const arg = this.args[idx];
|
|
29
|
-
args[idx] = arg instanceof PDFObject ? arg.clone(context) : arg;
|
|
30
|
-
}
|
|
31
|
-
return PDFOperator.of(this.name, args);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
toString(): string {
|
|
35
|
-
let value = '';
|
|
36
|
-
for (let idx = 0, len = this.args.length; idx < len; idx++) {
|
|
37
|
-
value += String(this.args[idx]) + ' ';
|
|
38
|
-
}
|
|
39
|
-
value += this.name;
|
|
40
|
-
return value;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
sizeInBytes(): number {
|
|
44
|
-
let size = 0;
|
|
45
|
-
for (let idx = 0, len = this.args.length; idx < len; idx++) {
|
|
46
|
-
const arg = this.args[idx];
|
|
47
|
-
size += (arg instanceof PDFObject ? arg.sizeInBytes() : arg.length) + 1;
|
|
48
|
-
}
|
|
49
|
-
size += this.name.length;
|
|
50
|
-
return size;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
copyBytesInto(buffer: Uint8Array, offset: number): number {
|
|
54
|
-
const initialOffset = offset;
|
|
55
|
-
|
|
56
|
-
for (let idx = 0, len = this.args.length; idx < len; idx++) {
|
|
57
|
-
const arg = this.args[idx];
|
|
58
|
-
if (arg instanceof PDFObject) {
|
|
59
|
-
offset += arg.copyBytesInto(buffer, offset);
|
|
60
|
-
} else {
|
|
61
|
-
offset += copyStringIntoBuffer(arg, buffer, offset);
|
|
62
|
-
}
|
|
63
|
-
buffer[offset++] = CharCodes.Space;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
offset += copyStringIntoBuffer(this.name, buffer, offset);
|
|
67
|
-
|
|
68
|
-
return offset - initialOffset;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export default PDFOperator;
|