@pdfme/pdf-lib 5.4.0-dev.63 → 5.4.0-dev.66
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/cjs/src/api/PDFDocument.js +3 -11
- package/dist/cjs/src/api/PDFDocument.js.map +1 -1
- package/dist/cjs/src/api/PDFEmbeddedFile.js.map +1 -1
- package/dist/cjs/src/api/PDFEmbeddedPage.js.map +1 -1
- package/dist/cjs/src/api/PDFFont.js.map +1 -1
- package/dist/cjs/src/api/PDFJavaScript.js.map +1 -1
- package/dist/cjs/src/api/PDFPage.js +16 -42
- package/dist/cjs/src/api/PDFPage.js.map +1 -1
- package/dist/cjs/src/api/colors.js.map +1 -1
- package/dist/cjs/src/api/errors.js.map +1 -1
- package/dist/cjs/src/api/form/PDFButton.js +1 -3
- package/dist/cjs/src/api/form/PDFButton.js.map +1 -1
- package/dist/cjs/src/api/form/PDFCheckBox.js +1 -3
- package/dist/cjs/src/api/form/PDFCheckBox.js.map +1 -1
- package/dist/cjs/src/api/form/PDFDropdown.js +1 -3
- package/dist/cjs/src/api/form/PDFDropdown.js.map +1 -1
- package/dist/cjs/src/api/form/PDFField.js +4 -10
- package/dist/cjs/src/api/form/PDFField.js.map +1 -1
- package/dist/cjs/src/api/form/PDFForm.js +1 -3
- package/dist/cjs/src/api/form/PDFForm.js.map +1 -1
- package/dist/cjs/src/api/form/PDFOptionList.js.map +1 -1
- package/dist/cjs/src/api/form/PDFRadioGroup.js +1 -3
- package/dist/cjs/src/api/form/PDFRadioGroup.js.map +1 -1
- package/dist/cjs/src/api/form/PDFSignature.js +1 -3
- package/dist/cjs/src/api/form/PDFSignature.js.map +1 -1
- package/dist/cjs/src/api/form/PDFTextField.js.map +1 -1
- package/dist/cjs/src/api/form/appearances.js.map +1 -1
- package/dist/cjs/src/api/operations.js.map +1 -1
- package/dist/cjs/src/api/operators.js +1 -5
- package/dist/cjs/src/api/operators.js.map +1 -1
- package/dist/cjs/src/api/rotations.js.map +1 -1
- package/dist/cjs/src/api/svg.js +25 -23
- package/dist/cjs/src/api/svg.js.map +1 -1
- package/dist/cjs/src/api/svgPath.js +1 -2
- package/dist/cjs/src/api/svgPath.js.map +1 -1
- package/dist/cjs/src/api/text/layout.js.map +1 -1
- package/dist/cjs/src/core/PDFContext.js.map +1 -1
- package/dist/cjs/src/core/PDFObjectCopier.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroButton.js +1 -2
- package/dist/cjs/src/core/acroform/PDFAcroButton.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroChoice.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroField.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroForm.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroListBox.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroSignature.js.map +1 -1
- package/dist/cjs/src/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/dist/cjs/src/core/acroform/utils.js.map +1 -1
- package/dist/cjs/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/dist/cjs/src/core/crypto.js +122 -179
- package/dist/cjs/src/core/crypto.js.map +1 -1
- package/dist/cjs/src/core/document/PDFCrossRefSection.js.map +1 -1
- package/dist/cjs/src/core/document/PDFHeader.js.map +1 -1
- package/dist/cjs/src/core/document/PDFTrailer.js.map +1 -1
- package/dist/cjs/src/core/embedders/CMap.js.map +1 -1
- package/dist/cjs/src/core/embedders/CustomFontEmbedder.js +1 -2
- package/dist/cjs/src/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/FileEmbedder.js +3 -7
- package/dist/cjs/src/core/embedders/FileEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/JpegEmbedder.js +1 -3
- package/dist/cjs/src/core/embedders/JpegEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/PDFPageEmbedder.js +11 -7
- package/dist/cjs/src/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/dist/cjs/src/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/dist/cjs/src/core/errors.js +1 -3
- package/dist/cjs/src/core/errors.js.map +1 -1
- package/dist/cjs/src/core/index.js.map +1 -1
- package/dist/cjs/src/core/interactive/ViewerPreferences.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFArray.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFDict.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFName.js +1 -3
- package/dist/cjs/src/core/objects/PDFName.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFRawStream.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFRef.js.map +1 -1
- package/dist/cjs/src/core/objects/PDFStream.js.map +1 -1
- package/dist/cjs/src/core/operators/PDFOperator.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFObjectParser.js +1 -2
- package/dist/cjs/src/core/parser/PDFObjectParser.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFParser.js +1 -2
- package/dist/cjs/src/core/parser/PDFParser.js.map +1 -1
- package/dist/cjs/src/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/dist/cjs/src/core/streams/Ascii85Stream.js.map +1 -1
- package/dist/cjs/src/core/streams/DecryptStream.js.map +1 -1
- package/dist/cjs/src/core/streams/FlateStream.js.map +1 -1
- package/dist/cjs/src/core/streams/LZWStream.js.map +1 -1
- package/dist/cjs/src/core/streams/Stream.js.map +1 -1
- package/dist/cjs/src/core/streams/decode.js +1 -1
- package/dist/cjs/src/core/streams/decode.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFCatalog.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFCrossRefStream.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFFlateStream.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFObjectStream.js +1 -4
- package/dist/cjs/src/core/structures/PDFObjectStream.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFPageLeaf.js +1 -6
- package/dist/cjs/src/core/structures/PDFPageLeaf.js.map +1 -1
- package/dist/cjs/src/core/structures/PDFPageTree.js +1 -1
- package/dist/cjs/src/core/structures/PDFPageTree.js.map +1 -1
- package/dist/cjs/src/core/syntax/Keywords.js +4 -30
- package/dist/cjs/src/core/syntax/Keywords.js.map +1 -1
- package/dist/cjs/src/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/cjs/src/core/writers/PDFWriter.js.map +1 -1
- package/dist/cjs/src/types/matrix.js.map +1 -1
- package/dist/cjs/src/utils/arrays.js +2 -5
- package/dist/cjs/src/utils/arrays.js.map +1 -1
- package/dist/cjs/src/utils/base64.js.map +1 -1
- package/dist/cjs/src/utils/elements/Arc.js +3 -6
- package/dist/cjs/src/utils/elements/Arc.js.map +1 -1
- package/dist/cjs/src/utils/elements/Circle.js.map +1 -1
- package/dist/cjs/src/utils/elements/Ellipse.js +1 -1
- package/dist/cjs/src/utils/elements/Ellipse.js.map +1 -1
- package/dist/cjs/src/utils/elements/Line.js +1 -3
- package/dist/cjs/src/utils/elements/Line.js.map +1 -1
- package/dist/cjs/src/utils/elements/Segment.js +1 -2
- package/dist/cjs/src/utils/elements/Segment.js.map +1 -1
- package/dist/cjs/src/utils/intersections.js.map +1 -1
- package/dist/cjs/src/utils/maths.js.map +1 -1
- package/dist/cjs/src/utils/strings.js.map +1 -1
- package/dist/cjs/src/utils/unicode.js.map +1 -1
- package/dist/cjs/src/utils/validators.js.map +1 -1
- package/dist/esm/src/api/PDFDocument.js +3 -11
- package/dist/esm/src/api/PDFDocument.js.map +1 -1
- package/dist/esm/src/api/PDFEmbeddedFile.js.map +1 -1
- package/dist/esm/src/api/PDFEmbeddedPage.js.map +1 -1
- package/dist/esm/src/api/PDFFont.js +1 -1
- package/dist/esm/src/api/PDFFont.js.map +1 -1
- package/dist/esm/src/api/PDFJavaScript.js.map +1 -1
- package/dist/esm/src/api/PDFPage.js +16 -42
- package/dist/esm/src/api/PDFPage.js.map +1 -1
- package/dist/esm/src/api/colors.js.map +1 -1
- package/dist/esm/src/api/errors.js.map +1 -1
- package/dist/esm/src/api/form/PDFButton.js +3 -5
- package/dist/esm/src/api/form/PDFButton.js.map +1 -1
- package/dist/esm/src/api/form/PDFCheckBox.js +3 -5
- package/dist/esm/src/api/form/PDFCheckBox.js.map +1 -1
- package/dist/esm/src/api/form/PDFDropdown.js +2 -4
- package/dist/esm/src/api/form/PDFDropdown.js.map +1 -1
- package/dist/esm/src/api/form/PDFField.js +4 -10
- package/dist/esm/src/api/form/PDFField.js.map +1 -1
- package/dist/esm/src/api/form/PDFForm.js +2 -4
- package/dist/esm/src/api/form/PDFForm.js.map +1 -1
- package/dist/esm/src/api/form/PDFOptionList.js +2 -2
- package/dist/esm/src/api/form/PDFOptionList.js.map +1 -1
- package/dist/esm/src/api/form/PDFRadioGroup.js +2 -4
- package/dist/esm/src/api/form/PDFRadioGroup.js.map +1 -1
- package/dist/esm/src/api/form/PDFSignature.js +1 -3
- package/dist/esm/src/api/form/PDFSignature.js.map +1 -1
- package/dist/esm/src/api/form/PDFTextField.js +2 -2
- package/dist/esm/src/api/form/PDFTextField.js.map +1 -1
- package/dist/esm/src/api/form/appearances.js +1 -1
- package/dist/esm/src/api/form/appearances.js.map +1 -1
- package/dist/esm/src/api/operations.js.map +1 -1
- package/dist/esm/src/api/operators.js +2 -6
- package/dist/esm/src/api/operators.js.map +1 -1
- package/dist/esm/src/api/rotations.js.map +1 -1
- package/dist/esm/src/api/svg.js +26 -24
- package/dist/esm/src/api/svg.js.map +1 -1
- package/dist/esm/src/api/svgPath.js +2 -3
- package/dist/esm/src/api/svgPath.js.map +1 -1
- package/dist/esm/src/api/text/layout.js +1 -1
- package/dist/esm/src/api/text/layout.js.map +1 -1
- package/dist/esm/src/core/PDFContext.js.map +1 -1
- package/dist/esm/src/core/PDFObjectCopier.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroButton.js +1 -2
- package/dist/esm/src/core/acroform/PDFAcroButton.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroChoice.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroField.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroForm.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroListBox.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroSignature.js.map +1 -1
- package/dist/esm/src/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/dist/esm/src/core/acroform/utils.js.map +1 -1
- package/dist/esm/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/dist/esm/src/core/crypto.js +122 -179
- package/dist/esm/src/core/crypto.js.map +1 -1
- package/dist/esm/src/core/document/PDFCrossRefSection.js.map +1 -1
- package/dist/esm/src/core/document/PDFHeader.js.map +1 -1
- package/dist/esm/src/core/document/PDFTrailer.js.map +1 -1
- package/dist/esm/src/core/embedders/CMap.js +1 -1
- package/dist/esm/src/core/embedders/CMap.js.map +1 -1
- package/dist/esm/src/core/embedders/CustomFontEmbedder.js +2 -3
- package/dist/esm/src/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/FileEmbedder.js +3 -7
- package/dist/esm/src/core/embedders/FileEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/JpegEmbedder.js +1 -3
- package/dist/esm/src/core/embedders/JpegEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/PDFPageEmbedder.js +12 -8
- package/dist/esm/src/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/dist/esm/src/core/embedders/StandardFontEmbedder.js +1 -1
- package/dist/esm/src/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/dist/esm/src/core/errors.js +1 -3
- package/dist/esm/src/core/errors.js.map +1 -1
- package/dist/esm/src/core/index.js +2 -2
- package/dist/esm/src/core/index.js.map +1 -1
- package/dist/esm/src/core/interactive/ViewerPreferences.js +1 -1
- package/dist/esm/src/core/interactive/ViewerPreferences.js.map +1 -1
- package/dist/esm/src/core/objects/PDFArray.js.map +1 -1
- package/dist/esm/src/core/objects/PDFDict.js.map +1 -1
- package/dist/esm/src/core/objects/PDFName.js +2 -4
- package/dist/esm/src/core/objects/PDFName.js.map +1 -1
- package/dist/esm/src/core/objects/PDFRawStream.js.map +1 -1
- package/dist/esm/src/core/objects/PDFRef.js.map +1 -1
- package/dist/esm/src/core/objects/PDFStream.js.map +1 -1
- package/dist/esm/src/core/operators/PDFOperator.js.map +1 -1
- package/dist/esm/src/core/parser/PDFObjectParser.js +1 -2
- package/dist/esm/src/core/parser/PDFObjectParser.js.map +1 -1
- package/dist/esm/src/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/dist/esm/src/core/parser/PDFParser.js +1 -2
- package/dist/esm/src/core/parser/PDFParser.js.map +1 -1
- package/dist/esm/src/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/dist/esm/src/core/streams/Ascii85Stream.js.map +1 -1
- package/dist/esm/src/core/streams/DecryptStream.js.map +1 -1
- package/dist/esm/src/core/streams/FlateStream.js.map +1 -1
- package/dist/esm/src/core/streams/LZWStream.js.map +1 -1
- package/dist/esm/src/core/streams/Stream.js.map +1 -1
- package/dist/esm/src/core/streams/decode.js +1 -1
- package/dist/esm/src/core/streams/decode.js.map +1 -1
- package/dist/esm/src/core/structures/PDFCatalog.js.map +1 -1
- package/dist/esm/src/core/structures/PDFCrossRefStream.js.map +1 -1
- package/dist/esm/src/core/structures/PDFFlateStream.js.map +1 -1
- package/dist/esm/src/core/structures/PDFObjectStream.js +1 -4
- package/dist/esm/src/core/structures/PDFObjectStream.js.map +1 -1
- package/dist/esm/src/core/structures/PDFPageLeaf.js +1 -6
- package/dist/esm/src/core/structures/PDFPageLeaf.js.map +1 -1
- package/dist/esm/src/core/structures/PDFPageTree.js +1 -1
- package/dist/esm/src/core/structures/PDFPageTree.js.map +1 -1
- package/dist/esm/src/core/syntax/Keywords.js +4 -30
- package/dist/esm/src/core/syntax/Keywords.js.map +1 -1
- package/dist/esm/src/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/esm/src/core/writers/PDFWriter.js.map +1 -1
- package/dist/esm/src/types/matrix.js.map +1 -1
- package/dist/esm/src/utils/arrays.js +2 -5
- package/dist/esm/src/utils/arrays.js.map +1 -1
- package/dist/esm/src/utils/base64.js.map +1 -1
- package/dist/esm/src/utils/elements/Arc.js +3 -6
- package/dist/esm/src/utils/elements/Arc.js.map +1 -1
- package/dist/esm/src/utils/elements/Circle.js +1 -1
- package/dist/esm/src/utils/elements/Circle.js.map +1 -1
- package/dist/esm/src/utils/elements/Ellipse.js +1 -1
- package/dist/esm/src/utils/elements/Ellipse.js.map +1 -1
- package/dist/esm/src/utils/elements/Line.js +1 -3
- package/dist/esm/src/utils/elements/Line.js.map +1 -1
- package/dist/esm/src/utils/elements/Segment.js +2 -3
- package/dist/esm/src/utils/elements/Segment.js.map +1 -1
- package/dist/esm/src/utils/intersections.js.map +1 -1
- package/dist/esm/src/utils/maths.js.map +1 -1
- package/dist/esm/src/utils/strings.js.map +1 -1
- package/dist/esm/src/utils/unicode.js.map +1 -1
- package/dist/esm/src/utils/validators.js.map +1 -1
- package/dist/node/src/api/PDFDocument.js +3 -11
- package/dist/node/src/api/PDFDocument.js.map +1 -1
- package/dist/node/src/api/PDFEmbeddedFile.js.map +1 -1
- package/dist/node/src/api/PDFEmbeddedPage.js.map +1 -1
- package/dist/node/src/api/PDFFont.js.map +1 -1
- package/dist/node/src/api/PDFJavaScript.js.map +1 -1
- package/dist/node/src/api/PDFPage.js +16 -42
- package/dist/node/src/api/PDFPage.js.map +1 -1
- package/dist/node/src/api/colors.js.map +1 -1
- package/dist/node/src/api/errors.js.map +1 -1
- package/dist/node/src/api/form/PDFButton.js +1 -3
- package/dist/node/src/api/form/PDFButton.js.map +1 -1
- package/dist/node/src/api/form/PDFCheckBox.js +1 -3
- package/dist/node/src/api/form/PDFCheckBox.js.map +1 -1
- package/dist/node/src/api/form/PDFDropdown.js +1 -3
- package/dist/node/src/api/form/PDFDropdown.js.map +1 -1
- package/dist/node/src/api/form/PDFField.js +4 -10
- package/dist/node/src/api/form/PDFField.js.map +1 -1
- package/dist/node/src/api/form/PDFForm.js +1 -3
- package/dist/node/src/api/form/PDFForm.js.map +1 -1
- package/dist/node/src/api/form/PDFOptionList.js.map +1 -1
- package/dist/node/src/api/form/PDFRadioGroup.js +1 -3
- package/dist/node/src/api/form/PDFRadioGroup.js.map +1 -1
- package/dist/node/src/api/form/PDFSignature.js +1 -3
- package/dist/node/src/api/form/PDFSignature.js.map +1 -1
- package/dist/node/src/api/form/PDFTextField.js.map +1 -1
- package/dist/node/src/api/form/appearances.js.map +1 -1
- package/dist/node/src/api/operations.js.map +1 -1
- package/dist/node/src/api/operators.js +1 -5
- package/dist/node/src/api/operators.js.map +1 -1
- package/dist/node/src/api/rotations.js.map +1 -1
- package/dist/node/src/api/svg.js +25 -23
- package/dist/node/src/api/svg.js.map +1 -1
- package/dist/node/src/api/svgPath.js +1 -2
- package/dist/node/src/api/svgPath.js.map +1 -1
- package/dist/node/src/api/text/layout.js.map +1 -1
- package/dist/node/src/core/PDFContext.js.map +1 -1
- package/dist/node/src/core/PDFObjectCopier.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroButton.js +1 -2
- package/dist/node/src/core/acroform/PDFAcroButton.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroChoice.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroField.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroForm.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroListBox.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroSignature.js.map +1 -1
- package/dist/node/src/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/dist/node/src/core/acroform/utils.js.map +1 -1
- package/dist/node/src/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/dist/node/src/core/crypto.js +122 -179
- package/dist/node/src/core/crypto.js.map +1 -1
- package/dist/node/src/core/document/PDFCrossRefSection.js.map +1 -1
- package/dist/node/src/core/document/PDFHeader.js.map +1 -1
- package/dist/node/src/core/document/PDFTrailer.js.map +1 -1
- package/dist/node/src/core/embedders/CMap.js.map +1 -1
- package/dist/node/src/core/embedders/CustomFontEmbedder.js +1 -2
- package/dist/node/src/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/FileEmbedder.js +3 -7
- package/dist/node/src/core/embedders/FileEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/JpegEmbedder.js +1 -3
- package/dist/node/src/core/embedders/JpegEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/PDFPageEmbedder.js +11 -7
- package/dist/node/src/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/dist/node/src/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/dist/node/src/core/errors.js +1 -3
- package/dist/node/src/core/errors.js.map +1 -1
- package/dist/node/src/core/index.js.map +1 -1
- package/dist/node/src/core/interactive/ViewerPreferences.js.map +1 -1
- package/dist/node/src/core/objects/PDFArray.js.map +1 -1
- package/dist/node/src/core/objects/PDFDict.js.map +1 -1
- package/dist/node/src/core/objects/PDFName.js +1 -3
- package/dist/node/src/core/objects/PDFName.js.map +1 -1
- package/dist/node/src/core/objects/PDFRawStream.js.map +1 -1
- package/dist/node/src/core/objects/PDFRef.js.map +1 -1
- package/dist/node/src/core/objects/PDFStream.js.map +1 -1
- package/dist/node/src/core/operators/PDFOperator.js.map +1 -1
- package/dist/node/src/core/parser/PDFObjectParser.js +1 -2
- package/dist/node/src/core/parser/PDFObjectParser.js.map +1 -1
- package/dist/node/src/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/dist/node/src/core/parser/PDFParser.js +1 -2
- package/dist/node/src/core/parser/PDFParser.js.map +1 -1
- package/dist/node/src/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/dist/node/src/core/streams/Ascii85Stream.js.map +1 -1
- package/dist/node/src/core/streams/DecryptStream.js.map +1 -1
- package/dist/node/src/core/streams/FlateStream.js.map +1 -1
- package/dist/node/src/core/streams/LZWStream.js.map +1 -1
- package/dist/node/src/core/streams/Stream.js.map +1 -1
- package/dist/node/src/core/streams/decode.js +1 -1
- package/dist/node/src/core/streams/decode.js.map +1 -1
- package/dist/node/src/core/structures/PDFCatalog.js.map +1 -1
- package/dist/node/src/core/structures/PDFCrossRefStream.js.map +1 -1
- package/dist/node/src/core/structures/PDFFlateStream.js.map +1 -1
- package/dist/node/src/core/structures/PDFObjectStream.js +1 -4
- package/dist/node/src/core/structures/PDFObjectStream.js.map +1 -1
- package/dist/node/src/core/structures/PDFPageLeaf.js +1 -6
- package/dist/node/src/core/structures/PDFPageLeaf.js.map +1 -1
- package/dist/node/src/core/structures/PDFPageTree.js +1 -1
- package/dist/node/src/core/structures/PDFPageTree.js.map +1 -1
- package/dist/node/src/core/syntax/Keywords.js +4 -30
- package/dist/node/src/core/syntax/Keywords.js.map +1 -1
- package/dist/node/src/core/writers/PDFStreamWriter.js.map +1 -1
- package/dist/node/src/core/writers/PDFWriter.js.map +1 -1
- package/dist/node/src/types/matrix.js.map +1 -1
- package/dist/node/src/utils/arrays.js +2 -5
- package/dist/node/src/utils/arrays.js.map +1 -1
- package/dist/node/src/utils/base64.js.map +1 -1
- package/dist/node/src/utils/elements/Arc.js +3 -6
- package/dist/node/src/utils/elements/Arc.js.map +1 -1
- package/dist/node/src/utils/elements/Circle.js.map +1 -1
- package/dist/node/src/utils/elements/Ellipse.js +1 -1
- package/dist/node/src/utils/elements/Ellipse.js.map +1 -1
- package/dist/node/src/utils/elements/Line.js +1 -3
- package/dist/node/src/utils/elements/Line.js.map +1 -1
- package/dist/node/src/utils/elements/Segment.js +1 -2
- package/dist/node/src/utils/elements/Segment.js.map +1 -1
- package/dist/node/src/utils/intersections.js.map +1 -1
- package/dist/node/src/utils/maths.js.map +1 -1
- package/dist/node/src/utils/strings.js.map +1 -1
- package/dist/node/src/utils/unicode.js.map +1 -1
- package/dist/node/src/utils/validators.js.map +1 -1
- package/dist/types/src/api/form/PDFField.d.ts +1 -1
- package/dist/types/src/core/index.d.ts +2 -2
- package/dist/types/src/core/streams/decode.d.ts +1 -1
- package/dist/types/src/core/writers/PDFWriter.d.ts +1 -4
- package/dist/types/src/types/matrix.d.ts +1 -8
- package/package.json +1 -1
- package/src/api/PDFDocument.ts +11 -44
- package/src/api/PDFEmbeddedFile.ts +1 -4
- package/src/api/PDFEmbeddedPage.ts +1 -5
- package/src/api/PDFFont.ts +1 -6
- package/src/api/PDFJavaScript.ts +2 -9
- package/src/api/PDFPage.ts +26 -93
- package/src/api/PDFPageOptions.ts +4 -4
- package/src/api/colors.ts +1 -6
- package/src/api/errors.ts +1 -2
- package/src/api/form/PDFButton.ts +9 -34
- package/src/api/form/PDFCheckBox.ts +4 -19
- package/src/api/form/PDFDropdown.ts +6 -21
- package/src/api/form/PDFField.ts +11 -41
- package/src/api/form/PDFForm.ts +11 -29
- package/src/api/form/PDFOptionList.ts +5 -21
- package/src/api/form/PDFRadioGroup.ts +6 -22
- package/src/api/form/PDFSignature.ts +4 -13
- package/src/api/form/PDFTextField.ts +5 -20
- package/src/api/form/appearances.ts +33 -33
- package/src/api/operations.ts +23 -25
- package/src/api/operators.ts +11 -43
- package/src/api/rotations.ts +1 -4
- package/src/api/svg.ts +145 -195
- package/src/api/svgPath.ts +5 -32
- package/src/api/text/layout.ts +3 -18
- package/src/core/PDFContext.ts +10 -36
- package/src/core/PDFObjectCopier.ts +1 -2
- package/src/core/acroform/PDFAcroButton.ts +3 -13
- package/src/core/acroform/PDFAcroCheckBox.ts +1 -2
- package/src/core/acroform/PDFAcroChoice.ts +2 -9
- package/src/core/acroform/PDFAcroComboBox.ts +1 -2
- package/src/core/acroform/PDFAcroField.ts +1 -2
- package/src/core/acroform/PDFAcroForm.ts +2 -5
- package/src/core/acroform/PDFAcroListBox.ts +1 -2
- package/src/core/acroform/PDFAcroNonTerminal.ts +1 -2
- package/src/core/acroform/PDFAcroPushButton.ts +1 -2
- package/src/core/acroform/PDFAcroRadioButton.ts +1 -2
- package/src/core/acroform/PDFAcroSignature.ts +1 -2
- package/src/core/acroform/PDFAcroTerminal.ts +1 -2
- package/src/core/acroform/utils.ts +3 -9
- package/src/core/annotation/PDFWidgetAnnotation.ts +1 -2
- package/src/core/crypto.ts +143 -287
- package/src/core/document/PDFCrossRefSection.ts +3 -15
- package/src/core/document/PDFHeader.ts +1 -2
- package/src/core/document/PDFTrailer.ts +1 -2
- package/src/core/embedders/CMap.ts +1 -6
- package/src/core/embedders/CustomFontEmbedder.ts +4 -16
- package/src/core/embedders/CustomFontSubsetEmbedder.ts +2 -13
- package/src/core/embedders/FileEmbedder.ts +5 -23
- package/src/core/embedders/JpegEmbedder.ts +2 -11
- package/src/core/embedders/PDFPageEmbedder.ts +12 -14
- package/src/core/embedders/StandardFontEmbedder.ts +3 -12
- package/src/core/errors.ts +1 -3
- package/src/core/index.ts +2 -8
- package/src/core/interactive/ViewerPreferences.ts +4 -18
- package/src/core/objects/PDFArray.ts +2 -8
- package/src/core/objects/PDFDict.ts +3 -11
- package/src/core/objects/PDFName.ts +2 -9
- package/src/core/objects/PDFRawStream.ts +3 -10
- package/src/core/objects/PDFRef.ts +1 -5
- package/src/core/objects/PDFStream.ts +2 -8
- package/src/core/operators/PDFOperator.ts +2 -9
- package/src/core/parser/PDFObjectParser.ts +5 -14
- package/src/core/parser/PDFObjectStreamParser.ts +2 -4
- package/src/core/parser/PDFParser.ts +5 -21
- package/src/core/parser/PDFXRefStreamParser.ts +1 -2
- package/src/core/streams/Ascii85Stream.ts +1 -2
- package/src/core/streams/DecryptStream.ts +2 -9
- package/src/core/streams/FlateStream.ts +4 -14
- package/src/core/streams/LZWStream.ts +2 -9
- package/src/core/streams/Stream.ts +2 -8
- package/src/core/streams/decode.ts +2 -10
- package/src/core/structures/PDFCatalog.ts +2 -6
- package/src/core/structures/PDFCrossRefStream.ts +2 -10
- package/src/core/structures/PDFFlateStream.ts +1 -4
- package/src/core/structures/PDFObjectStream.ts +4 -14
- package/src/core/structures/PDFPageLeaf.ts +9 -28
- package/src/core/structures/PDFPageTree.ts +2 -5
- package/src/core/syntax/Keywords.ts +4 -30
- package/src/core/writers/PDFStreamWriter.ts +2 -11
- package/src/core/writers/PDFWriter.ts +2 -6
- package/src/types/fontkit.ts +3 -16
- package/src/types/index.ts +6 -14
- package/src/types/matrix.ts +1 -8
- package/src/utils/arrays.ts +3 -8
- package/src/utils/base64.ts +2 -4
- package/src/utils/elements/Arc.ts +5 -15
- package/src/utils/elements/Circle.ts +1 -9
- package/src/utils/elements/Ellipse.ts +6 -24
- package/src/utils/elements/Line.ts +1 -3
- package/src/utils/elements/Segment.ts +3 -14
- package/src/utils/intersections.ts +20 -65
- package/src/utils/maths.ts +10 -22
- package/src/utils/strings.ts +6 -16
- package/src/utils/unicode.ts +9 -22
- package/src/utils/validators.ts +9 -45
|
@@ -43,18 +43,10 @@ class PDFCrossRefSection {
|
|
|
43
43
|
toString(): string {
|
|
44
44
|
let section = `xref\n`;
|
|
45
45
|
|
|
46
|
-
for (
|
|
47
|
-
let rangeIdx = 0, rangeLen = this.subsections.length;
|
|
48
|
-
rangeIdx < rangeLen;
|
|
49
|
-
rangeIdx++
|
|
50
|
-
) {
|
|
46
|
+
for (let rangeIdx = 0, rangeLen = this.subsections.length; rangeIdx < rangeLen; rangeIdx++) {
|
|
51
47
|
const range = this.subsections[rangeIdx];
|
|
52
48
|
section += `${range[0].ref.objectNumber} ${range.length}\n`;
|
|
53
|
-
for (
|
|
54
|
-
let entryIdx = 0, entryLen = range.length;
|
|
55
|
-
entryIdx < entryLen;
|
|
56
|
-
entryIdx++
|
|
57
|
-
) {
|
|
49
|
+
for (let entryIdx = 0, entryLen = range.length; entryIdx < entryLen; entryIdx++) {
|
|
58
50
|
const entry = range[entryIdx];
|
|
59
51
|
section += padStart(String(entry.offset), 10, '0');
|
|
60
52
|
section += ' ';
|
|
@@ -121,11 +113,7 @@ class PDFCrossRefSection {
|
|
|
121
113
|
return offset - initialOffset;
|
|
122
114
|
}
|
|
123
115
|
|
|
124
|
-
private copyEntriesIntoBuffer(
|
|
125
|
-
entries: Entry[],
|
|
126
|
-
buffer: Uint8Array,
|
|
127
|
-
offset: number,
|
|
128
|
-
): number {
|
|
116
|
+
private copyEntriesIntoBuffer(entries: Entry[], buffer: Uint8Array, offset: number): number {
|
|
129
117
|
const length = entries.length;
|
|
130
118
|
|
|
131
119
|
for (let idx = 0; idx < length; idx++) {
|
|
@@ -2,8 +2,7 @@ import CharCodes from '../syntax/CharCodes';
|
|
|
2
2
|
import { charFromCode, copyStringIntoBuffer } from '../../utils';
|
|
3
3
|
|
|
4
4
|
class PDFHeader {
|
|
5
|
-
static forVersion = (major: number, minor: number) =>
|
|
6
|
-
new PDFHeader(major, minor);
|
|
5
|
+
static forVersion = (major: number, minor: number) => new PDFHeader(major, minor);
|
|
7
6
|
|
|
8
7
|
private readonly major: string;
|
|
9
8
|
private readonly minor: string;
|
|
@@ -2,8 +2,7 @@ import CharCodes from '../syntax/CharCodes';
|
|
|
2
2
|
import { copyStringIntoBuffer } from '../../utils';
|
|
3
3
|
|
|
4
4
|
class PDFTrailer {
|
|
5
|
-
static forLastCrossRefSectionOffset = (offset: number) =>
|
|
6
|
-
new PDFTrailer(offset);
|
|
5
|
+
static forLastCrossRefSectionOffset = (offset: number) => new PDFTrailer(offset);
|
|
7
6
|
|
|
8
7
|
private readonly lastXRefOffset: string;
|
|
9
8
|
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import { Glyph } from '../../types/fontkit';
|
|
2
2
|
|
|
3
3
|
import { toHexString, toHexStringOfMinLength } from '../../utils';
|
|
4
|
-
import {
|
|
5
|
-
hasSurrogates,
|
|
6
|
-
highSurrogate,
|
|
7
|
-
isWithinBMP,
|
|
8
|
-
lowSurrogate,
|
|
9
|
-
} from '../../utils/unicode';
|
|
4
|
+
import { hasSurrogates, highSurrogate, isWithinBMP, lowSurrogate } from '../../utils/unicode';
|
|
10
5
|
|
|
11
6
|
/** [fontId, codePoint] */
|
|
12
7
|
type BfChar = [string, string];
|
|
@@ -6,12 +6,7 @@ import PDFHexString from '../objects/PDFHexString';
|
|
|
6
6
|
import PDFRef from '../objects/PDFRef';
|
|
7
7
|
import PDFString from '../objects/PDFString';
|
|
8
8
|
import PDFContext from '../PDFContext';
|
|
9
|
-
import {
|
|
10
|
-
byAscendingId,
|
|
11
|
-
Cache,
|
|
12
|
-
sortedUniq,
|
|
13
|
-
toHexStringOfMinLength,
|
|
14
|
-
} from '../../utils';
|
|
9
|
+
import { byAscendingId, Cache, sortedUniq, toHexStringOfMinLength } from '../../utils';
|
|
15
10
|
|
|
16
11
|
/**
|
|
17
12
|
* A note of thanks to the developers of https://github.com/foliojs/pdfkit, as
|
|
@@ -81,10 +76,7 @@ class CustomFontEmbedder {
|
|
|
81
76
|
return totalWidth * scale;
|
|
82
77
|
}
|
|
83
78
|
|
|
84
|
-
heightOfFontAtSize(
|
|
85
|
-
size: number,
|
|
86
|
-
options: { descender?: boolean } = {},
|
|
87
|
-
): number {
|
|
79
|
+
heightOfFontAtSize(size: number, options: { descender?: boolean } = {}): number {
|
|
88
80
|
const { descender = true } = options;
|
|
89
81
|
|
|
90
82
|
const { ascent, descent, bbox } = this.font;
|
|
@@ -105,15 +97,11 @@ class CustomFontEmbedder {
|
|
|
105
97
|
}
|
|
106
98
|
|
|
107
99
|
embedIntoContext(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {
|
|
108
|
-
this.baseFontName =
|
|
109
|
-
this.customName || context.addRandomSuffix(this.fontName);
|
|
100
|
+
this.baseFontName = this.customName || context.addRandomSuffix(this.fontName);
|
|
110
101
|
return this.embedFontDict(context, ref);
|
|
111
102
|
}
|
|
112
103
|
|
|
113
|
-
protected async embedFontDict(
|
|
114
|
-
context: PDFContext,
|
|
115
|
-
ref?: PDFRef,
|
|
116
|
-
): Promise<PDFRef> {
|
|
104
|
+
protected async embedFontDict(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {
|
|
117
105
|
const cidFontDictRef = await this.embedCIDFontDict(context);
|
|
118
106
|
const unicodeCMapRef = this.embedUnicodeCmap(context);
|
|
119
107
|
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Font,
|
|
3
|
-
Fontkit,
|
|
4
|
-
Glyph,
|
|
5
|
-
Subset,
|
|
6
|
-
TypeFeatures,
|
|
7
|
-
} from '../../types/fontkit';
|
|
1
|
+
import { Font, Fontkit, Glyph, Subset, TypeFeatures } from '../../types/fontkit';
|
|
8
2
|
|
|
9
3
|
import CustomFontEmbedder from './CustomFontEmbedder';
|
|
10
4
|
import PDFHexString from '../objects/PDFHexString';
|
|
@@ -23,12 +17,7 @@ class CustomFontSubsetEmbedder extends CustomFontEmbedder {
|
|
|
23
17
|
fontFeatures?: TypeFeatures,
|
|
24
18
|
) {
|
|
25
19
|
const font = await fontkit.create(fontData);
|
|
26
|
-
return new CustomFontSubsetEmbedder(
|
|
27
|
-
font,
|
|
28
|
-
fontData,
|
|
29
|
-
customFontName,
|
|
30
|
-
fontFeatures,
|
|
31
|
-
);
|
|
20
|
+
return new CustomFontSubsetEmbedder(font, fontData, customFontName, fontFeatures);
|
|
32
21
|
}
|
|
33
22
|
|
|
34
23
|
private readonly subset: Subset;
|
|
@@ -28,11 +28,7 @@ export interface EmbeddedFileOptions {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
class FileEmbedder {
|
|
31
|
-
static for(
|
|
32
|
-
bytes: Uint8Array,
|
|
33
|
-
fileName: string,
|
|
34
|
-
options: EmbeddedFileOptions = {},
|
|
35
|
-
) {
|
|
31
|
+
static for(bytes: Uint8Array, fileName: string, options: EmbeddedFileOptions = {}) {
|
|
36
32
|
return new FileEmbedder(bytes, fileName, options);
|
|
37
33
|
}
|
|
38
34
|
|
|
@@ -40,36 +36,22 @@ class FileEmbedder {
|
|
|
40
36
|
readonly fileName: string;
|
|
41
37
|
readonly options: EmbeddedFileOptions;
|
|
42
38
|
|
|
43
|
-
private constructor(
|
|
44
|
-
fileData: Uint8Array,
|
|
45
|
-
fileName: string,
|
|
46
|
-
options: EmbeddedFileOptions = {},
|
|
47
|
-
) {
|
|
39
|
+
private constructor(fileData: Uint8Array, fileName: string, options: EmbeddedFileOptions = {}) {
|
|
48
40
|
this.fileData = fileData;
|
|
49
41
|
this.fileName = fileName;
|
|
50
42
|
this.options = options;
|
|
51
43
|
}
|
|
52
44
|
|
|
53
45
|
async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {
|
|
54
|
-
const {
|
|
55
|
-
mimeType,
|
|
56
|
-
description,
|
|
57
|
-
creationDate,
|
|
58
|
-
modificationDate,
|
|
59
|
-
afRelationship,
|
|
60
|
-
} = this.options;
|
|
46
|
+
const { mimeType, description, creationDate, modificationDate, afRelationship } = this.options;
|
|
61
47
|
|
|
62
48
|
const embeddedFileStream = context.flateStream(this.fileData, {
|
|
63
49
|
Type: 'EmbeddedFile',
|
|
64
50
|
Subtype: mimeType ?? undefined,
|
|
65
51
|
Params: {
|
|
66
52
|
Size: this.fileData.length,
|
|
67
|
-
CreationDate: creationDate
|
|
68
|
-
|
|
69
|
-
: undefined,
|
|
70
|
-
ModDate: modificationDate
|
|
71
|
-
? PDFString.fromDate(modificationDate)
|
|
72
|
-
: undefined,
|
|
53
|
+
CreationDate: creationDate ? PDFString.fromDate(creationDate) : undefined,
|
|
54
|
+
ModDate: modificationDate ? PDFString.fromDate(modificationDate) : undefined,
|
|
73
55
|
},
|
|
74
56
|
});
|
|
75
57
|
const embeddedFileStreamRef = context.register(embeddedFileStream);
|
|
@@ -61,13 +61,7 @@ class JpegEmbedder {
|
|
|
61
61
|
|
|
62
62
|
const colorSpace = channelName;
|
|
63
63
|
|
|
64
|
-
return new JpegEmbedder(
|
|
65
|
-
imageData,
|
|
66
|
-
bitsPerComponent,
|
|
67
|
-
width,
|
|
68
|
-
height,
|
|
69
|
-
colorSpace,
|
|
70
|
-
);
|
|
64
|
+
return new JpegEmbedder(imageData, bitsPerComponent, width, height, colorSpace);
|
|
71
65
|
}
|
|
72
66
|
|
|
73
67
|
readonly bitsPerComponent: number;
|
|
@@ -109,10 +103,7 @@ class JpegEmbedder {
|
|
|
109
103
|
//
|
|
110
104
|
// Applying a swap here as a hedge that most bytes passing
|
|
111
105
|
// through this method will benefit from it.
|
|
112
|
-
Decode:
|
|
113
|
-
this.colorSpace === ColorSpace.DeviceCMYK
|
|
114
|
-
? [1, 0, 1, 0, 1, 0, 1, 0]
|
|
115
|
-
: undefined,
|
|
106
|
+
Decode: this.colorSpace === ColorSpace.DeviceCMYK ? [1, 0, 1, 0, 1, 0, 1, 0] : undefined,
|
|
116
107
|
});
|
|
117
108
|
|
|
118
109
|
if (ref) {
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
MissingPageContentsEmbeddingError,
|
|
3
|
-
UnrecognizedStreamTypeError,
|
|
4
|
-
} from '../errors';
|
|
1
|
+
import { MissingPageContentsEmbeddingError, UnrecognizedStreamTypeError } from '../errors';
|
|
5
2
|
import PDFArray from '../objects/PDFArray';
|
|
6
3
|
import PDFNumber from '../objects/PDFNumber';
|
|
7
4
|
import PDFRawStream from '../objects/PDFRawStream';
|
|
@@ -40,22 +37,24 @@ export interface PageBoundingBox {
|
|
|
40
37
|
const fullPageBoundingBox = (page: PDFPageLeaf) => {
|
|
41
38
|
const mediaBox = page.MediaBox();
|
|
42
39
|
|
|
43
|
-
const width =
|
|
44
|
-
mediaBox.lookup(2, PDFNumber).asNumber() -
|
|
45
|
-
mediaBox.lookup(0, PDFNumber).asNumber();
|
|
40
|
+
const width = mediaBox.lookup(2, PDFNumber).asNumber() - mediaBox.lookup(0, PDFNumber).asNumber();
|
|
46
41
|
|
|
47
42
|
const height =
|
|
48
|
-
mediaBox.lookup(3, PDFNumber).asNumber() -
|
|
49
|
-
mediaBox.lookup(1, PDFNumber).asNumber();
|
|
43
|
+
mediaBox.lookup(3, PDFNumber).asNumber() - mediaBox.lookup(1, PDFNumber).asNumber();
|
|
50
44
|
|
|
51
45
|
return { left: 0, bottom: 0, right: width, top: height };
|
|
52
46
|
};
|
|
53
47
|
|
|
54
48
|
// Returns the identity matrix, modified to position the content of the given
|
|
55
49
|
// bounding box at (0, 0).
|
|
56
|
-
const boundingBoxAdjustedMatrix = (
|
|
57
|
-
|
|
58
|
-
|
|
50
|
+
const boundingBoxAdjustedMatrix = (bb: PageBoundingBox): TransformationMatrix => [
|
|
51
|
+
1,
|
|
52
|
+
0,
|
|
53
|
+
0,
|
|
54
|
+
1,
|
|
55
|
+
-bb.left,
|
|
56
|
+
-bb.bottom,
|
|
57
|
+
];
|
|
59
58
|
|
|
60
59
|
class PDFPageEmbedder {
|
|
61
60
|
static async for(
|
|
@@ -85,8 +84,7 @@ class PDFPageEmbedder {
|
|
|
85
84
|
this.width = bb.right - bb.left;
|
|
86
85
|
this.height = bb.top - bb.bottom;
|
|
87
86
|
this.boundingBox = bb;
|
|
88
|
-
this.transformationMatrix =
|
|
89
|
-
transformationMatrix ?? boundingBoxAdjustedMatrix(bb);
|
|
87
|
+
this.transformationMatrix = transformationMatrix ?? boundingBoxAdjustedMatrix(bb);
|
|
90
88
|
}
|
|
91
89
|
|
|
92
90
|
async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Encodings,
|
|
3
|
-
Font,
|
|
4
|
-
FontNames,
|
|
5
|
-
EncodingType,
|
|
6
|
-
} from '@pdf-lib/standard-fonts';
|
|
1
|
+
import { Encodings, Font, FontNames, EncodingType } from '@pdf-lib/standard-fonts';
|
|
7
2
|
|
|
8
3
|
import PDFHexString from '../objects/PDFHexString';
|
|
9
4
|
import PDFRef from '../objects/PDFRef';
|
|
@@ -70,10 +65,7 @@ class StandardFontEmbedder {
|
|
|
70
65
|
return totalWidth * scale;
|
|
71
66
|
}
|
|
72
67
|
|
|
73
|
-
heightOfFontAtSize(
|
|
74
|
-
size: number,
|
|
75
|
-
options: { descender?: boolean } = {},
|
|
76
|
-
): number {
|
|
68
|
+
heightOfFontAtSize(size: number, options: { descender?: boolean } = {}): number {
|
|
77
69
|
const { descender = true } = options;
|
|
78
70
|
|
|
79
71
|
const { Ascender, Descender, FontBBox } = this.font;
|
|
@@ -99,8 +91,7 @@ class StandardFontEmbedder {
|
|
|
99
91
|
Subtype: 'Type1',
|
|
100
92
|
BaseFont: this.customName || this.fontName,
|
|
101
93
|
|
|
102
|
-
Encoding:
|
|
103
|
-
this.encoding === Encodings.WinAnsi ? 'WinAnsiEncoding' : undefined,
|
|
94
|
+
Encoding: this.encoding === Encodings.WinAnsi ? 'WinAnsiEncoding' : undefined,
|
|
104
95
|
});
|
|
105
96
|
|
|
106
97
|
if (ref) {
|
package/src/core/errors.ts
CHANGED
|
@@ -20,9 +20,7 @@ export class UnexpectedObjectTypeError extends Error {
|
|
|
20
20
|
constructor(expected: any | any[], actual: any) {
|
|
21
21
|
const name = (t: any) => t?.name ?? t?.constructor?.name;
|
|
22
22
|
|
|
23
|
-
const expectedTypes = Array.isArray(expected)
|
|
24
|
-
? expected.map(name)
|
|
25
|
-
: [name(expected)];
|
|
23
|
+
const expectedTypes = Array.isArray(expected) ? expected.map(name) : [name(expected)];
|
|
26
24
|
|
|
27
25
|
const msg =
|
|
28
26
|
`Expected instance of ${expectedTypes.join(' or ')}, ` +
|
package/src/core/index.ts
CHANGED
|
@@ -14,16 +14,10 @@ export { default as PDFCrossRefSection } from './document/PDFCrossRefSection';
|
|
|
14
14
|
export { default as StandardFontEmbedder } from './embedders/StandardFontEmbedder';
|
|
15
15
|
export { default as CustomFontEmbedder } from './embedders/CustomFontEmbedder';
|
|
16
16
|
export { default as CustomFontSubsetEmbedder } from './embedders/CustomFontSubsetEmbedder';
|
|
17
|
-
export {
|
|
18
|
-
default as FileEmbedder,
|
|
19
|
-
AFRelationship,
|
|
20
|
-
} from './embedders/FileEmbedder';
|
|
17
|
+
export { default as FileEmbedder, AFRelationship } from './embedders/FileEmbedder';
|
|
21
18
|
export { default as JpegEmbedder } from './embedders/JpegEmbedder';
|
|
22
19
|
export { default as PngEmbedder } from './embedders/PngEmbedder';
|
|
23
|
-
export {
|
|
24
|
-
default as PDFPageEmbedder,
|
|
25
|
-
type PageBoundingBox,
|
|
26
|
-
} from './embedders/PDFPageEmbedder';
|
|
20
|
+
export { default as PDFPageEmbedder, type PageBoundingBox } from './embedders/PDFPageEmbedder';
|
|
27
21
|
|
|
28
22
|
export {
|
|
29
23
|
default as ViewerPreferences,
|
|
@@ -4,12 +4,7 @@ import PDFDict from '../objects/PDFDict';
|
|
|
4
4
|
import PDFName from '../objects/PDFName';
|
|
5
5
|
import PDFNumber from '../objects/PDFNumber';
|
|
6
6
|
import PDFContext from '../PDFContext';
|
|
7
|
-
import {
|
|
8
|
-
assertEachIs,
|
|
9
|
-
assertInteger,
|
|
10
|
-
assertIsOneOf,
|
|
11
|
-
assertRange,
|
|
12
|
-
} from '../../utils';
|
|
7
|
+
import { assertEachIs, assertInteger, assertIsOneOf, assertRange } from '../../utils';
|
|
13
8
|
|
|
14
9
|
const asEnum = <T extends string | number, U extends { [key: string]: T }>(
|
|
15
10
|
rawValue: T | undefined,
|
|
@@ -83,11 +78,7 @@ type BoolViewerPrefKey =
|
|
|
83
78
|
| 'CenterWindow'
|
|
84
79
|
| 'DisplayDocTitle'
|
|
85
80
|
| 'PickTrayByPDFSize';
|
|
86
|
-
type NameViewerPrefKey =
|
|
87
|
-
| 'NonFullScreenPageMode'
|
|
88
|
-
| 'Direction'
|
|
89
|
-
| 'PrintScaling'
|
|
90
|
-
| 'Duplex';
|
|
81
|
+
type NameViewerPrefKey = 'NonFullScreenPageMode' | 'Direction' | 'PrintScaling' | 'Duplex';
|
|
91
82
|
|
|
92
83
|
interface PageRange {
|
|
93
84
|
start: number;
|
|
@@ -99,8 +90,7 @@ class ViewerPreferences {
|
|
|
99
90
|
readonly dict: PDFDict;
|
|
100
91
|
|
|
101
92
|
/** @ignore */
|
|
102
|
-
static fromDict = (dict: PDFDict): ViewerPreferences =>
|
|
103
|
-
new ViewerPreferences(dict);
|
|
93
|
+
static fromDict = (dict: PDFDict): ViewerPreferences => new ViewerPreferences(dict);
|
|
104
94
|
|
|
105
95
|
/** @ignore */
|
|
106
96
|
static create = (context: PDFContext) => {
|
|
@@ -429,11 +419,7 @@ class ViewerPreferences {
|
|
|
429
419
|
* exiting full screen mode.
|
|
430
420
|
*/
|
|
431
421
|
setNonFullScreenPageMode(nonFullScreenPageMode: NonFullScreenPageMode) {
|
|
432
|
-
assertIsOneOf(
|
|
433
|
-
nonFullScreenPageMode,
|
|
434
|
-
'nonFullScreenPageMode',
|
|
435
|
-
NonFullScreenPageMode,
|
|
436
|
-
);
|
|
422
|
+
assertIsOneOf(nonFullScreenPageMode, 'nonFullScreenPageMode', NonFullScreenPageMode);
|
|
437
423
|
const mode = PDFName.of(nonFullScreenPageMode);
|
|
438
424
|
this.dict.set(PDFName.of('NonFullScreenPageMode'), mode);
|
|
439
425
|
}
|
|
@@ -57,18 +57,12 @@ class PDFArray extends PDFObject {
|
|
|
57
57
|
lookupMaybe(index: number, type: typeof PDFArray): PDFArray | undefined;
|
|
58
58
|
lookupMaybe(index: number, type: typeof PDFBool): PDFBool | undefined;
|
|
59
59
|
lookupMaybe(index: number, type: typeof PDFDict): PDFDict | undefined;
|
|
60
|
-
lookupMaybe(
|
|
61
|
-
index: number,
|
|
62
|
-
type: typeof PDFHexString,
|
|
63
|
-
): PDFHexString | undefined;
|
|
60
|
+
lookupMaybe(index: number, type: typeof PDFHexString): PDFHexString | undefined;
|
|
64
61
|
lookupMaybe(index: number, type: typeof PDFName): PDFName | undefined;
|
|
65
62
|
lookupMaybe(index: number, type: typeof PDFNull): typeof PDFNull | undefined;
|
|
66
63
|
lookupMaybe(index: number, type: typeof PDFNumber): PDFNumber | undefined;
|
|
67
64
|
lookupMaybe(index: number, type: typeof PDFStream): PDFStream | undefined;
|
|
68
|
-
lookupMaybe(
|
|
69
|
-
index: number,
|
|
70
|
-
type: typeof PDFRawStream,
|
|
71
|
-
): PDFRawStream | undefined;
|
|
65
|
+
lookupMaybe(index: number, type: typeof PDFRawStream): PDFRawStream | undefined;
|
|
72
66
|
lookupMaybe(index: number, type: typeof PDFRef): PDFRef | undefined;
|
|
73
67
|
lookupMaybe(index: number, type: typeof PDFString): PDFString | undefined;
|
|
74
68
|
lookupMaybe(
|
|
@@ -16,8 +16,7 @@ export type DictMap = Map<PDFName, PDFObject>;
|
|
|
16
16
|
class PDFDict extends PDFObject {
|
|
17
17
|
static withContext = (context: PDFContext) => new PDFDict(new Map(), context);
|
|
18
18
|
|
|
19
|
-
static fromMapWithContext = (map: DictMap, context: PDFContext) =>
|
|
20
|
-
new PDFDict(map, context);
|
|
19
|
+
static fromMapWithContext = (map: DictMap, context: PDFContext) => new PDFDict(map, context);
|
|
21
20
|
|
|
22
21
|
readonly context: PDFContext;
|
|
23
22
|
|
|
@@ -66,10 +65,7 @@ class PDFDict extends PDFObject {
|
|
|
66
65
|
lookupMaybe(key: PDFName, type: typeof PDFArray): PDFArray | undefined;
|
|
67
66
|
lookupMaybe(key: PDFName, type: typeof PDFBool): PDFBool | undefined;
|
|
68
67
|
lookupMaybe(key: PDFName, type: typeof PDFDict): PDFDict | undefined;
|
|
69
|
-
lookupMaybe(
|
|
70
|
-
key: PDFName,
|
|
71
|
-
type: typeof PDFHexString,
|
|
72
|
-
): PDFHexString | undefined;
|
|
68
|
+
lookupMaybe(key: PDFName, type: typeof PDFHexString): PDFHexString | undefined;
|
|
73
69
|
lookupMaybe(key: PDFName, type: typeof PDFName): PDFName | undefined;
|
|
74
70
|
lookupMaybe(key: PDFName, type: typeof PDFNull): typeof PDFNull | undefined;
|
|
75
71
|
lookupMaybe(key: PDFName, type: typeof PDFNumber): PDFNumber | undefined;
|
|
@@ -125,11 +121,7 @@ class PDFDict extends PDFObject {
|
|
|
125
121
|
type1: typeof PDFString,
|
|
126
122
|
type2: typeof PDFHexString,
|
|
127
123
|
): PDFString | PDFHexString;
|
|
128
|
-
lookup(
|
|
129
|
-
ref: PDFName,
|
|
130
|
-
type1: typeof PDFDict,
|
|
131
|
-
type2: typeof PDFStream,
|
|
132
|
-
): PDFDict | PDFStream;
|
|
124
|
+
lookup(ref: PDFName, type1: typeof PDFDict, type2: typeof PDFStream): PDFDict | PDFStream;
|
|
133
125
|
lookup(
|
|
134
126
|
ref: PDFName,
|
|
135
127
|
type1: typeof PDFString,
|
|
@@ -2,20 +2,13 @@ import { PrivateConstructorError } from '../errors';
|
|
|
2
2
|
import PDFObject from './PDFObject';
|
|
3
3
|
import CharCodes from '../syntax/CharCodes';
|
|
4
4
|
import { IsIrregular } from '../syntax/Irregular';
|
|
5
|
-
import {
|
|
6
|
-
charFromHexCode,
|
|
7
|
-
copyStringIntoBuffer,
|
|
8
|
-
toCharCode,
|
|
9
|
-
toHexString,
|
|
10
|
-
} from '../../utils';
|
|
5
|
+
import { charFromHexCode, copyStringIntoBuffer, toCharCode, toHexString } from '../../utils';
|
|
11
6
|
|
|
12
7
|
const decodeName = (name: string) =>
|
|
13
8
|
name.replace(/#([\dABCDEF]{2})/g, (_, hex) => charFromHexCode(hex));
|
|
14
9
|
|
|
15
10
|
const isRegularChar = (charCode: number) =>
|
|
16
|
-
charCode >= CharCodes.ExclamationPoint &&
|
|
17
|
-
charCode <= CharCodes.Tilde &&
|
|
18
|
-
!IsIrregular[charCode];
|
|
11
|
+
charCode >= CharCodes.ExclamationPoint && charCode <= CharCodes.Tilde && !IsIrregular[charCode];
|
|
19
12
|
|
|
20
13
|
const ENFORCER = {};
|
|
21
14
|
const pool = new Map<string, PDFName>();
|
|
@@ -5,20 +5,13 @@ import { arrayAsString } from '../../utils';
|
|
|
5
5
|
import { CipherTransform } from '../crypto';
|
|
6
6
|
|
|
7
7
|
class PDFRawStream extends PDFStream {
|
|
8
|
-
static of = (
|
|
9
|
-
dict
|
|
10
|
-
contents: Uint8Array,
|
|
11
|
-
transform?: CipherTransform,
|
|
12
|
-
) => new PDFRawStream(dict, contents, transform);
|
|
8
|
+
static of = (dict: PDFDict, contents: Uint8Array, transform?: CipherTransform) =>
|
|
9
|
+
new PDFRawStream(dict, contents, transform);
|
|
13
10
|
|
|
14
11
|
readonly contents: Uint8Array;
|
|
15
12
|
readonly transform?: CipherTransform;
|
|
16
13
|
|
|
17
|
-
private constructor(
|
|
18
|
-
dict: PDFDict,
|
|
19
|
-
contents: Uint8Array,
|
|
20
|
-
transform?: CipherTransform,
|
|
21
|
-
) {
|
|
14
|
+
private constructor(dict: PDFDict, contents: Uint8Array, transform?: CipherTransform) {
|
|
22
15
|
super(dict);
|
|
23
16
|
this.contents = contents;
|
|
24
17
|
this.transform = transform;
|
|
@@ -22,11 +22,7 @@ class PDFRef extends PDFObject {
|
|
|
22
22
|
readonly generationNumber: number;
|
|
23
23
|
readonly tag: string;
|
|
24
24
|
|
|
25
|
-
private constructor(
|
|
26
|
-
enforcer: any,
|
|
27
|
-
objectNumber: number,
|
|
28
|
-
generationNumber: number,
|
|
29
|
-
) {
|
|
25
|
+
private constructor(enforcer: any, objectNumber: number, generationNumber: number) {
|
|
30
26
|
if (enforcer !== ENFORCER) throw new PrivateConstructorError('PDFRef');
|
|
31
27
|
super();
|
|
32
28
|
this.objectNumber = objectNumber;
|
|
@@ -19,10 +19,7 @@ class PDFStream extends PDFObject {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
getContentsString(): string {
|
|
22
|
-
throw new MethodNotImplementedError(
|
|
23
|
-
this.constructor.name,
|
|
24
|
-
'getContentsString',
|
|
25
|
-
);
|
|
22
|
+
throw new MethodNotImplementedError(this.constructor.name, 'getContentsString');
|
|
26
23
|
}
|
|
27
24
|
|
|
28
25
|
getContents(): Uint8Array {
|
|
@@ -30,10 +27,7 @@ class PDFStream extends PDFObject {
|
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
getContentsSize(): number {
|
|
33
|
-
throw new MethodNotImplementedError(
|
|
34
|
-
this.constructor.name,
|
|
35
|
-
'getContentsSize',
|
|
36
|
-
);
|
|
30
|
+
throw new MethodNotImplementedError(this.constructor.name, 'getContentsSize');
|
|
37
31
|
}
|
|
38
32
|
|
|
39
33
|
updateDict(): void {
|
|
@@ -9,17 +9,10 @@ import PDFContext from '../PDFContext';
|
|
|
9
9
|
import CharCodes from '../syntax/CharCodes';
|
|
10
10
|
import { copyStringIntoBuffer } from '../../utils';
|
|
11
11
|
|
|
12
|
-
export type PDFOperatorArg =
|
|
13
|
-
| string
|
|
14
|
-
| PDFName
|
|
15
|
-
| PDFArray
|
|
16
|
-
| PDFNumber
|
|
17
|
-
| PDFString
|
|
18
|
-
| PDFHexString;
|
|
12
|
+
export type PDFOperatorArg = string | PDFName | PDFArray | PDFNumber | PDFString | PDFHexString;
|
|
19
13
|
|
|
20
14
|
class PDFOperator {
|
|
21
|
-
static of = (name: PDFOperatorNames, args?: PDFOperatorArg[]) =>
|
|
22
|
-
new PDFOperator(name, args);
|
|
15
|
+
static of = (name: PDFOperatorNames, args?: PDFOperatorArg[]) => new PDFOperator(name, args);
|
|
23
16
|
|
|
24
17
|
private readonly name: PDFOperatorNames;
|
|
25
18
|
private readonly args: PDFOperatorArg[];
|
|
@@ -32,17 +32,11 @@ import { CipherTransformFactory } from '../crypto';
|
|
|
32
32
|
|
|
33
33
|
// TODO: Throw error if eof is reached before finishing object parse...
|
|
34
34
|
class PDFObjectParser extends BaseParser {
|
|
35
|
-
static forBytes = (
|
|
36
|
-
bytes
|
|
37
|
-
context: PDFContext,
|
|
38
|
-
capNumbers?: boolean,
|
|
39
|
-
) => new PDFObjectParser(ByteStream.of(bytes), context, capNumbers);
|
|
35
|
+
static forBytes = (bytes: Uint8Array, context: PDFContext, capNumbers?: boolean) =>
|
|
36
|
+
new PDFObjectParser(ByteStream.of(bytes), context, capNumbers);
|
|
40
37
|
|
|
41
|
-
static forByteStream = (
|
|
42
|
-
byteStream
|
|
43
|
-
context: PDFContext,
|
|
44
|
-
capNumbers = false,
|
|
45
|
-
) => new PDFObjectParser(byteStream, context, capNumbers);
|
|
38
|
+
static forByteStream = (byteStream: ByteStream, context: PDFContext, capNumbers = false) =>
|
|
39
|
+
new PDFObjectParser(byteStream, context, capNumbers);
|
|
46
40
|
|
|
47
41
|
protected readonly context: PDFContext;
|
|
48
42
|
private readonly cryptoFactory?: CipherTransformFactory;
|
|
@@ -68,10 +62,7 @@ class PDFObjectParser extends BaseParser {
|
|
|
68
62
|
|
|
69
63
|
const byte = this.bytes.peek();
|
|
70
64
|
|
|
71
|
-
if (
|
|
72
|
-
byte === CharCodes.LessThan &&
|
|
73
|
-
this.bytes.peekAhead(1) === CharCodes.LessThan
|
|
74
|
-
) {
|
|
65
|
+
if (byte === CharCodes.LessThan && this.bytes.peekAhead(1) === CharCodes.LessThan) {
|
|
75
66
|
return this.parseDictOrStream(ref);
|
|
76
67
|
}
|
|
77
68
|
if (byte === CharCodes.LessThan) return this.parseHexString(ref);
|
|
@@ -8,10 +8,8 @@ import PDFObjectParser from './PDFObjectParser';
|
|
|
8
8
|
import { waitForTick } from '../../utils';
|
|
9
9
|
|
|
10
10
|
class PDFObjectStreamParser extends PDFObjectParser {
|
|
11
|
-
static forStream = (
|
|
12
|
-
rawStream
|
|
13
|
-
shouldWaitForTick?: () => boolean,
|
|
14
|
-
) => new PDFObjectStreamParser(rawStream, shouldWaitForTick);
|
|
11
|
+
static forStream = (rawStream: PDFRawStream, shouldWaitForTick?: () => boolean) =>
|
|
12
|
+
new PDFObjectStreamParser(rawStream, shouldWaitForTick);
|
|
15
13
|
|
|
16
14
|
private alreadyParsed: boolean;
|
|
17
15
|
private readonly shouldWaitForTick: () => boolean;
|
|
@@ -32,14 +32,7 @@ class PDFParser extends PDFObjectParser {
|
|
|
32
32
|
throwOnInvalidObject?: boolean,
|
|
33
33
|
capNumbers?: boolean,
|
|
34
34
|
cryptoFactory?: CipherTransformFactory,
|
|
35
|
-
) =>
|
|
36
|
-
new PDFParser(
|
|
37
|
-
pdfBytes,
|
|
38
|
-
objectsPerTick,
|
|
39
|
-
throwOnInvalidObject,
|
|
40
|
-
capNumbers,
|
|
41
|
-
cryptoFactory,
|
|
42
|
-
);
|
|
35
|
+
) => new PDFParser(pdfBytes, objectsPerTick, throwOnInvalidObject, capNumbers, cryptoFactory);
|
|
43
36
|
|
|
44
37
|
private readonly objectsPerTick: number;
|
|
45
38
|
private readonly throwOnInvalidObject: boolean;
|
|
@@ -53,15 +46,10 @@ class PDFParser extends PDFObjectParser {
|
|
|
53
46
|
capNumbers = false,
|
|
54
47
|
cryptoFactory?: CipherTransformFactory,
|
|
55
48
|
) {
|
|
56
|
-
super(
|
|
57
|
-
ByteStream.of(pdfBytes),
|
|
58
|
-
PDFContext.create(),
|
|
59
|
-
capNumbers,
|
|
60
|
-
cryptoFactory,
|
|
61
|
-
);
|
|
49
|
+
super(ByteStream.of(pdfBytes), PDFContext.create(), capNumbers, cryptoFactory);
|
|
62
50
|
this.objectsPerTick = objectsPerTick;
|
|
63
51
|
this.throwOnInvalidObject = throwOnInvalidObject;
|
|
64
|
-
this.context.isDecrypted = !!cryptoFactory?.encryptionKey
|
|
52
|
+
this.context.isDecrypted = !!cryptoFactory?.encryptionKey;
|
|
65
53
|
}
|
|
66
54
|
|
|
67
55
|
async parseDocument(): Promise<PDFContext> {
|
|
@@ -94,8 +82,7 @@ class PDFParser extends PDFObjectParser {
|
|
|
94
82
|
|
|
95
83
|
private maybeRecoverRoot(): void {
|
|
96
84
|
const isValidCatalog = (obj?: PDFObject) =>
|
|
97
|
-
obj instanceof PDFDict &&
|
|
98
|
-
obj.lookup(PDFName.of('Type')) === PDFName.of('Catalog');
|
|
85
|
+
obj instanceof PDFDict && obj.lookup(PDFName.of('Type')) === PDFName.of('Catalog');
|
|
99
86
|
|
|
100
87
|
const catalog = this.context.lookup(this.context.trailerInfo.Root);
|
|
101
88
|
|
|
@@ -175,10 +162,7 @@ class PDFParser extends PDFObjectParser {
|
|
|
175
162
|
object instanceof PDFRawStream &&
|
|
176
163
|
object.dict.lookup(PDFName.of('Type')) === PDFName.of('ObjStm')
|
|
177
164
|
) {
|
|
178
|
-
await PDFObjectStreamParser.forStream(
|
|
179
|
-
object,
|
|
180
|
-
this.shouldWaitForTick,
|
|
181
|
-
).parseIntoContext();
|
|
165
|
+
await PDFObjectStreamParser.forStream(object, this.shouldWaitForTick).parseIntoContext();
|
|
182
166
|
} else if (
|
|
183
167
|
object instanceof PDFRawStream &&
|
|
184
168
|
object.dict.lookup(PDFName.of('Type')) === PDFName.of('XRef')
|
|
@@ -16,8 +16,7 @@ export interface Entry {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
class PDFXRefStreamParser {
|
|
19
|
-
static forStream = (rawStream: PDFRawStream) =>
|
|
20
|
-
new PDFXRefStreamParser(rawStream);
|
|
19
|
+
static forStream = (rawStream: PDFRawStream) => new PDFXRefStreamParser(rawStream);
|
|
21
20
|
|
|
22
21
|
private alreadyParsed: boolean;
|
|
23
22
|
|