@adnsistemas/pdf-lib 1.18.0 → 2.4.2
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/README.md +71 -36
- package/cjs/api/PDFDocument.d.ts +44 -11
- package/cjs/api/PDFDocument.d.ts.map +1 -1
- package/cjs/api/PDFDocument.js +599 -609
- package/cjs/api/PDFDocument.js.map +1 -1
- package/cjs/api/PDFDocumentOptions.d.ts +4 -2
- package/cjs/api/PDFDocumentOptions.d.ts.map +1 -1
- package/cjs/api/PDFEmbeddedFile.d.ts +9 -4
- package/cjs/api/PDFEmbeddedFile.d.ts.map +1 -1
- package/cjs/api/PDFEmbeddedFile.js +54 -59
- package/cjs/api/PDFEmbeddedFile.js.map +1 -1
- package/cjs/api/PDFEmbeddedPage.d.ts +3 -3
- package/cjs/api/PDFEmbeddedPage.d.ts.map +1 -1
- package/cjs/api/PDFEmbeddedPage.js +35 -46
- package/cjs/api/PDFEmbeddedPage.js.map +1 -1
- package/cjs/api/PDFFont.d.ts +4 -4
- package/cjs/api/PDFFont.d.ts.map +1 -1
- package/cjs/api/PDFFont.js +47 -57
- package/cjs/api/PDFFont.js.map +1 -1
- package/cjs/api/PDFImage.d.ts +4 -4
- package/cjs/api/PDFImage.d.ts.map +1 -1
- package/cjs/api/PDFImage.js +50 -62
- package/cjs/api/PDFImage.js.map +1 -1
- package/cjs/api/PDFJavaScript.d.ts +4 -4
- package/cjs/api/PDFJavaScript.d.ts.map +1 -1
- package/cjs/api/PDFJavaScript.js +38 -50
- package/cjs/api/PDFJavaScript.js.map +1 -1
- package/cjs/api/PDFPage.d.ts +33 -9
- package/cjs/api/PDFPage.d.ts.map +1 -1
- package/cjs/api/PDFPage.js +478 -431
- package/cjs/api/PDFPage.js.map +1 -1
- package/cjs/api/PDFPageOptions.d.ts +35 -12
- package/cjs/api/PDFPageOptions.d.ts.map +1 -1
- package/cjs/api/PDFPageOptions.js.map +1 -1
- package/cjs/api/PDFSvg.d.ts +7 -0
- package/cjs/api/PDFSvg.d.ts.map +1 -0
- package/cjs/api/PDFSvg.js +10 -0
- package/cjs/api/PDFSvg.js.map +1 -0
- package/cjs/api/colors.d.ts +6 -2
- package/cjs/api/colors.d.ts.map +1 -1
- package/cjs/api/colors.js +51 -43
- package/cjs/api/colors.js.map +1 -1
- package/cjs/api/errors.js +73 -130
- package/cjs/api/errors.js.map +1 -1
- package/cjs/api/form/PDFButton.d.ts +8 -8
- package/cjs/api/form/PDFButton.d.ts.map +1 -1
- package/cjs/api/form/PDFButton.js +68 -72
- package/cjs/api/form/PDFButton.js.map +1 -1
- package/cjs/api/form/PDFCheckBox.d.ts +5 -5
- package/cjs/api/form/PDFCheckBox.d.ts.map +1 -1
- package/cjs/api/form/PDFCheckBox.js +64 -69
- package/cjs/api/form/PDFCheckBox.js.map +1 -1
- package/cjs/api/form/PDFDropdown.d.ts +6 -6
- package/cjs/api/form/PDFDropdown.d.ts.map +1 -1
- package/cjs/api/form/PDFDropdown.js +126 -132
- package/cjs/api/form/PDFDropdown.js.map +1 -1
- package/cjs/api/form/PDFField.d.ts +7 -7
- package/cjs/api/form/PDFField.d.ts.map +1 -1
- package/cjs/api/form/PDFField.js +118 -123
- package/cjs/api/form/PDFField.js.map +1 -1
- package/cjs/api/form/PDFForm.d.ts +11 -11
- package/cjs/api/form/PDFForm.d.ts.map +1 -1
- package/cjs/api/form/PDFForm.js +226 -221
- package/cjs/api/form/PDFForm.js.map +1 -1
- package/cjs/api/form/PDFOptionList.d.ts +6 -6
- package/cjs/api/form/PDFOptionList.d.ts.map +1 -1
- package/cjs/api/form/PDFOptionList.js +115 -121
- package/cjs/api/form/PDFOptionList.js.map +1 -1
- package/cjs/api/form/PDFRadioGroup.d.ts +5 -5
- package/cjs/api/form/PDFRadioGroup.d.ts.map +1 -1
- package/cjs/api/form/PDFRadioGroup.js +98 -101
- package/cjs/api/form/PDFRadioGroup.js.map +1 -1
- package/cjs/api/form/PDFSignature.d.ts +3 -3
- package/cjs/api/form/PDFSignature.d.ts.map +1 -1
- package/cjs/api/form/PDFSignature.js +25 -28
- package/cjs/api/form/PDFSignature.js.map +1 -1
- package/cjs/api/form/PDFTextField.d.ts +8 -8
- package/cjs/api/form/PDFTextField.d.ts.map +1 -1
- package/cjs/api/form/PDFTextField.js +136 -141
- package/cjs/api/form/PDFTextField.js.map +1 -1
- package/cjs/api/form/appearances.d.ts +21 -21
- package/cjs/api/form/appearances.d.ts.map +1 -1
- package/cjs/api/form/appearances.js +257 -219
- package/cjs/api/form/appearances.js.map +1 -1
- package/cjs/api/form/index.d.ts +10 -10
- package/cjs/api/form/index.d.ts.map +1 -1
- package/cjs/api/form/index.js +11 -10
- package/cjs/api/form/index.js.map +1 -1
- package/cjs/api/image/index.d.ts +1 -1
- package/cjs/api/image/index.d.ts.map +1 -1
- package/cjs/api/image/index.js +1 -1
- package/cjs/api/image/index.js.map +1 -1
- package/cjs/api/index.d.ts +22 -21
- package/cjs/api/index.d.ts.map +1 -1
- package/cjs/api/index.js +30 -27
- package/cjs/api/index.js.map +1 -1
- package/cjs/api/objects.d.ts +1 -1
- package/cjs/api/objects.d.ts.map +1 -1
- package/cjs/api/objects.js +7 -10
- package/cjs/api/objects.js.map +1 -1
- package/cjs/api/operations.d.ts +27 -13
- package/cjs/api/operations.d.ts.map +1 -1
- package/cjs/api/operations.js +373 -363
- package/cjs/api/operations.js.map +1 -1
- package/cjs/api/operators.d.ts +6 -1
- package/cjs/api/operators.d.ts.map +1 -1
- package/cjs/api/operators.js +169 -183
- package/cjs/api/operators.js.map +1 -1
- package/cjs/api/rotations.d.ts +2 -2
- package/cjs/api/rotations.d.ts.map +1 -1
- package/cjs/api/rotations.js +30 -30
- package/cjs/api/rotations.js.map +1 -1
- package/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts +1 -1
- package/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts.map +1 -1
- package/cjs/api/snapshot/DefaultDocumentSnapshot.js +13 -14
- package/cjs/api/snapshot/DefaultDocumentSnapshot.js.map +1 -1
- package/cjs/api/snapshot/DocumentSnapshot.d.ts +1 -1
- package/cjs/api/snapshot/DocumentSnapshot.d.ts.map +1 -1
- package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
- package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
- package/cjs/api/snapshot/IncrementalDocumentSnapshot.js +17 -22
- package/cjs/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
- package/cjs/api/snapshot/index.js +1 -1
- package/cjs/api/svg.d.ts +76 -0
- package/cjs/api/svg.d.ts.map +1 -0
- package/cjs/api/svg.js +749 -0
- package/cjs/api/svg.js.map +1 -0
- package/cjs/api/svgPath.d.ts +1 -1
- package/cjs/api/svgPath.d.ts.map +1 -1
- package/cjs/api/svgPath.js +115 -118
- package/cjs/api/svgPath.js.map +1 -1
- package/cjs/api/text/index.d.ts +2 -2
- package/cjs/api/text/index.d.ts.map +1 -1
- package/cjs/api/text/index.js +1 -1
- package/cjs/api/text/index.js.map +1 -1
- package/cjs/api/text/layout.d.ts +3 -3
- package/cjs/api/text/layout.d.ts.map +1 -1
- package/cjs/api/text/layout.js +87 -88
- package/cjs/api/text/layout.js.map +1 -1
- package/cjs/core/PDFContext.d.ts +39 -19
- package/cjs/core/PDFContext.d.ts.map +1 -1
- package/cjs/core/PDFContext.js +131 -103
- package/cjs/core/PDFContext.js.map +1 -1
- package/cjs/core/PDFObjectCopier.d.ts +2 -2
- package/cjs/core/PDFObjectCopier.d.ts.map +1 -1
- package/cjs/core/PDFObjectCopier.js +58 -62
- package/cjs/core/PDFObjectCopier.js.map +1 -1
- package/cjs/core/acroform/PDFAcroButton.d.ts +7 -7
- package/cjs/core/acroform/PDFAcroButton.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroButton.js +42 -47
- package/cjs/core/acroform/PDFAcroButton.js.map +1 -1
- package/cjs/core/acroform/PDFAcroCheckBox.d.ts +5 -5
- package/cjs/core/acroform/PDFAcroCheckBox.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroCheckBox.js +28 -35
- package/cjs/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/cjs/core/acroform/PDFAcroChoice.d.ts +4 -4
- package/cjs/core/acroform/PDFAcroChoice.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroChoice.js +47 -60
- package/cjs/core/acroform/PDFAcroChoice.js.map +1 -1
- package/cjs/core/acroform/PDFAcroComboBox.d.ts +4 -4
- package/cjs/core/acroform/PDFAcroComboBox.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroComboBox.js +15 -22
- package/cjs/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/cjs/core/acroform/PDFAcroField.d.ts +8 -8
- package/cjs/core/acroform/PDFAcroField.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroField.js +80 -81
- package/cjs/core/acroform/PDFAcroField.js.map +1 -1
- package/cjs/core/acroform/PDFAcroForm.d.ts +5 -5
- package/cjs/core/acroform/PDFAcroForm.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroForm.js +46 -47
- package/cjs/core/acroform/PDFAcroForm.js.map +1 -1
- package/cjs/core/acroform/PDFAcroListBox.d.ts +4 -4
- package/cjs/core/acroform/PDFAcroListBox.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroListBox.js +13 -20
- package/cjs/core/acroform/PDFAcroListBox.js.map +1 -1
- package/cjs/core/acroform/PDFAcroNonTerminal.d.ts +4 -4
- package/cjs/core/acroform/PDFAcroNonTerminal.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroNonTerminal.js +18 -25
- package/cjs/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/cjs/core/acroform/PDFAcroPushButton.d.ts +4 -4
- package/cjs/core/acroform/PDFAcroPushButton.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroPushButton.js +15 -22
- package/cjs/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/cjs/core/acroform/PDFAcroRadioButton.d.ts +5 -5
- package/cjs/core/acroform/PDFAcroRadioButton.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroRadioButton.js +33 -40
- package/cjs/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/cjs/core/acroform/PDFAcroSignature.d.ts +3 -3
- package/cjs/core/acroform/PDFAcroSignature.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroSignature.js +5 -12
- package/cjs/core/acroform/PDFAcroSignature.js.map +1 -1
- package/cjs/core/acroform/PDFAcroTerminal.d.ts +5 -5
- package/cjs/core/acroform/PDFAcroTerminal.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroTerminal.js +28 -35
- package/cjs/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/cjs/core/acroform/PDFAcroText.d.ts +7 -7
- package/cjs/core/acroform/PDFAcroText.d.ts.map +1 -1
- package/cjs/core/acroform/PDFAcroText.js +40 -45
- package/cjs/core/acroform/PDFAcroText.js.map +1 -1
- package/cjs/core/acroform/flags.js +1 -1
- package/cjs/core/acroform/flags.js.map +1 -1
- package/cjs/core/acroform/index.d.ts +15 -15
- package/cjs/core/acroform/index.d.ts.map +1 -1
- package/cjs/core/acroform/index.js +15 -14
- package/cjs/core/acroform/index.js.map +1 -1
- package/cjs/core/acroform/utils.d.ts +5 -5
- package/cjs/core/acroform/utils.d.ts.map +1 -1
- package/cjs/core/acroform/utils.js +48 -48
- package/cjs/core/acroform/utils.js.map +1 -1
- package/cjs/core/annotation/AppearanceCharacteristics.d.ts +5 -5
- package/cjs/core/annotation/AppearanceCharacteristics.d.ts.map +1 -1
- package/cjs/core/annotation/AppearanceCharacteristics.js +61 -64
- package/cjs/core/annotation/AppearanceCharacteristics.js.map +1 -1
- package/cjs/core/annotation/BorderStyle.d.ts +2 -2
- package/cjs/core/annotation/BorderStyle.d.ts.map +1 -1
- package/cjs/core/annotation/BorderStyle.js +15 -16
- package/cjs/core/annotation/BorderStyle.js.map +1 -1
- package/cjs/core/annotation/PDFAnnotation.d.ts +6 -6
- package/cjs/core/annotation/PDFAnnotation.d.ts.map +1 -1
- package/cjs/core/annotation/PDFAnnotation.js +76 -77
- package/cjs/core/annotation/PDFAnnotation.js.map +1 -1
- package/cjs/core/annotation/PDFWidgetAnnotation.d.ts +9 -9
- package/cjs/core/annotation/PDFWidgetAnnotation.d.ts.map +1 -1
- package/cjs/core/annotation/PDFWidgetAnnotation.js +60 -67
- package/cjs/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/cjs/core/annotation/flags.js +1 -1
- package/cjs/core/annotation/flags.js.map +1 -1
- package/cjs/core/annotation/index.d.ts +4 -4
- package/cjs/core/annotation/index.d.ts.map +1 -1
- package/cjs/core/annotation/index.js +5 -4
- package/cjs/core/annotation/index.js.map +1 -1
- package/cjs/core/crypto.d.ts +96 -0
- package/cjs/core/crypto.d.ts.map +1 -0
- package/cjs/core/crypto.js +1623 -0
- package/cjs/core/crypto.js.map +1 -0
- package/cjs/core/document/PDFCrossRefSection.d.ts +1 -1
- package/cjs/core/document/PDFCrossRefSection.d.ts.map +1 -1
- package/cjs/core/document/PDFCrossRefSection.js +62 -65
- package/cjs/core/document/PDFCrossRefSection.js.map +1 -1
- package/cjs/core/document/PDFHeader.d.ts +1 -0
- package/cjs/core/document/PDFHeader.d.ts.map +1 -1
- package/cjs/core/document/PDFHeader.js +21 -21
- package/cjs/core/document/PDFHeader.js.map +1 -1
- package/cjs/core/document/PDFTrailer.js +16 -19
- package/cjs/core/document/PDFTrailer.js.map +1 -1
- package/cjs/core/document/PDFTrailerDict.d.ts +1 -1
- package/cjs/core/document/PDFTrailerDict.d.ts.map +1 -1
- package/cjs/core/document/PDFTrailerDict.js +14 -15
- package/cjs/core/document/PDFTrailerDict.js.map +1 -1
- package/cjs/core/embedders/CMap.d.ts +2 -2
- package/cjs/core/embedders/CMap.d.ts.map +1 -1
- package/cjs/core/embedders/CMap.js +41 -28
- package/cjs/core/embedders/CMap.js.map +1 -1
- package/cjs/core/embedders/CustomFontEmbedder.d.ts +5 -5
- package/cjs/core/embedders/CustomFontEmbedder.d.ts.map +1 -1
- package/cjs/core/embedders/CustomFontEmbedder.js +133 -178
- package/cjs/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/cjs/core/embedders/CustomFontSubsetEmbedder.d.ts +3 -3
- package/cjs/core/embedders/CustomFontSubsetEmbedder.d.ts.map +1 -1
- package/cjs/core/embedders/CustomFontSubsetEmbedder.js +38 -49
- package/cjs/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/cjs/core/embedders/FileEmbedder.d.ts +3 -2
- package/cjs/core/embedders/FileEmbedder.d.ts.map +1 -1
- package/cjs/core/embedders/FileEmbedder.js +44 -48
- package/cjs/core/embedders/FileEmbedder.js.map +1 -1
- package/cjs/core/embedders/FontFlags.d.ts +1 -1
- package/cjs/core/embedders/FontFlags.d.ts.map +1 -1
- package/cjs/core/embedders/FontFlags.js +7 -6
- package/cjs/core/embedders/FontFlags.js.map +1 -1
- package/cjs/core/embedders/JavaScriptEmbedder.d.ts +2 -2
- package/cjs/core/embedders/JavaScriptEmbedder.d.ts.map +1 -1
- package/cjs/core/embedders/JavaScriptEmbedder.js +22 -27
- package/cjs/core/embedders/JavaScriptEmbedder.js.map +1 -1
- package/cjs/core/embedders/JpegEmbedder.d.ts +2 -2
- package/cjs/core/embedders/JpegEmbedder.d.ts.map +1 -1
- package/cjs/core/embedders/JpegEmbedder.js +66 -73
- package/cjs/core/embedders/JpegEmbedder.js.map +1 -1
- package/cjs/core/embedders/PDFPageEmbedder.d.ts +4 -4
- package/cjs/core/embedders/PDFPageEmbedder.d.ts.map +1 -1
- package/cjs/core/embedders/PDFPageEmbedder.js +64 -65
- package/cjs/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/cjs/core/embedders/PngEmbedder.d.ts +2 -2
- package/cjs/core/embedders/PngEmbedder.d.ts.map +1 -1
- package/cjs/core/embedders/PngEmbedder.js +33 -41
- package/cjs/core/embedders/PngEmbedder.js.map +1 -1
- package/cjs/core/embedders/StandardFontEmbedder.d.ts +4 -4
- package/cjs/core/embedders/StandardFontEmbedder.d.ts.map +1 -1
- package/cjs/core/embedders/StandardFontEmbedder.js +53 -51
- package/cjs/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/cjs/core/errors.d.ts +1 -1
- package/cjs/core/errors.d.ts.map +1 -1
- package/cjs/core/errors.js +147 -260
- package/cjs/core/errors.js.map +1 -1
- package/cjs/core/index.d.ts +48 -47
- package/cjs/core/index.d.ts.map +1 -1
- package/cjs/core/index.js +47 -44
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interactive/ViewerPreferences.d.ts +8 -8
- package/cjs/core/interactive/ViewerPreferences.d.ts.map +1 -1
- package/cjs/core/interactive/ViewerPreferences.js +135 -138
- package/cjs/core/interactive/ViewerPreferences.js.map +1 -1
- package/cjs/core/objects/PDFArray.d.ts +12 -12
- package/cjs/core/objects/PDFArray.d.ts.map +1 -1
- package/cjs/core/objects/PDFArray.js +72 -81
- package/cjs/core/objects/PDFArray.js.map +1 -1
- package/cjs/core/objects/PDFBool.d.ts +1 -1
- package/cjs/core/objects/PDFBool.d.ts.map +1 -1
- package/cjs/core/objects/PDFBool.js +22 -26
- package/cjs/core/objects/PDFBool.js.map +1 -1
- package/cjs/core/objects/PDFDict.d.ts +13 -12
- package/cjs/core/objects/PDFDict.d.ts.map +1 -1
- package/cjs/core/objects/PDFDict.js +76 -88
- package/cjs/core/objects/PDFDict.js.map +1 -1
- package/cjs/core/objects/PDFHexString.d.ts +2 -1
- package/cjs/core/objects/PDFHexString.d.ts.map +1 -1
- package/cjs/core/objects/PDFHexString.js +50 -52
- package/cjs/core/objects/PDFHexString.js.map +1 -1
- package/cjs/core/objects/PDFInvalidObject.d.ts +1 -1
- package/cjs/core/objects/PDFInvalidObject.d.ts.map +1 -1
- package/cjs/core/objects/PDFInvalidObject.js +19 -22
- package/cjs/core/objects/PDFInvalidObject.js.map +1 -1
- package/cjs/core/objects/PDFName.d.ts +1 -1
- package/cjs/core/objects/PDFName.d.ts.map +1 -1
- package/cjs/core/objects/PDFName.js +84 -92
- package/cjs/core/objects/PDFName.js.map +1 -1
- package/cjs/core/objects/PDFNull.d.ts +1 -1
- package/cjs/core/objects/PDFNull.d.ts.map +1 -1
- package/cjs/core/objects/PDFNull.js +15 -20
- package/cjs/core/objects/PDFNull.js.map +1 -1
- package/cjs/core/objects/PDFNumber.d.ts +1 -1
- package/cjs/core/objects/PDFNumber.d.ts.map +1 -1
- package/cjs/core/objects/PDFNumber.js +23 -26
- package/cjs/core/objects/PDFNumber.js.map +1 -1
- package/cjs/core/objects/PDFObject.d.ts +1 -1
- package/cjs/core/objects/PDFObject.d.ts.map +1 -1
- package/cjs/core/objects/PDFObject.js +13 -16
- package/cjs/core/objects/PDFObject.js.map +1 -1
- package/cjs/core/objects/PDFRawStream.d.ts +8 -5
- package/cjs/core/objects/PDFRawStream.d.ts.map +1 -1
- package/cjs/core/objects/PDFRawStream.js +24 -25
- package/cjs/core/objects/PDFRawStream.js.map +1 -1
- package/cjs/core/objects/PDFRef.d.ts +1 -1
- package/cjs/core/objects/PDFRef.d.ts.map +1 -1
- package/cjs/core/objects/PDFRef.js +31 -36
- package/cjs/core/objects/PDFRef.js.map +1 -1
- package/cjs/core/objects/PDFStream.d.ts +4 -3
- package/cjs/core/objects/PDFStream.d.ts.map +1 -1
- package/cjs/core/objects/PDFStream.js +35 -35
- package/cjs/core/objects/PDFStream.js.map +1 -1
- package/cjs/core/objects/PDFString.d.ts +1 -1
- package/cjs/core/objects/PDFString.d.ts.map +1 -1
- package/cjs/core/objects/PDFString.js +55 -58
- package/cjs/core/objects/PDFString.js.map +1 -1
- package/cjs/core/operators/PDFOperator.d.ts +9 -9
- package/cjs/core/operators/PDFOperator.d.ts.map +1 -1
- package/cjs/core/operators/PDFOperator.js +29 -32
- package/cjs/core/operators/PDFOperator.js.map +1 -1
- package/cjs/core/parser/BaseParser.d.ts +1 -1
- package/cjs/core/parser/BaseParser.d.ts.map +1 -1
- package/cjs/core/parser/BaseParser.js +40 -42
- package/cjs/core/parser/BaseParser.js.map +1 -1
- package/cjs/core/parser/ByteStream.d.ts +1 -1
- package/cjs/core/parser/ByteStream.d.ts.map +1 -1
- package/cjs/core/parser/ByteStream.js +30 -33
- package/cjs/core/parser/ByteStream.js.map +1 -1
- package/cjs/core/parser/PDFObjectParser.d.ts +23 -21
- package/cjs/core/parser/PDFObjectParser.d.ts.map +1 -1
- package/cjs/core/parser/PDFObjectParser.js +96 -88
- package/cjs/core/parser/PDFObjectParser.js.map +1 -1
- package/cjs/core/parser/PDFObjectStreamParser.d.ts +3 -3
- package/cjs/core/parser/PDFObjectStreamParser.d.ts.map +1 -1
- package/cjs/core/parser/PDFObjectStreamParser.js +42 -60
- package/cjs/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/cjs/core/parser/PDFParser.d.ts +6 -4
- package/cjs/core/parser/PDFParser.d.ts.map +1 -1
- package/cjs/core/parser/PDFParser.js +169 -217
- package/cjs/core/parser/PDFParser.js.map +1 -1
- package/cjs/core/parser/PDFXRefStreamParser.d.ts +2 -2
- package/cjs/core/parser/PDFXRefStreamParser.d.ts.map +1 -1
- package/cjs/core/parser/PDFXRefStreamParser.js +38 -41
- package/cjs/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/cjs/core/security/PDFSecurity.d.ts +75 -0
- package/cjs/core/security/PDFSecurity.d.ts.map +1 -0
- package/cjs/core/security/PDFSecurity.js +406 -0
- package/cjs/core/security/PDFSecurity.js.map +1 -0
- package/cjs/core/streams/Ascii85Stream.d.ts +2 -2
- package/cjs/core/streams/Ascii85Stream.d.ts.map +1 -1
- package/cjs/core/streams/Ascii85Stream.js +21 -26
- package/cjs/core/streams/Ascii85Stream.js.map +1 -1
- package/cjs/core/streams/AsciiHexStream.d.ts +2 -2
- package/cjs/core/streams/AsciiHexStream.d.ts.map +1 -1
- package/cjs/core/streams/AsciiHexStream.js +19 -22
- package/cjs/core/streams/AsciiHexStream.js.map +1 -1
- package/cjs/core/streams/DecodeStream.d.ts +1 -1
- package/cjs/core/streams/DecodeStream.d.ts.map +1 -1
- package/cjs/core/streams/DecodeStream.js +54 -61
- package/cjs/core/streams/DecodeStream.js.map +1 -1
- package/cjs/core/streams/DecryptStream.d.ts +13 -0
- package/cjs/core/streams/DecryptStream.d.ts.map +1 -0
- package/cjs/core/streams/DecryptStream.js +39 -0
- package/cjs/core/streams/DecryptStream.js.map +1 -0
- package/cjs/core/streams/FlateStream.d.ts +2 -2
- package/cjs/core/streams/FlateStream.d.ts.map +1 -1
- package/cjs/core/streams/FlateStream.js +82 -84
- package/cjs/core/streams/FlateStream.js.map +1 -1
- package/cjs/core/streams/LZWStream.d.ts +3 -3
- package/cjs/core/streams/LZWStream.d.ts.map +1 -1
- package/cjs/core/streams/LZWStream.js +42 -45
- package/cjs/core/streams/LZWStream.js.map +1 -1
- package/cjs/core/streams/RunLengthStream.d.ts +2 -2
- package/cjs/core/streams/RunLengthStream.d.ts.map +1 -1
- package/cjs/core/streams/RunLengthStream.js +16 -19
- package/cjs/core/streams/RunLengthStream.js.map +1 -1
- package/cjs/core/streams/Stream.js +45 -56
- package/cjs/core/streams/Stream.js.map +1 -1
- package/cjs/core/streams/decode.d.ts +3 -3
- package/cjs/core/streams/decode.d.ts.map +1 -1
- package/cjs/core/streams/decode.js +25 -22
- package/cjs/core/streams/decode.js.map +1 -1
- package/cjs/core/structures/PDFCatalog.d.ts +5 -5
- package/cjs/core/structures/PDFCatalog.d.ts.map +1 -1
- package/cjs/core/structures/PDFCatalog.js +40 -47
- package/cjs/core/structures/PDFCatalog.js.map +1 -1
- package/cjs/core/structures/PDFContentStream.d.ts +4 -4
- package/cjs/core/structures/PDFContentStream.d.ts.map +1 -1
- package/cjs/core/structures/PDFContentStream.js +31 -43
- package/cjs/core/structures/PDFContentStream.js.map +1 -1
- package/cjs/core/structures/PDFCrossRefStream.d.ts +6 -6
- package/cjs/core/structures/PDFCrossRefStream.d.ts.map +1 -1
- package/cjs/core/structures/PDFCrossRefStream.js +92 -100
- package/cjs/core/structures/PDFCrossRefStream.js.map +1 -1
- package/cjs/core/structures/PDFFlateStream.d.ts +5 -4
- package/cjs/core/structures/PDFFlateStream.d.ts.map +1 -1
- package/cjs/core/structures/PDFFlateStream.js +24 -24
- package/cjs/core/structures/PDFFlateStream.js.map +1 -1
- package/cjs/core/structures/PDFObjectStream.d.ts +5 -5
- package/cjs/core/structures/PDFObjectStream.d.ts.map +1 -1
- package/cjs/core/structures/PDFObjectStream.js +49 -56
- package/cjs/core/structures/PDFObjectStream.js.map +1 -1
- package/cjs/core/structures/PDFPageLeaf.d.ts +9 -9
- package/cjs/core/structures/PDFPageLeaf.d.ts.map +1 -1
- package/cjs/core/structures/PDFPageLeaf.js +126 -133
- package/cjs/core/structures/PDFPageLeaf.js.map +1 -1
- package/cjs/core/structures/PDFPageTree.d.ts +8 -8
- package/cjs/core/structures/PDFPageTree.d.ts.map +1 -1
- package/cjs/core/structures/PDFPageTree.js +67 -75
- package/cjs/core/structures/PDFPageTree.js.map +1 -1
- package/cjs/core/syntax/Delimiters.js +2 -2
- package/cjs/core/syntax/Delimiters.js.map +1 -1
- package/cjs/core/syntax/Irregular.js +5 -5
- package/cjs/core/syntax/Irregular.js.map +1 -1
- package/cjs/core/syntax/Keywords.d.ts +1 -1
- package/cjs/core/syntax/Keywords.d.ts.map +1 -1
- package/cjs/core/syntax/Keywords.js +14 -14
- package/cjs/core/syntax/Keywords.js.map +1 -1
- package/cjs/core/syntax/Numeric.js +3 -3
- package/cjs/core/syntax/Numeric.js.map +1 -1
- package/cjs/core/syntax/Whitespace.js +2 -2
- package/cjs/core/syntax/Whitespace.js.map +1 -1
- package/cjs/core/writers/PDFStreamWriter.d.ts +7 -7
- package/cjs/core/writers/PDFStreamWriter.d.ts.map +1 -1
- package/cjs/core/writers/PDFStreamWriter.js +102 -126
- package/cjs/core/writers/PDFStreamWriter.js.map +1 -1
- package/cjs/core/writers/PDFWriter.d.ts +15 -10
- package/cjs/core/writers/PDFWriter.d.ts.map +1 -1
- package/cjs/core/writers/PDFWriter.js +116 -142
- package/cjs/core/writers/PDFWriter.js.map +1 -1
- package/cjs/index.d.ts +4 -4
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +5 -5
- package/cjs/index.js.map +1 -1
- package/cjs/types/index.d.ts +25 -1
- package/cjs/types/index.d.ts.map +1 -1
- package/cjs/types/matrix.d.ts +8 -1
- package/cjs/types/matrix.d.ts.map +1 -1
- package/cjs/utils/Cache.js +10 -11
- package/cjs/utils/Cache.js.map +1 -1
- package/cjs/utils/arrays.d.ts +3 -1
- package/cjs/utils/arrays.d.ts.map +1 -1
- package/cjs/utils/arrays.js +97 -64
- package/cjs/utils/arrays.js.map +1 -1
- package/cjs/utils/async.d.ts.map +1 -1
- package/cjs/utils/async.js +4 -5
- package/cjs/utils/async.js.map +1 -1
- package/cjs/utils/base64.d.ts.map +1 -1
- package/cjs/utils/base64.js +29 -26
- package/cjs/utils/base64.js.map +1 -1
- package/cjs/utils/elements/Arc.d.ts +23 -0
- package/cjs/utils/elements/Arc.d.ts.map +1 -0
- package/cjs/utils/elements/Arc.js +78 -0
- package/cjs/utils/elements/Arc.js.map +1 -0
- package/cjs/utils/elements/Circle.d.ts +15 -0
- package/cjs/utils/elements/Circle.d.ts.map +1 -0
- package/cjs/utils/elements/Circle.js +41 -0
- package/cjs/utils/elements/Circle.js.map +1 -0
- package/cjs/utils/elements/Ellipse.d.ts +21 -0
- package/cjs/utils/elements/Ellipse.d.ts.map +1 -0
- package/cjs/utils/elements/Ellipse.js +91 -0
- package/cjs/utils/elements/Ellipse.js.map +1 -0
- package/cjs/utils/elements/GraphElement.d.ts +7 -0
- package/cjs/utils/elements/GraphElement.d.ts.map +1 -0
- package/cjs/utils/elements/GraphElement.js +11 -0
- package/cjs/utils/elements/GraphElement.js.map +1 -0
- package/cjs/utils/elements/Line.d.ts +24 -0
- package/cjs/utils/elements/Line.d.ts.map +1 -0
- package/cjs/utils/elements/Line.js +72 -0
- package/cjs/utils/elements/Line.js.map +1 -0
- package/cjs/utils/elements/Plot.d.ts +12 -0
- package/cjs/utils/elements/Plot.d.ts.map +1 -0
- package/cjs/utils/elements/Plot.js +46 -0
- package/cjs/utils/elements/Plot.js.map +1 -0
- package/cjs/utils/elements/Point.d.ts +19 -0
- package/cjs/utils/elements/Point.d.ts.map +1 -0
- package/cjs/utils/elements/Point.js +32 -0
- package/cjs/utils/elements/Point.js.map +1 -0
- package/cjs/utils/elements/Rectangle.d.ts +22 -0
- package/cjs/utils/elements/Rectangle.d.ts.map +1 -0
- package/cjs/utils/elements/Rectangle.js +58 -0
- package/cjs/utils/elements/Rectangle.js.map +1 -0
- package/cjs/utils/elements/Segment.d.ts +20 -0
- package/cjs/utils/elements/Segment.d.ts.map +1 -0
- package/cjs/utils/elements/Segment.js +80 -0
- package/cjs/utils/elements/Segment.js.map +1 -0
- package/cjs/utils/elements/index.d.ts +10 -0
- package/cjs/utils/elements/index.d.ts.map +1 -0
- package/cjs/utils/elements/index.js +25 -0
- package/cjs/utils/elements/index.js.map +1 -0
- package/cjs/utils/errors.js +2 -1
- package/cjs/utils/errors.js.map +1 -1
- package/cjs/utils/index.d.ts +11 -11
- package/cjs/utils/index.d.ts.map +1 -1
- package/cjs/utils/index.js +3 -2
- package/cjs/utils/index.js.map +1 -1
- package/cjs/utils/intersections.d.ts +10 -0
- package/cjs/utils/intersections.d.ts.map +1 -0
- package/cjs/utils/intersections.js +253 -0
- package/cjs/utils/intersections.js.map +1 -0
- package/cjs/utils/maths.d.ts +46 -0
- package/cjs/utils/maths.d.ts.map +1 -0
- package/cjs/utils/maths.js +89 -0
- package/cjs/utils/maths.js.map +1 -0
- package/cjs/utils/numbers.js +12 -9
- package/cjs/utils/numbers.js.map +1 -1
- package/cjs/utils/objects.js +8 -7
- package/cjs/utils/objects.js.map +1 -1
- package/cjs/utils/pdfDocEncoding.js +52 -51
- package/cjs/utils/pdfDocEncoding.js.map +1 -1
- package/cjs/utils/png.js +22 -23
- package/cjs/utils/png.js.map +1 -1
- package/cjs/utils/rng.js +7 -8
- package/cjs/utils/rng.js.map +1 -1
- package/cjs/utils/strings.d.ts +1 -0
- package/cjs/utils/strings.d.ts.map +1 -1
- package/cjs/utils/strings.js +88 -70
- package/cjs/utils/strings.js.map +1 -1
- package/cjs/utils/unicode.js +51 -64
- package/cjs/utils/unicode.js.map +1 -1
- package/cjs/utils/validators.d.ts +2 -2
- package/cjs/utils/validators.d.ts.map +1 -1
- package/cjs/utils/validators.js +84 -67
- package/cjs/utils/validators.js.map +1 -1
- package/dist/pdf-lib.esm.js +16231 -31855
- package/dist/pdf-lib.esm.js.map +1 -1
- package/dist/pdf-lib.esm.min.js +16 -13
- package/dist/pdf-lib.esm.min.js.map +1 -1
- package/dist/pdf-lib.js +16370 -32042
- package/dist/pdf-lib.js.map +1 -1
- package/dist/pdf-lib.min.js +16 -13
- package/dist/pdf-lib.min.js.map +1 -1
- package/es/api/Embeddable.js +1 -0
- package/es/api/PDFDocument.d.ts +44 -11
- package/es/api/PDFDocument.d.ts.map +1 -1
- package/es/api/PDFDocument.js +580 -591
- package/es/api/PDFDocument.js.map +1 -1
- package/es/api/PDFDocumentOptions.d.ts +4 -2
- package/es/api/PDFDocumentOptions.d.ts.map +1 -1
- package/es/api/PDFEmbeddedFile.d.ts +9 -4
- package/es/api/PDFEmbeddedFile.d.ts.map +1 -1
- package/es/api/PDFEmbeddedFile.js +54 -60
- package/es/api/PDFEmbeddedFile.js.map +1 -1
- package/es/api/PDFEmbeddedPage.d.ts +3 -3
- package/es/api/PDFEmbeddedPage.d.ts.map +1 -1
- package/es/api/PDFEmbeddedPage.js +31 -43
- package/es/api/PDFEmbeddedPage.js.map +1 -1
- package/es/api/PDFFont.d.ts +4 -4
- package/es/api/PDFFont.d.ts.map +1 -1
- package/es/api/PDFFont.js +38 -49
- package/es/api/PDFFont.js.map +1 -1
- package/es/api/PDFImage.d.ts +4 -4
- package/es/api/PDFImage.d.ts.map +1 -1
- package/es/api/PDFImage.js +44 -57
- package/es/api/PDFImage.js.map +1 -1
- package/es/api/PDFJavaScript.d.ts +4 -4
- package/es/api/PDFJavaScript.d.ts.map +1 -1
- package/es/api/PDFJavaScript.js +38 -51
- package/es/api/PDFJavaScript.js.map +1 -1
- package/es/api/PDFPage.d.ts +33 -9
- package/es/api/PDFPage.d.ts.map +1 -1
- package/es/api/PDFPage.js +311 -266
- package/es/api/PDFPage.js.map +1 -1
- package/es/api/PDFPageOptions.d.ts +35 -12
- package/es/api/PDFPageOptions.d.ts.map +1 -1
- package/es/api/PDFPageOptions.js.map +1 -1
- package/es/api/PDFSvg.d.ts +7 -0
- package/es/api/PDFSvg.d.ts.map +1 -0
- package/es/api/PDFSvg.js +7 -0
- package/es/api/PDFSvg.js.map +1 -0
- package/es/api/colors.d.ts +6 -2
- package/es/api/colors.d.ts.map +1 -1
- package/es/api/colors.js +33 -34
- package/es/api/colors.js.map +1 -1
- package/es/api/errors.js +73 -144
- package/es/api/errors.js.map +1 -1
- package/es/api/form/PDFButton.d.ts +8 -8
- package/es/api/form/PDFButton.d.ts.map +1 -1
- package/es/api/form/PDFButton.js +56 -62
- package/es/api/form/PDFButton.js.map +1 -1
- package/es/api/form/PDFCheckBox.d.ts +5 -5
- package/es/api/form/PDFCheckBox.d.ts.map +1 -1
- package/es/api/form/PDFCheckBox.js +55 -62
- package/es/api/form/PDFCheckBox.js.map +1 -1
- package/es/api/form/PDFDropdown.d.ts +6 -6
- package/es/api/form/PDFDropdown.d.ts.map +1 -1
- package/es/api/form/PDFDropdown.js +110 -118
- package/es/api/form/PDFDropdown.js.map +1 -1
- package/es/api/form/PDFField.d.ts +7 -7
- package/es/api/form/PDFField.d.ts.map +1 -1
- package/es/api/form/PDFField.js +98 -106
- package/es/api/form/PDFField.js.map +1 -1
- package/es/api/form/PDFForm.d.ts +11 -11
- package/es/api/form/PDFForm.d.ts.map +1 -1
- package/es/api/form/PDFForm.js +203 -200
- package/es/api/form/PDFForm.js.map +1 -1
- package/es/api/form/PDFOptionList.d.ts +6 -6
- package/es/api/form/PDFOptionList.d.ts.map +1 -1
- package/es/api/form/PDFOptionList.js +98 -106
- package/es/api/form/PDFOptionList.js.map +1 -1
- package/es/api/form/PDFRadioGroup.d.ts +5 -5
- package/es/api/form/PDFRadioGroup.d.ts.map +1 -1
- package/es/api/form/PDFRadioGroup.js +86 -91
- package/es/api/form/PDFRadioGroup.js.map +1 -1
- package/es/api/form/PDFSignature.d.ts +3 -3
- package/es/api/form/PDFSignature.d.ts.map +1 -1
- package/es/api/form/PDFSignature.js +23 -28
- package/es/api/form/PDFSignature.js.map +1 -1
- package/es/api/form/PDFTextField.d.ts +8 -8
- package/es/api/form/PDFTextField.d.ts.map +1 -1
- package/es/api/form/PDFTextField.js +121 -128
- package/es/api/form/PDFTextField.js.map +1 -1
- package/es/api/form/appearances.d.ts +21 -21
- package/es/api/form/appearances.d.ts.map +1 -1
- package/es/api/form/appearances.js +245 -214
- package/es/api/form/appearances.js.map +1 -1
- package/es/api/form/index.d.ts +10 -10
- package/es/api/form/index.d.ts.map +1 -1
- package/es/api/form/index.js +10 -10
- package/es/api/form/index.js.map +1 -1
- package/es/api/image/index.d.ts +1 -1
- package/es/api/image/index.d.ts.map +1 -1
- package/es/api/image/index.js +1 -1
- package/es/api/image/index.js.map +1 -1
- package/es/api/index.d.ts +22 -21
- package/es/api/index.d.ts.map +1 -1
- package/es/api/index.js +21 -20
- package/es/api/index.js.map +1 -1
- package/es/api/objects.d.ts +1 -1
- package/es/api/objects.d.ts.map +1 -1
- package/es/api/objects.js +4 -10
- package/es/api/objects.js.map +1 -1
- package/es/api/operations.d.ts +27 -13
- package/es/api/operations.d.ts.map +1 -1
- package/es/api/operations.js +266 -272
- package/es/api/operations.js.map +1 -1
- package/es/api/operators.d.ts +6 -1
- package/es/api/operators.d.ts.map +1 -1
- package/es/api/operators.js +114 -182
- package/es/api/operators.js.map +1 -1
- package/es/api/rotations.d.ts +2 -2
- package/es/api/rotations.d.ts.map +1 -1
- package/es/api/rotations.js +19 -28
- package/es/api/rotations.js.map +1 -1
- package/es/api/sizes.js +1 -1
- package/es/api/sizes.js.map +1 -1
- package/es/api/snapshot/DefaultDocumentSnapshot.d.ts +1 -1
- package/es/api/snapshot/DefaultDocumentSnapshot.d.ts.map +1 -1
- package/es/api/snapshot/DefaultDocumentSnapshot.js +14 -16
- package/es/api/snapshot/DefaultDocumentSnapshot.js.map +1 -1
- package/es/api/snapshot/DocumentSnapshot.d.ts +1 -1
- package/es/api/snapshot/DocumentSnapshot.d.ts.map +1 -1
- package/es/api/snapshot/DocumentSnapshot.js +1 -0
- package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
- package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -1
- package/es/api/snapshot/IncrementalDocumentSnapshot.js +17 -23
- package/es/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -1
- package/es/api/snapshot/index.js +3 -3
- package/es/api/svg.d.ts +76 -0
- package/es/api/svg.d.ts.map +1 -0
- package/es/api/svg.js +742 -0
- package/es/api/svg.js.map +1 -0
- package/es/api/svgPath.d.ts +1 -1
- package/es/api/svgPath.d.ts.map +1 -1
- package/es/api/svgPath.js +104 -108
- package/es/api/svgPath.js.map +1 -1
- package/es/api/text/index.d.ts +2 -2
- package/es/api/text/index.d.ts.map +1 -1
- package/es/api/text/index.js +2 -2
- package/es/api/text/index.js.map +1 -1
- package/es/api/text/layout.d.ts +3 -3
- package/es/api/text/layout.d.ts.map +1 -1
- package/es/api/text/layout.js +84 -88
- package/es/api/text/layout.js.map +1 -1
- package/es/core/PDFContext.d.ts +39 -19
- package/es/core/PDFContext.d.ts.map +1 -1
- package/es/core/PDFContext.js +128 -101
- package/es/core/PDFContext.js.map +1 -1
- package/es/core/PDFObjectCopier.d.ts +2 -2
- package/es/core/PDFObjectCopier.d.ts.map +1 -1
- package/es/core/PDFObjectCopier.js +57 -61
- package/es/core/PDFObjectCopier.js.map +1 -1
- package/es/core/acroform/PDFAcroButton.d.ts +7 -7
- package/es/core/acroform/PDFAcroButton.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroButton.js +41 -47
- package/es/core/acroform/PDFAcroButton.js.map +1 -1
- package/es/core/acroform/PDFAcroCheckBox.d.ts +5 -5
- package/es/core/acroform/PDFAcroCheckBox.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroCheckBox.js +27 -35
- package/es/core/acroform/PDFAcroCheckBox.js.map +1 -1
- package/es/core/acroform/PDFAcroChoice.d.ts +4 -4
- package/es/core/acroform/PDFAcroChoice.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroChoice.js +46 -60
- package/es/core/acroform/PDFAcroChoice.js.map +1 -1
- package/es/core/acroform/PDFAcroComboBox.d.ts +4 -4
- package/es/core/acroform/PDFAcroComboBox.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroComboBox.js +14 -22
- package/es/core/acroform/PDFAcroComboBox.js.map +1 -1
- package/es/core/acroform/PDFAcroField.d.ts +8 -8
- package/es/core/acroform/PDFAcroField.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroField.js +79 -80
- package/es/core/acroform/PDFAcroField.js.map +1 -1
- package/es/core/acroform/PDFAcroForm.d.ts +5 -5
- package/es/core/acroform/PDFAcroForm.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroForm.js +43 -44
- package/es/core/acroform/PDFAcroForm.js.map +1 -1
- package/es/core/acroform/PDFAcroListBox.d.ts +4 -4
- package/es/core/acroform/PDFAcroListBox.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroListBox.js +12 -20
- package/es/core/acroform/PDFAcroListBox.js.map +1 -1
- package/es/core/acroform/PDFAcroNonTerminal.d.ts +4 -4
- package/es/core/acroform/PDFAcroNonTerminal.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroNonTerminal.js +17 -25
- package/es/core/acroform/PDFAcroNonTerminal.js.map +1 -1
- package/es/core/acroform/PDFAcroPushButton.d.ts +4 -4
- package/es/core/acroform/PDFAcroPushButton.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroPushButton.js +14 -22
- package/es/core/acroform/PDFAcroPushButton.js.map +1 -1
- package/es/core/acroform/PDFAcroRadioButton.d.ts +5 -5
- package/es/core/acroform/PDFAcroRadioButton.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroRadioButton.js +32 -40
- package/es/core/acroform/PDFAcroRadioButton.js.map +1 -1
- package/es/core/acroform/PDFAcroSignature.d.ts +3 -3
- package/es/core/acroform/PDFAcroSignature.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroSignature.js +4 -12
- package/es/core/acroform/PDFAcroSignature.js.map +1 -1
- package/es/core/acroform/PDFAcroTerminal.d.ts +5 -5
- package/es/core/acroform/PDFAcroTerminal.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroTerminal.js +27 -35
- package/es/core/acroform/PDFAcroTerminal.js.map +1 -1
- package/es/core/acroform/PDFAcroText.d.ts +7 -7
- package/es/core/acroform/PDFAcroText.d.ts.map +1 -1
- package/es/core/acroform/PDFAcroText.js +39 -45
- package/es/core/acroform/PDFAcroText.js.map +1 -1
- package/es/core/acroform/flags.js +1 -1
- package/es/core/acroform/flags.js.map +1 -1
- package/es/core/acroform/index.d.ts +15 -15
- package/es/core/acroform/index.d.ts.map +1 -1
- package/es/core/acroform/index.js +15 -15
- package/es/core/acroform/index.js.map +1 -1
- package/es/core/acroform/utils.d.ts +5 -5
- package/es/core/acroform/utils.d.ts.map +1 -1
- package/es/core/acroform/utils.js +44 -46
- package/es/core/acroform/utils.js.map +1 -1
- package/es/core/annotation/AppearanceCharacteristics.d.ts +5 -5
- package/es/core/annotation/AppearanceCharacteristics.d.ts.map +1 -1
- package/es/core/annotation/AppearanceCharacteristics.js +60 -63
- package/es/core/annotation/AppearanceCharacteristics.js.map +1 -1
- package/es/core/annotation/BorderStyle.d.ts +2 -2
- package/es/core/annotation/BorderStyle.d.ts.map +1 -1
- package/es/core/annotation/BorderStyle.js +14 -15
- package/es/core/annotation/BorderStyle.js.map +1 -1
- package/es/core/annotation/PDFAnnotation.d.ts +6 -6
- package/es/core/annotation/PDFAnnotation.d.ts.map +1 -1
- package/es/core/annotation/PDFAnnotation.js +75 -76
- package/es/core/annotation/PDFAnnotation.js.map +1 -1
- package/es/core/annotation/PDFWidgetAnnotation.d.ts +9 -9
- package/es/core/annotation/PDFWidgetAnnotation.d.ts.map +1 -1
- package/es/core/annotation/PDFWidgetAnnotation.js +59 -67
- package/es/core/annotation/PDFWidgetAnnotation.js.map +1 -1
- package/es/core/annotation/flags.js +1 -1
- package/es/core/annotation/flags.js.map +1 -1
- package/es/core/annotation/index.d.ts +4 -4
- package/es/core/annotation/index.d.ts.map +1 -1
- package/es/core/annotation/index.js +4 -4
- package/es/core/annotation/index.js.map +1 -1
- package/es/core/crypto.d.ts +96 -0
- package/es/core/crypto.d.ts.map +1 -0
- package/es/core/crypto.js +1609 -0
- package/es/core/crypto.js.map +1 -0
- package/es/core/document/PDFCrossRefSection.d.ts +1 -1
- package/es/core/document/PDFCrossRefSection.d.ts.map +1 -1
- package/es/core/document/PDFCrossRefSection.js +55 -58
- package/es/core/document/PDFCrossRefSection.js.map +1 -1
- package/es/core/document/PDFHeader.d.ts +1 -0
- package/es/core/document/PDFHeader.d.ts.map +1 -1
- package/es/core/document/PDFHeader.js +18 -18
- package/es/core/document/PDFHeader.js.map +1 -1
- package/es/core/document/PDFTrailer.js +14 -17
- package/es/core/document/PDFTrailer.js.map +1 -1
- package/es/core/document/PDFTrailerDict.d.ts +1 -1
- package/es/core/document/PDFTrailerDict.d.ts.map +1 -1
- package/es/core/document/PDFTrailerDict.js +13 -14
- package/es/core/document/PDFTrailerDict.js.map +1 -1
- package/es/core/embedders/CMap.d.ts +2 -2
- package/es/core/embedders/CMap.d.ts.map +1 -1
- package/es/core/embedders/CMap.js +38 -26
- package/es/core/embedders/CMap.js.map +1 -1
- package/es/core/embedders/CustomFontEmbedder.d.ts +5 -5
- package/es/core/embedders/CustomFontEmbedder.d.ts.map +1 -1
- package/es/core/embedders/CustomFontEmbedder.js +132 -177
- package/es/core/embedders/CustomFontEmbedder.js.map +1 -1
- package/es/core/embedders/CustomFontSubsetEmbedder.d.ts +3 -3
- package/es/core/embedders/CustomFontSubsetEmbedder.d.ts.map +1 -1
- package/es/core/embedders/CustomFontSubsetEmbedder.js +37 -48
- package/es/core/embedders/CustomFontSubsetEmbedder.js.map +1 -1
- package/es/core/embedders/FileEmbedder.d.ts +3 -2
- package/es/core/embedders/FileEmbedder.d.ts.map +1 -1
- package/es/core/embedders/FileEmbedder.js +44 -48
- package/es/core/embedders/FileEmbedder.js.map +1 -1
- package/es/core/embedders/FontFlags.d.ts +1 -1
- package/es/core/embedders/FontFlags.d.ts.map +1 -1
- package/es/core/embedders/FontFlags.js +6 -6
- package/es/core/embedders/FontFlags.js.map +1 -1
- package/es/core/embedders/JavaScriptEmbedder.d.ts +2 -2
- package/es/core/embedders/JavaScriptEmbedder.d.ts.map +1 -1
- package/es/core/embedders/JavaScriptEmbedder.js +22 -27
- package/es/core/embedders/JavaScriptEmbedder.js.map +1 -1
- package/es/core/embedders/JpegEmbedder.d.ts +2 -2
- package/es/core/embedders/JpegEmbedder.d.ts.map +1 -1
- package/es/core/embedders/JpegEmbedder.js +66 -73
- package/es/core/embedders/JpegEmbedder.js.map +1 -1
- package/es/core/embedders/PDFPageEmbedder.d.ts +4 -4
- package/es/core/embedders/PDFPageEmbedder.d.ts.map +1 -1
- package/es/core/embedders/PDFPageEmbedder.js +63 -64
- package/es/core/embedders/PDFPageEmbedder.js.map +1 -1
- package/es/core/embedders/PngEmbedder.d.ts +2 -2
- package/es/core/embedders/PngEmbedder.d.ts.map +1 -1
- package/es/core/embedders/PngEmbedder.js +33 -41
- package/es/core/embedders/PngEmbedder.js.map +1 -1
- package/es/core/embedders/StandardFontEmbedder.d.ts +4 -4
- package/es/core/embedders/StandardFontEmbedder.d.ts.map +1 -1
- package/es/core/embedders/StandardFontEmbedder.js +50 -48
- package/es/core/embedders/StandardFontEmbedder.js.map +1 -1
- package/es/core/errors.d.ts +1 -1
- package/es/core/errors.d.ts.map +1 -1
- package/es/core/errors.js +175 -316
- package/es/core/errors.js.map +1 -1
- package/es/core/index.d.ts +48 -47
- package/es/core/index.d.ts.map +1 -1
- package/es/core/index.js +48 -47
- package/es/core/index.js.map +1 -1
- package/es/core/interactive/ViewerPreferences.d.ts +8 -8
- package/es/core/interactive/ViewerPreferences.d.ts.map +1 -1
- package/es/core/interactive/ViewerPreferences.js +127 -130
- package/es/core/interactive/ViewerPreferences.js.map +1 -1
- package/es/core/objects/PDFArray.d.ts +12 -12
- package/es/core/objects/PDFArray.d.ts.map +1 -1
- package/es/core/objects/PDFArray.js +71 -81
- package/es/core/objects/PDFArray.js.map +1 -1
- package/es/core/objects/PDFBool.d.ts +1 -1
- package/es/core/objects/PDFBool.d.ts.map +1 -1
- package/es/core/objects/PDFBool.js +21 -26
- package/es/core/objects/PDFBool.js.map +1 -1
- package/es/core/objects/PDFDict.d.ts +13 -12
- package/es/core/objects/PDFDict.d.ts.map +1 -1
- package/es/core/objects/PDFDict.js +75 -88
- package/es/core/objects/PDFDict.js.map +1 -1
- package/es/core/objects/PDFHexString.d.ts +2 -1
- package/es/core/objects/PDFHexString.d.ts.map +1 -1
- package/es/core/objects/PDFHexString.js +45 -48
- package/es/core/objects/PDFHexString.js.map +1 -1
- package/es/core/objects/PDFInvalidObject.d.ts +1 -1
- package/es/core/objects/PDFInvalidObject.d.ts.map +1 -1
- package/es/core/objects/PDFInvalidObject.js +18 -22
- package/es/core/objects/PDFInvalidObject.js.map +1 -1
- package/es/core/objects/PDFName.d.ts +1 -1
- package/es/core/objects/PDFName.d.ts.map +1 -1
- package/es/core/objects/PDFName.js +83 -92
- package/es/core/objects/PDFName.js.map +1 -1
- package/es/core/objects/PDFNull.d.ts +1 -1
- package/es/core/objects/PDFNull.d.ts.map +1 -1
- package/es/core/objects/PDFNull.js +14 -20
- package/es/core/objects/PDFNull.js.map +1 -1
- package/es/core/objects/PDFNumber.d.ts +1 -1
- package/es/core/objects/PDFNumber.d.ts.map +1 -1
- package/es/core/objects/PDFNumber.js +22 -26
- package/es/core/objects/PDFNumber.js.map +1 -1
- package/es/core/objects/PDFObject.d.ts +1 -1
- package/es/core/objects/PDFObject.d.ts.map +1 -1
- package/es/core/objects/PDFObject.js +13 -16
- package/es/core/objects/PDFObject.js.map +1 -1
- package/es/core/objects/PDFRawStream.d.ts +8 -5
- package/es/core/objects/PDFRawStream.d.ts.map +1 -1
- package/es/core/objects/PDFRawStream.js +22 -24
- package/es/core/objects/PDFRawStream.js.map +1 -1
- package/es/core/objects/PDFRef.d.ts +1 -1
- package/es/core/objects/PDFRef.d.ts.map +1 -1
- package/es/core/objects/PDFRef.js +30 -36
- package/es/core/objects/PDFRef.js.map +1 -1
- package/es/core/objects/PDFStream.d.ts +4 -3
- package/es/core/objects/PDFStream.d.ts.map +1 -1
- package/es/core/objects/PDFStream.js +34 -35
- package/es/core/objects/PDFStream.js.map +1 -1
- package/es/core/objects/PDFString.d.ts +1 -1
- package/es/core/objects/PDFString.d.ts.map +1 -1
- package/es/core/objects/PDFString.js +50 -54
- package/es/core/objects/PDFString.js.map +1 -1
- package/es/core/operators/PDFOperator.d.ts +9 -9
- package/es/core/operators/PDFOperator.d.ts.map +1 -1
- package/es/core/operators/PDFOperator.js +26 -29
- package/es/core/operators/PDFOperator.js.map +1 -1
- package/es/core/parser/BaseParser.d.ts +1 -1
- package/es/core/parser/BaseParser.d.ts.map +1 -1
- package/es/core/parser/BaseParser.js +36 -38
- package/es/core/parser/BaseParser.js.map +1 -1
- package/es/core/parser/ByteStream.d.ts +1 -1
- package/es/core/parser/ByteStream.d.ts.map +1 -1
- package/es/core/parser/ByteStream.js +29 -32
- package/es/core/parser/ByteStream.js.map +1 -1
- package/es/core/parser/PDFObjectParser.d.ts +23 -21
- package/es/core/parser/PDFObjectParser.d.ts.map +1 -1
- package/es/core/parser/PDFObjectParser.js +92 -85
- package/es/core/parser/PDFObjectParser.js.map +1 -1
- package/es/core/parser/PDFObjectStreamParser.d.ts +3 -3
- package/es/core/parser/PDFObjectStreamParser.d.ts.map +1 -1
- package/es/core/parser/PDFObjectStreamParser.js +42 -60
- package/es/core/parser/PDFObjectStreamParser.js.map +1 -1
- package/es/core/parser/PDFParser.d.ts +6 -4
- package/es/core/parser/PDFParser.d.ts.map +1 -1
- package/es/core/parser/PDFParser.js +169 -217
- package/es/core/parser/PDFParser.js.map +1 -1
- package/es/core/parser/PDFXRefStreamParser.d.ts +2 -2
- package/es/core/parser/PDFXRefStreamParser.d.ts.map +1 -1
- package/es/core/parser/PDFXRefStreamParser.js +37 -40
- package/es/core/parser/PDFXRefStreamParser.js.map +1 -1
- package/es/core/security/PDFSecurity.d.ts +75 -0
- package/es/core/security/PDFSecurity.d.ts.map +1 -0
- package/es/core/security/PDFSecurity.js +403 -0
- package/es/core/security/PDFSecurity.js.map +1 -0
- package/es/core/streams/Ascii85Stream.d.ts +2 -2
- package/es/core/streams/Ascii85Stream.d.ts.map +1 -1
- package/es/core/streams/Ascii85Stream.js +20 -26
- package/es/core/streams/Ascii85Stream.js.map +1 -1
- package/es/core/streams/AsciiHexStream.d.ts +2 -2
- package/es/core/streams/AsciiHexStream.d.ts.map +1 -1
- package/es/core/streams/AsciiHexStream.js +18 -22
- package/es/core/streams/AsciiHexStream.js.map +1 -1
- package/es/core/streams/DecodeStream.d.ts +1 -1
- package/es/core/streams/DecodeStream.d.ts.map +1 -1
- package/es/core/streams/DecodeStream.js +53 -60
- package/es/core/streams/DecodeStream.js.map +1 -1
- package/es/core/streams/DecryptStream.d.ts +13 -0
- package/es/core/streams/DecryptStream.d.ts.map +1 -0
- package/es/core/streams/DecryptStream.js +36 -0
- package/es/core/streams/DecryptStream.js.map +1 -0
- package/es/core/streams/FlateStream.d.ts +2 -2
- package/es/core/streams/FlateStream.d.ts.map +1 -1
- package/es/core/streams/FlateStream.js +81 -84
- package/es/core/streams/FlateStream.js.map +1 -1
- package/es/core/streams/LZWStream.d.ts +3 -3
- package/es/core/streams/LZWStream.d.ts.map +1 -1
- package/es/core/streams/LZWStream.js +41 -45
- package/es/core/streams/LZWStream.js.map +1 -1
- package/es/core/streams/RunLengthStream.d.ts +2 -2
- package/es/core/streams/RunLengthStream.d.ts.map +1 -1
- package/es/core/streams/RunLengthStream.js +15 -19
- package/es/core/streams/RunLengthStream.js.map +1 -1
- package/es/core/streams/Stream.js +45 -56
- package/es/core/streams/Stream.js.map +1 -1
- package/es/core/streams/decode.d.ts +3 -3
- package/es/core/streams/decode.d.ts.map +1 -1
- package/es/core/streams/decode.js +23 -21
- package/es/core/streams/decode.js.map +1 -1
- package/es/core/structures/PDFCatalog.d.ts +5 -5
- package/es/core/structures/PDFCatalog.d.ts.map +1 -1
- package/es/core/structures/PDFCatalog.js +39 -47
- package/es/core/structures/PDFCatalog.js.map +1 -1
- package/es/core/structures/PDFContentStream.d.ts +4 -4
- package/es/core/structures/PDFContentStream.d.ts.map +1 -1
- package/es/core/structures/PDFContentStream.js +30 -43
- package/es/core/structures/PDFContentStream.js.map +1 -1
- package/es/core/structures/PDFCrossRefStream.d.ts +6 -6
- package/es/core/structures/PDFCrossRefStream.d.ts.map +1 -1
- package/es/core/structures/PDFCrossRefStream.js +91 -100
- package/es/core/structures/PDFCrossRefStream.js.map +1 -1
- package/es/core/structures/PDFFlateStream.d.ts +5 -4
- package/es/core/structures/PDFFlateStream.d.ts.map +1 -1
- package/es/core/structures/PDFFlateStream.js +22 -23
- package/es/core/structures/PDFFlateStream.js.map +1 -1
- package/es/core/structures/PDFObjectStream.d.ts +5 -5
- package/es/core/structures/PDFObjectStream.d.ts.map +1 -1
- package/es/core/structures/PDFObjectStream.js +46 -54
- package/es/core/structures/PDFObjectStream.js.map +1 -1
- package/es/core/structures/PDFPageLeaf.d.ts +9 -9
- package/es/core/structures/PDFPageLeaf.d.ts.map +1 -1
- package/es/core/structures/PDFPageLeaf.js +125 -133
- package/es/core/structures/PDFPageLeaf.js.map +1 -1
- package/es/core/structures/PDFPageTree.d.ts +8 -8
- package/es/core/structures/PDFPageTree.d.ts.map +1 -1
- package/es/core/structures/PDFPageTree.js +66 -75
- package/es/core/structures/PDFPageTree.js.map +1 -1
- package/es/core/syntax/Delimiters.js +2 -2
- package/es/core/syntax/Delimiters.js.map +1 -1
- package/es/core/syntax/Irregular.js +5 -5
- package/es/core/syntax/Irregular.js.map +1 -1
- package/es/core/syntax/Keywords.d.ts +1 -1
- package/es/core/syntax/Keywords.d.ts.map +1 -1
- package/es/core/syntax/Keywords.js +14 -15
- package/es/core/syntax/Keywords.js.map +1 -1
- package/es/core/syntax/Numeric.js +5 -5
- package/es/core/syntax/Numeric.js.map +1 -1
- package/es/core/syntax/Whitespace.js +2 -2
- package/es/core/syntax/Whitespace.js.map +1 -1
- package/es/core/writers/PDFStreamWriter.d.ts +7 -7
- package/es/core/writers/PDFStreamWriter.d.ts.map +1 -1
- package/es/core/writers/PDFStreamWriter.js +102 -126
- package/es/core/writers/PDFStreamWriter.js.map +1 -1
- package/es/core/writers/PDFWriter.d.ts +15 -10
- package/es/core/writers/PDFWriter.d.ts.map +1 -1
- package/es/core/writers/PDFWriter.js +116 -142
- package/es/core/writers/PDFWriter.js.map +1 -1
- package/es/index.d.ts +4 -4
- package/es/index.d.ts.map +1 -1
- package/es/index.js +4 -4
- package/es/index.js.map +1 -1
- package/es/package.json +3 -0
- package/es/types/fontkit.js +1 -0
- package/es/types/index.d.ts +25 -1
- package/es/types/index.d.ts.map +1 -1
- package/es/types/index.js +1 -0
- package/es/types/matrix.d.ts +8 -1
- package/es/types/matrix.d.ts.map +1 -1
- package/es/types/matrix.js +1 -1
- package/es/types/matrix.js.map +1 -1
- package/es/utils/Cache.js +10 -11
- package/es/utils/Cache.js.map +1 -1
- package/es/utils/arrays.d.ts +3 -1
- package/es/utils/arrays.d.ts.map +1 -1
- package/es/utils/arrays.js +78 -60
- package/es/utils/arrays.js.map +1 -1
- package/es/utils/async.d.ts.map +1 -1
- package/es/utils/async.js +3 -5
- package/es/utils/async.js.map +1 -1
- package/es/utils/base64.d.ts.map +1 -1
- package/es/utils/base64.js +24 -24
- package/es/utils/base64.js.map +1 -1
- package/es/utils/elements/Arc.d.ts +23 -0
- package/es/utils/elements/Arc.d.ts.map +1 -0
- package/es/utils/elements/Arc.js +74 -0
- package/es/utils/elements/Arc.js.map +1 -0
- package/es/utils/elements/Circle.d.ts +15 -0
- package/es/utils/elements/Circle.d.ts.map +1 -0
- package/es/utils/elements/Circle.js +37 -0
- package/es/utils/elements/Circle.js.map +1 -0
- package/es/utils/elements/Ellipse.d.ts +21 -0
- package/es/utils/elements/Ellipse.d.ts.map +1 -0
- package/es/utils/elements/Ellipse.js +87 -0
- package/es/utils/elements/Ellipse.js.map +1 -0
- package/es/utils/elements/GraphElement.d.ts +7 -0
- package/es/utils/elements/GraphElement.d.ts.map +1 -0
- package/es/utils/elements/GraphElement.js +8 -0
- package/es/utils/elements/GraphElement.js.map +1 -0
- package/es/utils/elements/Line.d.ts +24 -0
- package/es/utils/elements/Line.d.ts.map +1 -0
- package/es/utils/elements/Line.js +68 -0
- package/es/utils/elements/Line.js.map +1 -0
- package/es/utils/elements/Plot.d.ts +12 -0
- package/es/utils/elements/Plot.d.ts.map +1 -0
- package/es/utils/elements/Plot.js +42 -0
- package/es/utils/elements/Plot.js.map +1 -0
- package/es/utils/elements/Point.d.ts +19 -0
- package/es/utils/elements/Point.d.ts.map +1 -0
- package/es/utils/elements/Point.js +28 -0
- package/es/utils/elements/Point.js.map +1 -0
- package/es/utils/elements/Rectangle.d.ts +22 -0
- package/es/utils/elements/Rectangle.d.ts.map +1 -0
- package/es/utils/elements/Rectangle.js +54 -0
- package/es/utils/elements/Rectangle.js.map +1 -0
- package/es/utils/elements/Segment.d.ts +20 -0
- package/es/utils/elements/Segment.d.ts.map +1 -0
- package/es/utils/elements/Segment.js +76 -0
- package/es/utils/elements/Segment.js.map +1 -0
- package/es/utils/elements/index.d.ts +10 -0
- package/es/utils/elements/index.d.ts.map +1 -0
- package/es/utils/elements/index.js +10 -0
- package/es/utils/elements/index.js.map +1 -0
- package/es/utils/errors.js +1 -1
- package/es/utils/errors.js.map +1 -1
- package/es/utils/index.d.ts +11 -11
- package/es/utils/index.d.ts.map +1 -1
- package/es/utils/index.js +11 -11
- package/es/utils/index.js.map +1 -1
- package/es/utils/intersections.d.ts +10 -0
- package/es/utils/intersections.d.ts.map +1 -0
- package/es/utils/intersections.js +243 -0
- package/es/utils/intersections.js.map +1 -0
- package/es/utils/maths.d.ts +46 -0
- package/es/utils/maths.d.ts.map +1 -0
- package/es/utils/maths.js +69 -0
- package/es/utils/maths.js.map +1 -0
- package/es/utils/numbers.js +9 -9
- package/es/utils/numbers.js.map +1 -1
- package/es/utils/objects.js +4 -6
- package/es/utils/objects.js.map +1 -1
- package/es/utils/pdfDocEncoding.js +7 -7
- package/es/utils/pdfDocEncoding.js.map +1 -1
- package/es/utils/png.js +20 -22
- package/es/utils/png.js.map +1 -1
- package/es/utils/rng.js +7 -9
- package/es/utils/rng.js.map +1 -1
- package/es/utils/strings.d.ts +1 -0
- package/es/utils/strings.d.ts.map +1 -1
- package/es/utils/strings.js +66 -68
- package/es/utils/strings.js.map +1 -1
- package/es/utils/unicode.js +42 -63
- package/es/utils/unicode.js.map +1 -1
- package/es/utils/validators.d.ts +2 -2
- package/es/utils/validators.d.ts.map +1 -1
- package/es/utils/validators.js +38 -38
- package/es/utils/validators.js.map +1 -1
- package/package.json +70 -39
- package/src/api/PDFDocument.ts +248 -22
- package/src/api/PDFDocumentOptions.ts +4 -2
- package/src/api/PDFEmbeddedFile.ts +12 -4
- package/src/api/PDFEmbeddedPage.ts +4 -4
- package/src/api/PDFFont.ts +4 -4
- package/src/api/PDFImage.ts +4 -4
- package/src/api/PDFJavaScript.ts +4 -4
- package/src/api/PDFPage.ts +93 -20
- package/src/api/PDFPageOptions.ts +34 -12
- package/src/api/PDFSvg.ts +10 -0
- package/src/api/colors.ts +27 -19
- package/src/api/form/PDFButton.ts +11 -11
- package/src/api/form/PDFCheckBox.ts +8 -8
- package/src/api/form/PDFDropdown.ts +9 -9
- package/src/api/form/PDFField.ts +7 -7
- package/src/api/form/PDFForm.ts +56 -46
- package/src/api/form/PDFOptionList.ts +9 -9
- package/src/api/form/PDFRadioGroup.ts +8 -8
- package/src/api/form/PDFSignature.ts +4 -4
- package/src/api/form/PDFTextField.ts +15 -15
- package/src/api/form/appearances.ts +41 -49
- package/src/api/form/index.ts +10 -10
- package/src/api/image/index.ts +1 -1
- package/src/api/index.ts +1 -0
- package/src/api/objects.ts +1 -1
- package/src/api/operations.ts +198 -142
- package/src/api/operators.ts +10 -3
- package/src/api/rotations.ts +7 -9
- package/src/api/svg.ts +1074 -0
- package/src/api/svgPath.ts +2 -4
- package/src/api/text/index.ts +2 -2
- package/src/api/text/layout.ts +5 -5
- package/src/core/PDFContext.ts +94 -19
- package/src/core/PDFObjectCopier.ts +8 -8
- package/src/core/acroform/PDFAcroButton.ts +8 -8
- package/src/core/acroform/PDFAcroCheckBox.ts +6 -6
- package/src/core/acroform/PDFAcroChoice.ts +7 -10
- package/src/core/acroform/PDFAcroComboBox.ts +5 -5
- package/src/core/acroform/PDFAcroField.ts +12 -12
- package/src/core/acroform/PDFAcroForm.ts +8 -11
- package/src/core/acroform/PDFAcroListBox.ts +4 -4
- package/src/core/acroform/PDFAcroNonTerminal.ts +5 -5
- package/src/core/acroform/PDFAcroPushButton.ts +5 -5
- package/src/core/acroform/PDFAcroRadioButton.ts +7 -7
- package/src/core/acroform/PDFAcroSignature.ts +3 -3
- package/src/core/acroform/PDFAcroTerminal.ts +6 -6
- package/src/core/acroform/PDFAcroText.ts +8 -8
- package/src/core/acroform/index.ts +15 -15
- package/src/core/acroform/utils.ts +20 -20
- package/src/core/annotation/AppearanceCharacteristics.ts +6 -6
- package/src/core/annotation/BorderStyle.ts +3 -3
- package/src/core/annotation/PDFAnnotation.ts +6 -6
- package/src/core/annotation/PDFWidgetAnnotation.ts +9 -9
- package/src/core/annotation/index.ts +4 -4
- package/src/core/crypto.ts +1997 -0
- package/src/core/document/PDFCrossRefSection.ts +4 -4
- package/src/core/document/PDFHeader.ts +6 -2
- package/src/core/document/PDFTrailer.ts +2 -2
- package/src/core/document/PDFTrailerDict.ts +2 -2
- package/src/core/embedders/CMap.ts +3 -3
- package/src/core/embedders/CustomFontEmbedder.ts +9 -9
- package/src/core/embedders/CustomFontSubsetEmbedder.ts +10 -4
- package/src/core/embedders/FileEmbedder.ts +8 -4
- package/src/core/embedders/FontFlags.ts +1 -1
- package/src/core/embedders/JavaScriptEmbedder.ts +3 -3
- package/src/core/embedders/JpegEmbedder.ts +2 -2
- package/src/core/embedders/PDFPageEmbedder.ts +24 -22
- package/src/core/embedders/PngEmbedder.ts +3 -3
- package/src/core/embedders/StandardFontEmbedder.ts +10 -5
- package/src/core/errors.ts +15 -13
- package/src/core/index.ts +52 -47
- package/src/core/interactive/ViewerPreferences.ts +7 -7
- package/src/core/objects/PDFArray.ts +22 -22
- package/src/core/objects/PDFBool.ts +3 -3
- package/src/core/objects/PDFDict.ts +14 -12
- package/src/core/objects/PDFHexString.ts +8 -4
- package/src/core/objects/PDFInvalidObject.ts +1 -1
- package/src/core/objects/PDFName.ts +6 -6
- package/src/core/objects/PDFNull.ts +2 -2
- package/src/core/objects/PDFNumber.ts +3 -3
- package/src/core/objects/PDFObject.ts +2 -2
- package/src/core/objects/PDFRawStream.ts +24 -10
- package/src/core/objects/PDFRef.ts +4 -4
- package/src/core/objects/PDFStream.ts +14 -7
- package/src/core/objects/PDFString.ts +4 -4
- package/src/core/operators/PDFOperator.ts +10 -10
- package/src/core/parser/BaseParser.ts +6 -6
- package/src/core/parser/ByteStream.ts +4 -4
- package/src/core/parser/PDFObjectParser.ts +78 -41
- package/src/core/parser/PDFObjectStreamParser.ts +9 -9
- package/src/core/parser/PDFParser.ts +43 -23
- package/src/core/parser/PDFXRefStreamParser.ts +9 -9
- package/src/core/security/PDFSecurity.ts +685 -0
- package/src/core/streams/Ascii85Stream.ts +2 -2
- package/src/core/streams/AsciiHexStream.ts +2 -2
- package/src/core/streams/DecodeStream.ts +2 -2
- package/src/core/streams/DecryptStream.ts +56 -0
- package/src/core/streams/FlateStream.ts +3 -2
- package/src/core/streams/LZWStream.ts +3 -3
- package/src/core/streams/RunLengthStream.ts +2 -2
- package/src/core/streams/decode.ts +23 -18
- package/src/core/structures/PDFCatalog.ts +6 -6
- package/src/core/structures/PDFContentStream.ts +5 -5
- package/src/core/structures/PDFCrossRefStream.ts +6 -6
- package/src/core/structures/PDFFlateStream.ts +10 -6
- package/src/core/structures/PDFObjectStream.ts +8 -8
- package/src/core/structures/PDFPageLeaf.ts +9 -9
- package/src/core/structures/PDFPageTree.ts +8 -8
- package/src/core/syntax/Delimiters.ts +1 -1
- package/src/core/syntax/Irregular.ts +3 -3
- package/src/core/syntax/Keywords.ts +1 -1
- package/src/core/syntax/Numeric.ts +1 -1
- package/src/core/syntax/Whitespace.ts +1 -1
- package/src/core/writers/PDFStreamWriter.ts +12 -1
- package/src/core/writers/PDFWriter.ts +22 -13
- package/src/index.ts +4 -4
- package/src/types/index.ts +38 -1
- package/src/utils/arrays.ts +33 -2
- package/src/utils/base64.ts +2 -1
- package/src/utils/elements/Arc.ts +107 -0
- package/src/utils/elements/Circle.ts +55 -0
- package/src/utils/elements/Ellipse.ts +135 -0
- package/src/utils/elements/GraphElement.ts +14 -0
- package/src/utils/elements/Line.ts +85 -0
- package/src/utils/elements/Plot.ts +50 -0
- package/src/utils/elements/Point.ts +37 -0
- package/src/utils/elements/Rectangle.ts +65 -0
- package/src/utils/elements/Segment.ts +92 -0
- package/src/utils/elements/index.ts +9 -0
- package/src/utils/index.ts +11 -11
- package/src/utils/intersections.ts +280 -0
- package/src/utils/maths.ts +108 -0
- package/src/utils/pdfDocEncoding.ts +1 -1
- package/src/utils/png.ts +1 -1
- package/src/utils/strings.ts +11 -1
- package/src/utils/unicode.ts +1 -1
- package/src/utils/validators.ts +1 -1
- package/ts3.4/cjs/api/PDFDocument.d.ts +52 -13
- package/ts3.4/cjs/api/PDFDocumentOptions.d.ts +4 -2
- package/ts3.4/cjs/api/PDFEmbeddedFile.d.ts +9 -4
- package/ts3.4/cjs/api/PDFEmbeddedPage.d.ts +3 -3
- package/ts3.4/cjs/api/PDFFont.d.ts +4 -4
- package/ts3.4/cjs/api/PDFImage.d.ts +4 -4
- package/ts3.4/cjs/api/PDFJavaScript.d.ts +4 -4
- package/ts3.4/cjs/api/PDFPage.d.ts +36 -9
- package/ts3.4/cjs/api/PDFPageOptions.d.ts +35 -12
- package/ts3.4/cjs/api/PDFSvg.d.ts +7 -0
- package/ts3.4/cjs/api/colors.d.ts +6 -2
- package/ts3.4/cjs/api/form/PDFButton.d.ts +8 -8
- package/ts3.4/cjs/api/form/PDFCheckBox.d.ts +5 -5
- package/ts3.4/cjs/api/form/PDFDropdown.d.ts +6 -6
- package/ts3.4/cjs/api/form/PDFField.d.ts +7 -7
- package/ts3.4/cjs/api/form/PDFForm.d.ts +11 -11
- package/ts3.4/cjs/api/form/PDFOptionList.d.ts +6 -6
- package/ts3.4/cjs/api/form/PDFRadioGroup.d.ts +5 -5
- package/ts3.4/cjs/api/form/PDFSignature.d.ts +3 -3
- package/ts3.4/cjs/api/form/PDFTextField.d.ts +8 -8
- package/ts3.4/cjs/api/form/appearances.d.ts +21 -21
- package/ts3.4/cjs/api/form/index.d.ts +10 -10
- package/ts3.4/cjs/api/image/index.d.ts +1 -1
- package/ts3.4/cjs/api/index.d.ts +22 -21
- package/ts3.4/cjs/api/objects.d.ts +1 -1
- package/ts3.4/cjs/api/operations.d.ts +27 -13
- package/ts3.4/cjs/api/operators.d.ts +6 -1
- package/ts3.4/cjs/api/rotations.d.ts +2 -2
- package/ts3.4/cjs/api/sizes.d.ts +200 -50
- package/ts3.4/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts +1 -1
- package/ts3.4/cjs/api/snapshot/DocumentSnapshot.d.ts +1 -1
- package/ts3.4/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
- package/ts3.4/cjs/api/svg.d.ts +76 -0
- package/ts3.4/cjs/api/svgPath.d.ts +1 -1
- package/ts3.4/cjs/api/text/index.d.ts +2 -2
- package/ts3.4/cjs/api/text/layout.d.ts +3 -3
- package/ts3.4/cjs/core/PDFContext.d.ts +43 -20
- package/ts3.4/cjs/core/PDFObjectCopier.d.ts +2 -2
- package/ts3.4/cjs/core/acroform/PDFAcroButton.d.ts +7 -7
- package/ts3.4/cjs/core/acroform/PDFAcroCheckBox.d.ts +5 -5
- package/ts3.4/cjs/core/acroform/PDFAcroChoice.d.ts +4 -4
- package/ts3.4/cjs/core/acroform/PDFAcroComboBox.d.ts +4 -4
- package/ts3.4/cjs/core/acroform/PDFAcroField.d.ts +8 -8
- package/ts3.4/cjs/core/acroform/PDFAcroForm.d.ts +13 -7
- package/ts3.4/cjs/core/acroform/PDFAcroListBox.d.ts +4 -4
- package/ts3.4/cjs/core/acroform/PDFAcroNonTerminal.d.ts +4 -4
- package/ts3.4/cjs/core/acroform/PDFAcroPushButton.d.ts +4 -4
- package/ts3.4/cjs/core/acroform/PDFAcroRadioButton.d.ts +5 -5
- package/ts3.4/cjs/core/acroform/PDFAcroSignature.d.ts +3 -3
- package/ts3.4/cjs/core/acroform/PDFAcroTerminal.d.ts +5 -5
- package/ts3.4/cjs/core/acroform/PDFAcroText.d.ts +7 -7
- package/ts3.4/cjs/core/acroform/index.d.ts +15 -15
- package/ts3.4/cjs/core/acroform/utils.d.ts +8 -5
- package/ts3.4/cjs/core/annotation/AppearanceCharacteristics.d.ts +5 -5
- package/ts3.4/cjs/core/annotation/BorderStyle.d.ts +2 -2
- package/ts3.4/cjs/core/annotation/PDFAnnotation.d.ts +6 -6
- package/ts3.4/cjs/core/annotation/PDFWidgetAnnotation.d.ts +9 -9
- package/ts3.4/cjs/core/annotation/index.d.ts +4 -4
- package/ts3.4/cjs/core/crypto.d.ts +96 -0
- package/ts3.4/cjs/core/document/PDFCrossRefSection.d.ts +1 -1
- package/ts3.4/cjs/core/document/PDFHeader.d.ts +1 -0
- package/ts3.4/cjs/core/document/PDFTrailerDict.d.ts +1 -1
- package/ts3.4/cjs/core/embedders/CMap.d.ts +2 -2
- package/ts3.4/cjs/core/embedders/CustomFontEmbedder.d.ts +5 -5
- package/ts3.4/cjs/core/embedders/CustomFontSubsetEmbedder.d.ts +3 -3
- package/ts3.4/cjs/core/embedders/FileEmbedder.d.ts +3 -2
- package/ts3.4/cjs/core/embedders/FontFlags.d.ts +1 -1
- package/ts3.4/cjs/core/embedders/JavaScriptEmbedder.d.ts +2 -2
- package/ts3.4/cjs/core/embedders/JpegEmbedder.d.ts +2 -2
- package/ts3.4/cjs/core/embedders/PDFPageEmbedder.d.ts +4 -4
- package/ts3.4/cjs/core/embedders/PngEmbedder.d.ts +2 -2
- package/ts3.4/cjs/core/embedders/StandardFontEmbedder.d.ts +4 -4
- package/ts3.4/cjs/core/errors.d.ts +1 -1
- package/ts3.4/cjs/core/index.d.ts +48 -47
- package/ts3.4/cjs/core/interactive/ViewerPreferences.d.ts +8 -8
- package/ts3.4/cjs/core/objects/PDFArray.d.ts +12 -12
- package/ts3.4/cjs/core/objects/PDFBool.d.ts +1 -1
- package/ts3.4/cjs/core/objects/PDFDict.d.ts +17 -13
- package/ts3.4/cjs/core/objects/PDFHexString.d.ts +2 -1
- package/ts3.4/cjs/core/objects/PDFInvalidObject.d.ts +1 -1
- package/ts3.4/cjs/core/objects/PDFName.d.ts +1 -1
- package/ts3.4/cjs/core/objects/PDFNull.d.ts +1 -1
- package/ts3.4/cjs/core/objects/PDFNumber.d.ts +1 -1
- package/ts3.4/cjs/core/objects/PDFObject.d.ts +1 -1
- package/ts3.4/cjs/core/objects/PDFRawStream.d.ts +8 -5
- package/ts3.4/cjs/core/objects/PDFRef.d.ts +1 -1
- package/ts3.4/cjs/core/objects/PDFStream.d.ts +4 -3
- package/ts3.4/cjs/core/objects/PDFString.d.ts +1 -1
- package/ts3.4/cjs/core/operators/PDFOperator.d.ts +9 -9
- package/ts3.4/cjs/core/parser/BaseParser.d.ts +1 -1
- package/ts3.4/cjs/core/parser/ByteStream.d.ts +1 -1
- package/ts3.4/cjs/core/parser/PDFObjectParser.d.ts +23 -21
- package/ts3.4/cjs/core/parser/PDFObjectStreamParser.d.ts +3 -3
- package/ts3.4/cjs/core/parser/PDFParser.d.ts +6 -4
- package/ts3.4/cjs/core/parser/PDFXRefStreamParser.d.ts +2 -2
- package/ts3.4/cjs/core/security/PDFSecurity.d.ts +75 -0
- package/ts3.4/cjs/core/streams/Ascii85Stream.d.ts +2 -2
- package/ts3.4/cjs/core/streams/AsciiHexStream.d.ts +2 -2
- package/ts3.4/cjs/core/streams/DecodeStream.d.ts +1 -1
- package/ts3.4/cjs/core/streams/DecryptStream.d.ts +13 -0
- package/ts3.4/cjs/core/streams/FlateStream.d.ts +2 -2
- package/ts3.4/cjs/core/streams/LZWStream.d.ts +3 -3
- package/ts3.4/cjs/core/streams/RunLengthStream.d.ts +2 -2
- package/ts3.4/cjs/core/streams/decode.d.ts +3 -3
- package/ts3.4/cjs/core/structures/PDFCatalog.d.ts +5 -5
- package/ts3.4/cjs/core/structures/PDFContentStream.d.ts +4 -4
- package/ts3.4/cjs/core/structures/PDFCrossRefStream.d.ts +10 -6
- package/ts3.4/cjs/core/structures/PDFFlateStream.d.ts +5 -4
- package/ts3.4/cjs/core/structures/PDFObjectStream.d.ts +8 -5
- package/ts3.4/cjs/core/structures/PDFPageLeaf.d.ts +9 -9
- package/ts3.4/cjs/core/structures/PDFPageTree.d.ts +8 -8
- package/ts3.4/cjs/core/syntax/Keywords.d.ts +1 -1
- package/ts3.4/cjs/core/writers/PDFStreamWriter.d.ts +11 -8
- package/ts3.4/cjs/core/writers/PDFWriter.d.ts +19 -11
- package/ts3.4/cjs/index.d.ts +4 -4
- package/ts3.4/cjs/types/index.d.ts +25 -1
- package/ts3.4/cjs/types/matrix.d.ts +8 -1
- package/ts3.4/cjs/utils/arrays.d.ts +3 -1
- package/ts3.4/cjs/utils/elements/Arc.d.ts +23 -0
- package/ts3.4/cjs/utils/elements/Circle.d.ts +15 -0
- package/ts3.4/cjs/utils/elements/Ellipse.d.ts +21 -0
- package/ts3.4/cjs/utils/elements/GraphElement.d.ts +7 -0
- package/ts3.4/cjs/utils/elements/Line.d.ts +24 -0
- package/ts3.4/cjs/utils/elements/Plot.d.ts +12 -0
- package/ts3.4/cjs/utils/elements/Point.d.ts +19 -0
- package/ts3.4/cjs/utils/elements/Rectangle.d.ts +22 -0
- package/ts3.4/cjs/utils/elements/Segment.d.ts +20 -0
- package/ts3.4/cjs/utils/elements/index.d.ts +10 -0
- package/ts3.4/cjs/utils/index.d.ts +11 -11
- package/ts3.4/cjs/utils/intersections.d.ts +10 -0
- package/ts3.4/cjs/utils/maths.d.ts +46 -0
- package/ts3.4/cjs/utils/strings.d.ts +5 -1
- package/ts3.4/cjs/utils/validators.d.ts +5 -2
- package/ts3.4/es/api/PDFDocument.d.ts +52 -13
- package/ts3.4/es/api/PDFDocumentOptions.d.ts +4 -2
- package/ts3.4/es/api/PDFEmbeddedFile.d.ts +9 -4
- package/ts3.4/es/api/PDFEmbeddedPage.d.ts +3 -3
- package/ts3.4/es/api/PDFFont.d.ts +4 -4
- package/ts3.4/es/api/PDFImage.d.ts +4 -4
- package/ts3.4/es/api/PDFJavaScript.d.ts +4 -4
- package/ts3.4/es/api/PDFPage.d.ts +36 -9
- package/ts3.4/es/api/PDFPageOptions.d.ts +35 -12
- package/ts3.4/es/api/PDFSvg.d.ts +7 -0
- package/ts3.4/es/api/colors.d.ts +6 -2
- package/ts3.4/es/api/form/PDFButton.d.ts +8 -8
- package/ts3.4/es/api/form/PDFCheckBox.d.ts +5 -5
- package/ts3.4/es/api/form/PDFDropdown.d.ts +6 -6
- package/ts3.4/es/api/form/PDFField.d.ts +7 -7
- package/ts3.4/es/api/form/PDFForm.d.ts +11 -11
- package/ts3.4/es/api/form/PDFOptionList.d.ts +6 -6
- package/ts3.4/es/api/form/PDFRadioGroup.d.ts +5 -5
- package/ts3.4/es/api/form/PDFSignature.d.ts +3 -3
- package/ts3.4/es/api/form/PDFTextField.d.ts +8 -8
- package/ts3.4/es/api/form/appearances.d.ts +21 -21
- package/ts3.4/es/api/form/index.d.ts +10 -10
- package/ts3.4/es/api/image/index.d.ts +1 -1
- package/ts3.4/es/api/index.d.ts +22 -21
- package/ts3.4/es/api/objects.d.ts +1 -1
- package/ts3.4/es/api/operations.d.ts +27 -13
- package/ts3.4/es/api/operators.d.ts +6 -1
- package/ts3.4/es/api/rotations.d.ts +2 -2
- package/ts3.4/es/api/sizes.d.ts +200 -50
- package/ts3.4/es/api/snapshot/DefaultDocumentSnapshot.d.ts +1 -1
- package/ts3.4/es/api/snapshot/DocumentSnapshot.d.ts +1 -1
- package/ts3.4/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +1 -1
- package/ts3.4/es/api/svg.d.ts +76 -0
- package/ts3.4/es/api/svgPath.d.ts +1 -1
- package/ts3.4/es/api/text/index.d.ts +2 -2
- package/ts3.4/es/api/text/layout.d.ts +3 -3
- package/ts3.4/es/core/PDFContext.d.ts +43 -20
- package/ts3.4/es/core/PDFObjectCopier.d.ts +2 -2
- package/ts3.4/es/core/acroform/PDFAcroButton.d.ts +7 -7
- package/ts3.4/es/core/acroform/PDFAcroCheckBox.d.ts +5 -5
- package/ts3.4/es/core/acroform/PDFAcroChoice.d.ts +4 -4
- package/ts3.4/es/core/acroform/PDFAcroComboBox.d.ts +4 -4
- package/ts3.4/es/core/acroform/PDFAcroField.d.ts +8 -8
- package/ts3.4/es/core/acroform/PDFAcroForm.d.ts +13 -7
- package/ts3.4/es/core/acroform/PDFAcroListBox.d.ts +4 -4
- package/ts3.4/es/core/acroform/PDFAcroNonTerminal.d.ts +4 -4
- package/ts3.4/es/core/acroform/PDFAcroPushButton.d.ts +4 -4
- package/ts3.4/es/core/acroform/PDFAcroRadioButton.d.ts +5 -5
- package/ts3.4/es/core/acroform/PDFAcroSignature.d.ts +3 -3
- package/ts3.4/es/core/acroform/PDFAcroTerminal.d.ts +5 -5
- package/ts3.4/es/core/acroform/PDFAcroText.d.ts +7 -7
- package/ts3.4/es/core/acroform/index.d.ts +15 -15
- package/ts3.4/es/core/acroform/utils.d.ts +8 -5
- package/ts3.4/es/core/annotation/AppearanceCharacteristics.d.ts +5 -5
- package/ts3.4/es/core/annotation/BorderStyle.d.ts +2 -2
- package/ts3.4/es/core/annotation/PDFAnnotation.d.ts +6 -6
- package/ts3.4/es/core/annotation/PDFWidgetAnnotation.d.ts +9 -9
- package/ts3.4/es/core/annotation/index.d.ts +4 -4
- package/ts3.4/es/core/crypto.d.ts +96 -0
- package/ts3.4/es/core/document/PDFCrossRefSection.d.ts +1 -1
- package/ts3.4/es/core/document/PDFHeader.d.ts +1 -0
- package/ts3.4/es/core/document/PDFTrailerDict.d.ts +1 -1
- package/ts3.4/es/core/embedders/CMap.d.ts +2 -2
- package/ts3.4/es/core/embedders/CustomFontEmbedder.d.ts +5 -5
- package/ts3.4/es/core/embedders/CustomFontSubsetEmbedder.d.ts +3 -3
- package/ts3.4/es/core/embedders/FileEmbedder.d.ts +3 -2
- package/ts3.4/es/core/embedders/FontFlags.d.ts +1 -1
- package/ts3.4/es/core/embedders/JavaScriptEmbedder.d.ts +2 -2
- package/ts3.4/es/core/embedders/JpegEmbedder.d.ts +2 -2
- package/ts3.4/es/core/embedders/PDFPageEmbedder.d.ts +4 -4
- package/ts3.4/es/core/embedders/PngEmbedder.d.ts +2 -2
- package/ts3.4/es/core/embedders/StandardFontEmbedder.d.ts +4 -4
- package/ts3.4/es/core/errors.d.ts +1 -1
- package/ts3.4/es/core/index.d.ts +48 -47
- package/ts3.4/es/core/interactive/ViewerPreferences.d.ts +8 -8
- package/ts3.4/es/core/objects/PDFArray.d.ts +12 -12
- package/ts3.4/es/core/objects/PDFBool.d.ts +1 -1
- package/ts3.4/es/core/objects/PDFDict.d.ts +17 -13
- package/ts3.4/es/core/objects/PDFHexString.d.ts +2 -1
- package/ts3.4/es/core/objects/PDFInvalidObject.d.ts +1 -1
- package/ts3.4/es/core/objects/PDFName.d.ts +1 -1
- package/ts3.4/es/core/objects/PDFNull.d.ts +1 -1
- package/ts3.4/es/core/objects/PDFNumber.d.ts +1 -1
- package/ts3.4/es/core/objects/PDFObject.d.ts +1 -1
- package/ts3.4/es/core/objects/PDFRawStream.d.ts +8 -5
- package/ts3.4/es/core/objects/PDFRef.d.ts +1 -1
- package/ts3.4/es/core/objects/PDFStream.d.ts +4 -3
- package/ts3.4/es/core/objects/PDFString.d.ts +1 -1
- package/ts3.4/es/core/operators/PDFOperator.d.ts +9 -9
- package/ts3.4/es/core/parser/BaseParser.d.ts +1 -1
- package/ts3.4/es/core/parser/ByteStream.d.ts +1 -1
- package/ts3.4/es/core/parser/PDFObjectParser.d.ts +23 -21
- package/ts3.4/es/core/parser/PDFObjectStreamParser.d.ts +3 -3
- package/ts3.4/es/core/parser/PDFParser.d.ts +6 -4
- package/ts3.4/es/core/parser/PDFXRefStreamParser.d.ts +2 -2
- package/ts3.4/es/core/security/PDFSecurity.d.ts +75 -0
- package/ts3.4/es/core/streams/Ascii85Stream.d.ts +2 -2
- package/ts3.4/es/core/streams/AsciiHexStream.d.ts +2 -2
- package/ts3.4/es/core/streams/DecodeStream.d.ts +1 -1
- package/ts3.4/es/core/streams/DecryptStream.d.ts +13 -0
- package/ts3.4/es/core/streams/FlateStream.d.ts +2 -2
- package/ts3.4/es/core/streams/LZWStream.d.ts +3 -3
- package/ts3.4/es/core/streams/RunLengthStream.d.ts +2 -2
- package/ts3.4/es/core/streams/decode.d.ts +3 -3
- package/ts3.4/es/core/structures/PDFCatalog.d.ts +5 -5
- package/ts3.4/es/core/structures/PDFContentStream.d.ts +4 -4
- package/ts3.4/es/core/structures/PDFCrossRefStream.d.ts +10 -6
- package/ts3.4/es/core/structures/PDFFlateStream.d.ts +5 -4
- package/ts3.4/es/core/structures/PDFObjectStream.d.ts +8 -5
- package/ts3.4/es/core/structures/PDFPageLeaf.d.ts +9 -9
- package/ts3.4/es/core/structures/PDFPageTree.d.ts +8 -8
- package/ts3.4/es/core/syntax/Keywords.d.ts +1 -1
- package/ts3.4/es/core/writers/PDFStreamWriter.d.ts +11 -8
- package/ts3.4/es/core/writers/PDFWriter.d.ts +19 -11
- package/ts3.4/es/index.d.ts +4 -4
- package/ts3.4/es/types/index.d.ts +25 -1
- package/ts3.4/es/types/matrix.d.ts +8 -1
- package/ts3.4/es/utils/arrays.d.ts +3 -1
- package/ts3.4/es/utils/elements/Arc.d.ts +23 -0
- package/ts3.4/es/utils/elements/Circle.d.ts +15 -0
- package/ts3.4/es/utils/elements/Ellipse.d.ts +21 -0
- package/ts3.4/es/utils/elements/GraphElement.d.ts +7 -0
- package/ts3.4/es/utils/elements/Line.d.ts +24 -0
- package/ts3.4/es/utils/elements/Plot.d.ts +12 -0
- package/ts3.4/es/utils/elements/Point.d.ts +19 -0
- package/ts3.4/es/utils/elements/Rectangle.d.ts +22 -0
- package/ts3.4/es/utils/elements/Segment.d.ts +20 -0
- package/ts3.4/es/utils/elements/index.d.ts +10 -0
- package/ts3.4/es/utils/index.d.ts +11 -11
- package/ts3.4/es/utils/intersections.d.ts +10 -0
- package/ts3.4/es/utils/maths.d.ts +46 -0
- package/ts3.4/es/utils/strings.d.ts +5 -1
- package/ts3.4/es/utils/validators.d.ts +5 -2
- package/yarn.lock +0 -4446
package/es/api/PDFDocument.js
CHANGED
|
@@ -1,63 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
1
|
+
import { __awaiter, __rest } from "tslib";
|
|
2
|
+
import { parse as parseHtml, NodeType, } from 'node-html-better-parser';
|
|
3
|
+
import { EncryptedPDFError, FontkitNotRegisteredError, ForeignPageError, RemovePageFromEmptyDocumentError, } from './errors.js';
|
|
4
|
+
import PDFEmbeddedPage from './PDFEmbeddedPage.js';
|
|
5
|
+
import PDFFont from './PDFFont.js';
|
|
6
|
+
import PDFImage from './PDFImage.js';
|
|
7
|
+
import PDFPage from './PDFPage.js';
|
|
8
|
+
import PDFForm from './form/PDFForm.js';
|
|
9
|
+
import { PageSizes } from './sizes.js';
|
|
10
|
+
import { CustomFontEmbedder, CustomFontSubsetEmbedder, JpegEmbedder, PageEmbeddingMismatchedContextError, PDFArray, PDFCatalog, PDFContext, PDFDict, decodePDFRawStream, PDFStream, PDFHexString, PDFName, PDFObjectCopier, PDFPageEmbedder, PDFPageLeaf, PDFPageTree, PDFParser, PDFStreamWriter, PDFString, PDFWriter, PngEmbedder, StandardFontEmbedder, UnexpectedObjectTypeError, } from '../core/index.js';
|
|
11
|
+
import { ParseSpeeds, } from 'src/api/PDFDocumentOptions';
|
|
12
|
+
import { assertIs, assertIsOneOfOrUndefined, assertOrUndefined, assertRange, Cache, canBeConvertedToUint8Array, encodeToBase64, isStandardFont, pluckIndices, range, toUint8Array, } from 'src/utils';
|
|
13
|
+
import FileEmbedder, { AFRelationship } from 'src/core/embedders/FileEmbedder';
|
|
14
|
+
import PDFEmbeddedFile from 'src/api/PDFEmbeddedFile';
|
|
15
|
+
import PDFJavaScript from 'src/api/PDFJavaScript';
|
|
16
|
+
import JavaScriptEmbedder from 'src/core/embedders/JavaScriptEmbedder';
|
|
17
|
+
import { CipherTransformFactory } from '../core/crypto.js';
|
|
18
|
+
import PDFSvg from './PDFSvg.js';
|
|
19
|
+
import PDFSecurity from '../core/security/PDFSecurity.js';
|
|
20
|
+
import { IncrementalDocumentSnapshot } from './snapshot/index.js';
|
|
17
21
|
/**
|
|
18
22
|
* Represents a PDF document.
|
|
19
23
|
*/
|
|
20
|
-
|
|
21
|
-
function PDFDocument(context, ignoreEncryption, updateMetadata) {
|
|
22
|
-
var _this = this;
|
|
23
|
-
/** The default word breaks used in PDFPage.drawText */
|
|
24
|
-
this.defaultWordBreaks = [' '];
|
|
25
|
-
this.computePages = function () {
|
|
26
|
-
var pages = [];
|
|
27
|
-
_this.catalog.Pages().traverse(function (node, ref) {
|
|
28
|
-
if (node instanceof PDFPageLeaf) {
|
|
29
|
-
var page = _this.pageMap.get(node);
|
|
30
|
-
if (!page) {
|
|
31
|
-
page = PDFPage.of(node, ref, _this);
|
|
32
|
-
_this.pageMap.set(node, page);
|
|
33
|
-
}
|
|
34
|
-
pages.push(page);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
return pages;
|
|
38
|
-
};
|
|
39
|
-
this.getOrCreateForm = function () {
|
|
40
|
-
var acroForm = _this.catalog.getOrCreateAcroForm();
|
|
41
|
-
return PDFForm.of(acroForm, _this);
|
|
42
|
-
};
|
|
43
|
-
assertIs(context, 'context', [[PDFContext, 'PDFContext']]);
|
|
44
|
-
assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);
|
|
45
|
-
this.context = context;
|
|
46
|
-
this.catalog = context.lookup(context.trailerInfo.Root);
|
|
47
|
-
this.isEncrypted = !!context.lookup(context.trailerInfo.Encrypt);
|
|
48
|
-
this.pageCache = Cache.populatedBy(this.computePages);
|
|
49
|
-
this.pageMap = new Map();
|
|
50
|
-
this.formCache = Cache.populatedBy(this.getOrCreateForm);
|
|
51
|
-
this.fonts = [];
|
|
52
|
-
this.images = [];
|
|
53
|
-
this.embeddedPages = [];
|
|
54
|
-
this.embeddedFiles = [];
|
|
55
|
-
this.javaScripts = [];
|
|
56
|
-
if (!ignoreEncryption && this.isEncrypted)
|
|
57
|
-
throw new EncryptedPDFError();
|
|
58
|
-
if (updateMetadata)
|
|
59
|
-
this.updateInfoDict();
|
|
60
|
-
}
|
|
24
|
+
export default class PDFDocument {
|
|
61
25
|
/**
|
|
62
26
|
* Load an existing [[PDFDocument]]. The input data can be provided in
|
|
63
27
|
* multiple formats:
|
|
@@ -110,50 +74,95 @@ var PDFDocument = /** @class */ (function () {
|
|
|
110
74
|
* @param options The options to be used when loading the document.
|
|
111
75
|
* @returns Resolves with a document loaded from the input.
|
|
112
76
|
*/
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
77
|
+
static load(pdf, options = {}) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const { ignoreEncryption = false, parseSpeed = ParseSpeeds.Slow, throwOnInvalidObject = false, warnOnInvalidObjects = false, updateMetadata = true, capNumbers = false, password, forIncrementalUpdate = false, } = options;
|
|
80
|
+
assertIs(pdf, 'pdf', ['string', Uint8Array, ArrayBuffer]);
|
|
81
|
+
assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);
|
|
82
|
+
assertIs(parseSpeed, 'parseSpeed', ['number']);
|
|
83
|
+
assertIs(throwOnInvalidObject, 'throwOnInvalidObject', ['boolean']);
|
|
84
|
+
assertIs(warnOnInvalidObjects, 'warnOnInvalidObjects', ['boolean']);
|
|
85
|
+
assertIs(password, 'password', ['string', 'undefined']);
|
|
86
|
+
assertIs(forIncrementalUpdate, 'forIncrementalUpdate', ['boolean']);
|
|
87
|
+
const bytes = toUint8Array(pdf);
|
|
88
|
+
const context = yield PDFParser.forBytesWithOptions(bytes, parseSpeed, throwOnInvalidObject, undefined, capNumbers, undefined, forIncrementalUpdate).parseDocument();
|
|
89
|
+
if (!!context.lookup(context.trailerInfo.Encrypt) &&
|
|
90
|
+
password !== undefined) {
|
|
91
|
+
// Decrypt
|
|
92
|
+
const fileIds = context.lookup(context.trailerInfo.ID, PDFArray);
|
|
93
|
+
const encryptDict = context.lookup(context.trailerInfo.Encrypt, PDFDict);
|
|
94
|
+
const decryptedContext = yield PDFParser.forBytesWithOptions(bytes, parseSpeed, throwOnInvalidObject, warnOnInvalidObjects, capNumbers, new CipherTransformFactory(encryptDict, fileIds.get(0).asBytes(), password), forIncrementalUpdate).parseDocument();
|
|
95
|
+
const pdfDoc = new PDFDocument(decryptedContext, true, updateMetadata);
|
|
96
|
+
if (forIncrementalUpdate)
|
|
97
|
+
pdfDoc.takeSnapshot();
|
|
98
|
+
return pdfDoc;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
const pdfDoc = new PDFDocument(context, ignoreEncryption, updateMetadata);
|
|
102
|
+
if (forIncrementalUpdate)
|
|
103
|
+
pdfDoc.takeSnapshot();
|
|
104
|
+
return pdfDoc;
|
|
105
|
+
}
|
|
136
106
|
});
|
|
137
|
-
}
|
|
107
|
+
}
|
|
138
108
|
/**
|
|
139
109
|
* Create a new [[PDFDocument]].
|
|
140
110
|
* @returns Resolves with the newly created document.
|
|
141
111
|
*/
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
catalog = PDFCatalog.withContextAndPages(context, pageTreeRef);
|
|
152
|
-
context.trailerInfo.Root = context.register(catalog);
|
|
153
|
-
return [2 /*return*/, new PDFDocument(context, false, updateMetadata)];
|
|
154
|
-
});
|
|
112
|
+
static create(options = {}) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
const { updateMetadata = true } = options;
|
|
115
|
+
const context = PDFContext.create();
|
|
116
|
+
const pageTree = PDFPageTree.withContext(context);
|
|
117
|
+
const pageTreeRef = context.register(pageTree);
|
|
118
|
+
const catalog = PDFCatalog.withContextAndPages(context, pageTreeRef);
|
|
119
|
+
context.trailerInfo.Root = context.register(catalog);
|
|
120
|
+
return new PDFDocument(context, false, updateMetadata);
|
|
155
121
|
});
|
|
156
|
-
}
|
|
122
|
+
}
|
|
123
|
+
constructor(context, ignoreEncryption, updateMetadata) {
|
|
124
|
+
/** The default word breaks used in PDFPage.drawText */
|
|
125
|
+
this.defaultWordBreaks = [' '];
|
|
126
|
+
this.computePages = () => {
|
|
127
|
+
const pages = [];
|
|
128
|
+
this.catalog.Pages().traverse((node, ref) => {
|
|
129
|
+
if (node instanceof PDFPageLeaf) {
|
|
130
|
+
let page = this.pageMap.get(node);
|
|
131
|
+
if (!page) {
|
|
132
|
+
page = PDFPage.of(node, ref, this);
|
|
133
|
+
this.pageMap.set(node, page);
|
|
134
|
+
}
|
|
135
|
+
pages.push(page);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
return pages;
|
|
139
|
+
};
|
|
140
|
+
this.getOrCreateForm = () => {
|
|
141
|
+
const acroForm = this.catalog.getOrCreateAcroForm();
|
|
142
|
+
return PDFForm.of(acroForm, this);
|
|
143
|
+
};
|
|
144
|
+
assertIs(context, 'context', [[PDFContext, 'PDFContext']]);
|
|
145
|
+
assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);
|
|
146
|
+
this.context = context;
|
|
147
|
+
this.catalog = context.lookup(context.trailerInfo.Root);
|
|
148
|
+
if (!!context.lookup(context.trailerInfo.Encrypt) && context.isDecrypted) {
|
|
149
|
+
// context.delete(context.trailerInfo.Encrypt);
|
|
150
|
+
delete context.trailerInfo.Encrypt;
|
|
151
|
+
}
|
|
152
|
+
this.isEncrypted = !!context.lookup(context.trailerInfo.Encrypt);
|
|
153
|
+
this.pageCache = Cache.populatedBy(this.computePages);
|
|
154
|
+
this.pageMap = new Map();
|
|
155
|
+
this.formCache = Cache.populatedBy(this.getOrCreateForm);
|
|
156
|
+
this.fonts = [];
|
|
157
|
+
this.images = [];
|
|
158
|
+
this.embeddedPages = [];
|
|
159
|
+
this.embeddedFiles = [];
|
|
160
|
+
this.javaScripts = [];
|
|
161
|
+
if (!ignoreEncryption && this.isEncrypted)
|
|
162
|
+
throw new EncryptedPDFError();
|
|
163
|
+
if (updateMetadata)
|
|
164
|
+
this.updateInfoDict();
|
|
165
|
+
}
|
|
157
166
|
/**
|
|
158
167
|
* Register a fontkit instance. This must be done before custom fonts can
|
|
159
168
|
* be embedded. See [here](https://github.com/Hopding/pdf-lib/tree/master#fontkit-installation)
|
|
@@ -172,9 +181,9 @@ var PDFDocument = /** @class */ (function () {
|
|
|
172
181
|
*
|
|
173
182
|
* @param fontkit The fontkit instance to be registered.
|
|
174
183
|
*/
|
|
175
|
-
|
|
184
|
+
registerFontkit(fontkit) {
|
|
176
185
|
this.fontkit = fontkit;
|
|
177
|
-
}
|
|
186
|
+
}
|
|
178
187
|
/**
|
|
179
188
|
* Get the [[PDFForm]] containing all interactive fields for this document.
|
|
180
189
|
* For example:
|
|
@@ -189,14 +198,14 @@ var PDFDocument = /** @class */ (function () {
|
|
|
189
198
|
* ```
|
|
190
199
|
* @returns The form for this document.
|
|
191
200
|
*/
|
|
192
|
-
|
|
193
|
-
|
|
201
|
+
getForm() {
|
|
202
|
+
const form = this.formCache.access();
|
|
194
203
|
if (form.hasXFA()) {
|
|
195
204
|
console.warn('Removing XFA form data as pdf-lib does not support reading or writing XFA');
|
|
196
205
|
form.deleteXFA();
|
|
197
206
|
}
|
|
198
207
|
return form;
|
|
199
|
-
}
|
|
208
|
+
}
|
|
200
209
|
/**
|
|
201
210
|
* Get this document's title metadata. The title appears in the
|
|
202
211
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -205,13 +214,13 @@ var PDFDocument = /** @class */ (function () {
|
|
|
205
214
|
* ```
|
|
206
215
|
* @returns A string containing the title of this document, if it has one.
|
|
207
216
|
*/
|
|
208
|
-
|
|
209
|
-
|
|
217
|
+
getTitle() {
|
|
218
|
+
const title = this.getInfoDict().lookup(PDFName.Title);
|
|
210
219
|
if (!title)
|
|
211
220
|
return undefined;
|
|
212
221
|
assertIsLiteralOrHexString(title);
|
|
213
222
|
return title.decodeText();
|
|
214
|
-
}
|
|
223
|
+
}
|
|
215
224
|
/**
|
|
216
225
|
* Get this document's author metadata. The author appears in the
|
|
217
226
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -220,13 +229,13 @@ var PDFDocument = /** @class */ (function () {
|
|
|
220
229
|
* ```
|
|
221
230
|
* @returns A string containing the author of this document, if it has one.
|
|
222
231
|
*/
|
|
223
|
-
|
|
224
|
-
|
|
232
|
+
getAuthor() {
|
|
233
|
+
const author = this.getInfoDict().lookup(PDFName.Author);
|
|
225
234
|
if (!author)
|
|
226
235
|
return undefined;
|
|
227
236
|
assertIsLiteralOrHexString(author);
|
|
228
237
|
return author.decodeText();
|
|
229
|
-
}
|
|
238
|
+
}
|
|
230
239
|
/**
|
|
231
240
|
* Get this document's subject metadata. The subject appears in the
|
|
232
241
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -235,13 +244,13 @@ var PDFDocument = /** @class */ (function () {
|
|
|
235
244
|
* ```
|
|
236
245
|
* @returns A string containing the subject of this document, if it has one.
|
|
237
246
|
*/
|
|
238
|
-
|
|
239
|
-
|
|
247
|
+
getSubject() {
|
|
248
|
+
const subject = this.getInfoDict().lookup(PDFName.Subject);
|
|
240
249
|
if (!subject)
|
|
241
250
|
return undefined;
|
|
242
251
|
assertIsLiteralOrHexString(subject);
|
|
243
252
|
return subject.decodeText();
|
|
244
|
-
}
|
|
253
|
+
}
|
|
245
254
|
/**
|
|
246
255
|
* Get this document's keywords metadata. The keywords appear in the
|
|
247
256
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -250,13 +259,13 @@ var PDFDocument = /** @class */ (function () {
|
|
|
250
259
|
* ```
|
|
251
260
|
* @returns A string containing the keywords of this document, if it has any.
|
|
252
261
|
*/
|
|
253
|
-
|
|
254
|
-
|
|
262
|
+
getKeywords() {
|
|
263
|
+
const keywords = this.getInfoDict().lookup(PDFName.Keywords);
|
|
255
264
|
if (!keywords)
|
|
256
265
|
return undefined;
|
|
257
266
|
assertIsLiteralOrHexString(keywords);
|
|
258
267
|
return keywords.decodeText();
|
|
259
|
-
}
|
|
268
|
+
}
|
|
260
269
|
/**
|
|
261
270
|
* Get this document's creator metadata. The creator appears in the
|
|
262
271
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -265,13 +274,13 @@ var PDFDocument = /** @class */ (function () {
|
|
|
265
274
|
* ```
|
|
266
275
|
* @returns A string containing the creator of this document, if it has one.
|
|
267
276
|
*/
|
|
268
|
-
|
|
269
|
-
|
|
277
|
+
getCreator() {
|
|
278
|
+
const creator = this.getInfoDict().lookup(PDFName.Creator);
|
|
270
279
|
if (!creator)
|
|
271
280
|
return undefined;
|
|
272
281
|
assertIsLiteralOrHexString(creator);
|
|
273
282
|
return creator.decodeText();
|
|
274
|
-
}
|
|
283
|
+
}
|
|
275
284
|
/**
|
|
276
285
|
* Get this document's producer metadata. The producer appears in the
|
|
277
286
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -280,13 +289,29 @@ var PDFDocument = /** @class */ (function () {
|
|
|
280
289
|
* ```
|
|
281
290
|
* @returns A string containing the producer of this document, if it has one.
|
|
282
291
|
*/
|
|
283
|
-
|
|
284
|
-
|
|
292
|
+
getProducer() {
|
|
293
|
+
const producer = this.getInfoDict().lookup(PDFName.Producer);
|
|
285
294
|
if (!producer)
|
|
286
295
|
return undefined;
|
|
287
296
|
assertIsLiteralOrHexString(producer);
|
|
288
297
|
return producer.decodeText();
|
|
289
|
-
}
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Get this document's language metadata. The language appears in the
|
|
301
|
+
* "Document Properties" section of most PDF readers. For example:
|
|
302
|
+
* ```js
|
|
303
|
+
* const language = pdfDoc.getLanguage()
|
|
304
|
+
* ```
|
|
305
|
+
* @returns A string containing the RFC 3066 _Language-Tag_ of this document,
|
|
306
|
+
* if it has one.
|
|
307
|
+
*/
|
|
308
|
+
getLanguage() {
|
|
309
|
+
const language = this.catalog.get(PDFName.of('Lang'));
|
|
310
|
+
if (!language)
|
|
311
|
+
return undefined;
|
|
312
|
+
assertIsLiteralOrHexString(language);
|
|
313
|
+
return language.decodeText();
|
|
314
|
+
}
|
|
290
315
|
/**
|
|
291
316
|
* Get this document's creation date metadata. The creation date appears in
|
|
292
317
|
* the "Document Properties" section of most PDF readers. For example:
|
|
@@ -296,13 +321,13 @@ var PDFDocument = /** @class */ (function () {
|
|
|
296
321
|
* @returns A Date containing the creation date of this document,
|
|
297
322
|
* if it has one.
|
|
298
323
|
*/
|
|
299
|
-
|
|
300
|
-
|
|
324
|
+
getCreationDate() {
|
|
325
|
+
const creationDate = this.getInfoDict().lookup(PDFName.CreationDate);
|
|
301
326
|
if (!creationDate)
|
|
302
327
|
return undefined;
|
|
303
328
|
assertIsLiteralOrHexString(creationDate);
|
|
304
329
|
return creationDate.decodeDate();
|
|
305
|
-
}
|
|
330
|
+
}
|
|
306
331
|
/**
|
|
307
332
|
* Get this document's modification date metadata. The modification date
|
|
308
333
|
* appears in the "Document Properties" section of most PDF readers.
|
|
@@ -313,13 +338,13 @@ var PDFDocument = /** @class */ (function () {
|
|
|
313
338
|
* @returns A Date containing the modification date of this document,
|
|
314
339
|
* if it has one.
|
|
315
340
|
*/
|
|
316
|
-
|
|
317
|
-
|
|
341
|
+
getModificationDate() {
|
|
342
|
+
const modificationDate = this.getInfoDict().lookup(PDFName.ModDate);
|
|
318
343
|
if (!modificationDate)
|
|
319
344
|
return undefined;
|
|
320
345
|
assertIsLiteralOrHexString(modificationDate);
|
|
321
346
|
return modificationDate.decodeDate();
|
|
322
|
-
}
|
|
347
|
+
}
|
|
323
348
|
/**
|
|
324
349
|
* Set this document's title metadata. The title will appear in the
|
|
325
350
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -337,16 +362,16 @@ var PDFDocument = /** @class */ (function () {
|
|
|
337
362
|
* @param title The title of this document.
|
|
338
363
|
* @param options The options to be used when setting the title.
|
|
339
364
|
*/
|
|
340
|
-
|
|
365
|
+
setTitle(title, options) {
|
|
341
366
|
assertIs(title, 'title', ['string']);
|
|
342
|
-
|
|
367
|
+
const key = PDFName.of('Title');
|
|
343
368
|
this.getInfoDict().set(key, PDFHexString.fromText(title));
|
|
344
369
|
// Indicate that readers should display the title rather than the filename
|
|
345
370
|
if (options === null || options === void 0 ? void 0 : options.showInWindowTitleBar) {
|
|
346
|
-
|
|
371
|
+
const prefs = this.catalog.getOrCreateViewerPreferences();
|
|
347
372
|
prefs.setDisplayDocTitle(true);
|
|
348
373
|
}
|
|
349
|
-
}
|
|
374
|
+
}
|
|
350
375
|
/**
|
|
351
376
|
* Set this document's author metadata. The author will appear in the
|
|
352
377
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -355,11 +380,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
355
380
|
* ```
|
|
356
381
|
* @param author The author of this document.
|
|
357
382
|
*/
|
|
358
|
-
|
|
383
|
+
setAuthor(author) {
|
|
359
384
|
assertIs(author, 'author', ['string']);
|
|
360
|
-
|
|
385
|
+
const key = PDFName.of('Author');
|
|
361
386
|
this.getInfoDict().set(key, PDFHexString.fromText(author));
|
|
362
|
-
}
|
|
387
|
+
}
|
|
363
388
|
/**
|
|
364
389
|
* Set this document's subject metadata. The subject will appear in the
|
|
365
390
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -368,11 +393,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
368
393
|
* ```
|
|
369
394
|
* @param subject The subject of this document.
|
|
370
395
|
*/
|
|
371
|
-
|
|
396
|
+
setSubject(subject) {
|
|
372
397
|
assertIs(subject, 'author', ['string']);
|
|
373
|
-
|
|
398
|
+
const key = PDFName.of('Subject');
|
|
374
399
|
this.getInfoDict().set(key, PDFHexString.fromText(subject));
|
|
375
|
-
}
|
|
400
|
+
}
|
|
376
401
|
/**
|
|
377
402
|
* Set this document's keyword metadata. These keywords will appear in the
|
|
378
403
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -381,11 +406,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
381
406
|
* ```
|
|
382
407
|
* @param keywords An array of keywords associated with this document.
|
|
383
408
|
*/
|
|
384
|
-
|
|
409
|
+
setKeywords(keywords) {
|
|
385
410
|
assertIs(keywords, 'keywords', [Array]);
|
|
386
|
-
|
|
411
|
+
const key = PDFName.of('Keywords');
|
|
387
412
|
this.getInfoDict().set(key, PDFHexString.fromText(keywords.join(' ')));
|
|
388
|
-
}
|
|
413
|
+
}
|
|
389
414
|
/**
|
|
390
415
|
* Set this document's creator metadata. The creator will appear in the
|
|
391
416
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -394,11 +419,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
394
419
|
* ```
|
|
395
420
|
* @param creator The creator of this document.
|
|
396
421
|
*/
|
|
397
|
-
|
|
422
|
+
setCreator(creator) {
|
|
398
423
|
assertIs(creator, 'creator', ['string']);
|
|
399
|
-
|
|
424
|
+
const key = PDFName.of('Creator');
|
|
400
425
|
this.getInfoDict().set(key, PDFHexString.fromText(creator));
|
|
401
|
-
}
|
|
426
|
+
}
|
|
402
427
|
/**
|
|
403
428
|
* Set this document's producer metadata. The producer will appear in the
|
|
404
429
|
* "Document Properties" section of most PDF readers. For example:
|
|
@@ -407,11 +432,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
407
432
|
* ```
|
|
408
433
|
* @param producer The producer of this document.
|
|
409
434
|
*/
|
|
410
|
-
|
|
435
|
+
setProducer(producer) {
|
|
411
436
|
assertIs(producer, 'creator', ['string']);
|
|
412
|
-
|
|
437
|
+
const key = PDFName.of('Producer');
|
|
413
438
|
this.getInfoDict().set(key, PDFHexString.fromText(producer));
|
|
414
|
-
}
|
|
439
|
+
}
|
|
415
440
|
/**
|
|
416
441
|
* Set this document's language metadata. The language will appear in the
|
|
417
442
|
* "Document Properties" section of some PDF readers. For example:
|
|
@@ -422,11 +447,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
422
447
|
* @param language An RFC 3066 _Language-Tag_ denoting the language of this
|
|
423
448
|
* document, or an empty string if the language is unknown.
|
|
424
449
|
*/
|
|
425
|
-
|
|
450
|
+
setLanguage(language) {
|
|
426
451
|
assertIs(language, 'language', ['string']);
|
|
427
|
-
|
|
452
|
+
const key = PDFName.of('Lang');
|
|
428
453
|
this.catalog.set(key, PDFString.of(language));
|
|
429
|
-
}
|
|
454
|
+
}
|
|
430
455
|
/**
|
|
431
456
|
* Set this document's creation date metadata. The creation date will appear
|
|
432
457
|
* in the "Document Properties" section of most PDF readers. For example:
|
|
@@ -435,11 +460,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
435
460
|
* ```
|
|
436
461
|
* @param creationDate The date this document was created.
|
|
437
462
|
*/
|
|
438
|
-
|
|
463
|
+
setCreationDate(creationDate) {
|
|
439
464
|
assertIs(creationDate, 'creationDate', [[Date, 'Date']]);
|
|
440
|
-
|
|
465
|
+
const key = PDFName.of('CreationDate');
|
|
441
466
|
this.getInfoDict().set(key, PDFString.fromDate(creationDate));
|
|
442
|
-
}
|
|
467
|
+
}
|
|
443
468
|
/**
|
|
444
469
|
* Set this document's modification date metadata. The modification date will
|
|
445
470
|
* appear in the "Document Properties" section of most PDF readers. For
|
|
@@ -449,11 +474,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
449
474
|
* ```
|
|
450
475
|
* @param modificationDate The date this document was last modified.
|
|
451
476
|
*/
|
|
452
|
-
|
|
477
|
+
setModificationDate(modificationDate) {
|
|
453
478
|
assertIs(modificationDate, 'modificationDate', [[Date, 'Date']]);
|
|
454
|
-
|
|
479
|
+
const key = PDFName.of('ModDate');
|
|
455
480
|
this.getInfoDict().set(key, PDFString.fromDate(modificationDate));
|
|
456
|
-
}
|
|
481
|
+
}
|
|
457
482
|
/**
|
|
458
483
|
* Get the number of pages contained in this document. For example:
|
|
459
484
|
* ```js
|
|
@@ -461,11 +486,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
461
486
|
* ```
|
|
462
487
|
* @returns The number of pages in this document.
|
|
463
488
|
*/
|
|
464
|
-
|
|
489
|
+
getPageCount() {
|
|
465
490
|
if (this.pageCount === undefined)
|
|
466
491
|
this.pageCount = this.getPages().length;
|
|
467
492
|
return this.pageCount;
|
|
468
|
-
}
|
|
493
|
+
}
|
|
469
494
|
/**
|
|
470
495
|
* Get an array of all the pages contained in this document. The pages are
|
|
471
496
|
* stored in the array in the same order that they are rendered in the
|
|
@@ -478,9 +503,9 @@ var PDFDocument = /** @class */ (function () {
|
|
|
478
503
|
* ```
|
|
479
504
|
* @returns An array of all the pages contained in this document.
|
|
480
505
|
*/
|
|
481
|
-
|
|
506
|
+
getPages() {
|
|
482
507
|
return this.pageCache.access();
|
|
483
|
-
}
|
|
508
|
+
}
|
|
484
509
|
/**
|
|
485
510
|
* Get the page rendered at a particular `index` of the document. For example:
|
|
486
511
|
* ```js
|
|
@@ -490,11 +515,11 @@ var PDFDocument = /** @class */ (function () {
|
|
|
490
515
|
* ```
|
|
491
516
|
* @returns The [[PDFPage]] rendered at the given `index` of the document.
|
|
492
517
|
*/
|
|
493
|
-
|
|
494
|
-
|
|
518
|
+
getPage(index) {
|
|
519
|
+
const pages = this.getPages();
|
|
495
520
|
assertRange(index, 'index', 0, pages.length - 1);
|
|
496
521
|
return pages[index];
|
|
497
|
-
}
|
|
522
|
+
}
|
|
498
523
|
/**
|
|
499
524
|
* Get an array of indices for all the pages contained in this document. The
|
|
500
525
|
* array will contain a range of integers from
|
|
@@ -510,9 +535,9 @@ var PDFDocument = /** @class */ (function () {
|
|
|
510
535
|
* ```
|
|
511
536
|
* @returns An array of indices for all pages contained in this document.
|
|
512
537
|
*/
|
|
513
|
-
|
|
538
|
+
getPageIndices() {
|
|
514
539
|
return range(0, this.getPageCount());
|
|
515
|
-
}
|
|
540
|
+
}
|
|
516
541
|
/**
|
|
517
542
|
* Remove the page at a given index from this document. For example:
|
|
518
543
|
* ```js
|
|
@@ -524,14 +549,14 @@ var PDFDocument = /** @class */ (function () {
|
|
|
524
549
|
* in the document.
|
|
525
550
|
* @param index The index of the page to be removed.
|
|
526
551
|
*/
|
|
527
|
-
|
|
528
|
-
|
|
552
|
+
removePage(index) {
|
|
553
|
+
const pageCount = this.getPageCount();
|
|
529
554
|
if (this.pageCount === 0)
|
|
530
555
|
throw new RemovePageFromEmptyDocumentError();
|
|
531
556
|
assertRange(index, 'index', 0, pageCount - 1);
|
|
532
557
|
this.catalog.removeLeafNode(index);
|
|
533
558
|
this.pageCount = pageCount - 1;
|
|
534
|
-
}
|
|
559
|
+
}
|
|
535
560
|
/**
|
|
536
561
|
* Add a page to the end of this document. This method accepts three
|
|
537
562
|
* different value types for the `page` parameter:
|
|
@@ -563,10 +588,10 @@ var PDFDocument = /** @class */ (function () {
|
|
|
563
588
|
* @param page Optionally, the desired dimensions or existing page.
|
|
564
589
|
* @returns The newly created (or existing) page.
|
|
565
590
|
*/
|
|
566
|
-
|
|
591
|
+
addPage(page) {
|
|
567
592
|
assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);
|
|
568
593
|
return this.insertPage(this.getPageCount(), page);
|
|
569
|
-
}
|
|
594
|
+
}
|
|
570
595
|
/**
|
|
571
596
|
* Insert a page at a given index within this document. This method accepts
|
|
572
597
|
* three different value types for the `page` parameter:
|
|
@@ -599,25 +624,25 @@ var PDFDocument = /** @class */ (function () {
|
|
|
599
624
|
* @param page Optionally, the desired dimensions or existing page.
|
|
600
625
|
* @returns The newly created (or existing) page.
|
|
601
626
|
*/
|
|
602
|
-
|
|
603
|
-
|
|
627
|
+
insertPage(index, page) {
|
|
628
|
+
const pageCount = this.getPageCount();
|
|
604
629
|
assertRange(index, 'index', 0, pageCount);
|
|
605
630
|
assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);
|
|
606
631
|
if (!page || Array.isArray(page)) {
|
|
607
|
-
|
|
632
|
+
const dims = Array.isArray(page) ? page : PageSizes.A4;
|
|
608
633
|
page = PDFPage.create(this);
|
|
609
|
-
page.setSize
|
|
634
|
+
page.setSize(...dims);
|
|
610
635
|
}
|
|
611
636
|
else if (page.doc !== this) {
|
|
612
637
|
throw new ForeignPageError();
|
|
613
638
|
}
|
|
614
|
-
|
|
639
|
+
const parentRef = this.catalog.insertLeafNode(page.ref, index);
|
|
615
640
|
page.node.setParent(parentRef);
|
|
616
641
|
this.pageMap.set(page.node, page);
|
|
617
642
|
this.pageCache.invalidate();
|
|
618
643
|
this.pageCount = pageCount + 1;
|
|
619
644
|
return page;
|
|
620
|
-
}
|
|
645
|
+
}
|
|
621
646
|
/**
|
|
622
647
|
* Copy pages from a source document into this document. Allows pages to be
|
|
623
648
|
* copied between different [[PDFDocument]] instances. For example:
|
|
@@ -636,31 +661,21 @@ var PDFDocument = /** @class */ (function () {
|
|
|
636
661
|
* @param indices The indices of the pages that should be copied.
|
|
637
662
|
* @returns Resolves with an array of pages copied into this document.
|
|
638
663
|
*/
|
|
639
|
-
|
|
640
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
copiedPages = new Array(indices.length);
|
|
653
|
-
for (idx = 0, len = indices.length; idx < len; idx++) {
|
|
654
|
-
srcPage = srcPages[indices[idx]];
|
|
655
|
-
copiedPage = copier.copy(srcPage.node);
|
|
656
|
-
ref = this.context.register(copiedPage);
|
|
657
|
-
copiedPages[idx] = PDFPage.of(copiedPage, ref, this);
|
|
658
|
-
}
|
|
659
|
-
return [2 /*return*/, copiedPages];
|
|
660
|
-
}
|
|
661
|
-
});
|
|
664
|
+
copyPages(srcDoc, indices) {
|
|
665
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
666
|
+
assertIs(srcDoc, 'srcDoc', [[PDFDocument, 'PDFDocument']]);
|
|
667
|
+
assertIs(indices, 'indices', [Array]);
|
|
668
|
+
yield srcDoc.flush();
|
|
669
|
+
const copier = PDFObjectCopier.for(srcDoc.context, this.context);
|
|
670
|
+
const srcPages = srcDoc.getPages();
|
|
671
|
+
// Copy each page in a separate thread
|
|
672
|
+
const copiedPages = indices
|
|
673
|
+
.map((i) => srcPages[i])
|
|
674
|
+
.map((page) => __awaiter(this, void 0, void 0, function* () { return copier.copy(page.node); }))
|
|
675
|
+
.map((p) => p.then((copy) => PDFPage.of(copy, this.context.register(copy), this)));
|
|
676
|
+
return Promise.all(copiedPages);
|
|
662
677
|
});
|
|
663
|
-
}
|
|
678
|
+
}
|
|
664
679
|
/**
|
|
665
680
|
* Get a copy of this document.
|
|
666
681
|
*
|
|
@@ -675,47 +690,41 @@ var PDFDocument = /** @class */ (function () {
|
|
|
675
690
|
*
|
|
676
691
|
* @returns Resolves with a copy this document.
|
|
677
692
|
*/
|
|
678
|
-
|
|
679
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
pdfCopy.setTitle(this.getTitle());
|
|
712
|
-
}
|
|
713
|
-
pdfCopy.defaultWordBreaks = this.defaultWordBreaks;
|
|
714
|
-
return [2 /*return*/, pdfCopy];
|
|
715
|
-
}
|
|
716
|
-
});
|
|
693
|
+
copy() {
|
|
694
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
695
|
+
const pdfCopy = yield PDFDocument.create();
|
|
696
|
+
const contentPages = yield pdfCopy.copyPages(this, this.getPageIndices());
|
|
697
|
+
for (let idx = 0, len = contentPages.length; idx < len; idx++) {
|
|
698
|
+
pdfCopy.addPage(contentPages[idx]);
|
|
699
|
+
}
|
|
700
|
+
if (this.getAuthor() !== undefined) {
|
|
701
|
+
pdfCopy.setAuthor(this.getAuthor());
|
|
702
|
+
}
|
|
703
|
+
if (this.getCreationDate() !== undefined) {
|
|
704
|
+
pdfCopy.setCreationDate(this.getCreationDate());
|
|
705
|
+
}
|
|
706
|
+
if (this.getCreator() !== undefined) {
|
|
707
|
+
pdfCopy.setCreator(this.getCreator());
|
|
708
|
+
}
|
|
709
|
+
if (this.getLanguage() !== undefined) {
|
|
710
|
+
pdfCopy.setLanguage(this.getLanguage());
|
|
711
|
+
}
|
|
712
|
+
if (this.getModificationDate() !== undefined) {
|
|
713
|
+
pdfCopy.setModificationDate(this.getModificationDate());
|
|
714
|
+
}
|
|
715
|
+
if (this.getProducer() !== undefined) {
|
|
716
|
+
pdfCopy.setProducer(this.getProducer());
|
|
717
|
+
}
|
|
718
|
+
if (this.getSubject() !== undefined) {
|
|
719
|
+
pdfCopy.setSubject(this.getSubject());
|
|
720
|
+
}
|
|
721
|
+
if (this.getTitle() !== undefined) {
|
|
722
|
+
pdfCopy.setTitle(this.getTitle());
|
|
723
|
+
}
|
|
724
|
+
pdfCopy.defaultWordBreaks = this.defaultWordBreaks;
|
|
725
|
+
return pdfCopy;
|
|
717
726
|
});
|
|
718
|
-
}
|
|
727
|
+
}
|
|
719
728
|
/**
|
|
720
729
|
* Add JavaScript to this document. The supplied `script` is executed when the
|
|
721
730
|
* document is opened. The `script` can be used to perform some operation
|
|
@@ -740,14 +749,14 @@ var PDFDocument = /** @class */ (function () {
|
|
|
740
749
|
* @param name The name of the script. Must be unique per document.
|
|
741
750
|
* @param script The JavaScript to execute.
|
|
742
751
|
*/
|
|
743
|
-
|
|
752
|
+
addJavaScript(name, script) {
|
|
744
753
|
assertIs(name, 'name', ['string']);
|
|
745
754
|
assertIs(script, 'script', ['string']);
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
755
|
+
const embedder = JavaScriptEmbedder.for(script, name);
|
|
756
|
+
const ref = this.context.nextRef();
|
|
757
|
+
const javaScript = PDFJavaScript.of(ref, this, embedder);
|
|
749
758
|
this.javaScripts.push(javaScript);
|
|
750
|
-
}
|
|
759
|
+
}
|
|
751
760
|
/**
|
|
752
761
|
* Add an attachment to this document. Attachments are visible in the
|
|
753
762
|
* "Attachments" panel of Adobe Acrobat and some other PDF readers. Any
|
|
@@ -803,29 +812,116 @@ var PDFDocument = /** @class */ (function () {
|
|
|
803
812
|
* @param name The name of the file to be attached.
|
|
804
813
|
* @returns Resolves when the attachment is complete.
|
|
805
814
|
*/
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
815
|
+
attach(attachment, name, options = {}) {
|
|
816
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
817
|
+
assertIs(attachment, 'attachment', ['string', Uint8Array, ArrayBuffer]);
|
|
818
|
+
assertIs(name, 'name', ['string']);
|
|
819
|
+
assertOrUndefined(options.mimeType, 'mimeType', ['string']);
|
|
820
|
+
assertOrUndefined(options.description, 'description', ['string']);
|
|
821
|
+
assertOrUndefined(options.creationDate, 'options.creationDate', [Date]);
|
|
822
|
+
assertOrUndefined(options.modificationDate, 'options.modificationDate', [
|
|
823
|
+
Date,
|
|
824
|
+
]);
|
|
825
|
+
assertIsOneOfOrUndefined(options.afRelationship, 'options.afRelationship', AFRelationship);
|
|
826
|
+
const bytes = toUint8Array(attachment);
|
|
827
|
+
const embedder = FileEmbedder.for(bytes, name, options);
|
|
828
|
+
const ref = this.context.nextRef();
|
|
829
|
+
const embeddedFile = PDFEmbeddedFile.of(ref, this, embedder);
|
|
830
|
+
this.embeddedFiles.push(embeddedFile);
|
|
831
|
+
});
|
|
832
|
+
}
|
|
833
|
+
getRawAttachments() {
|
|
834
|
+
if (!this.catalog.has(PDFName.of('Names')))
|
|
835
|
+
return [];
|
|
836
|
+
const Names = this.catalog.lookup(PDFName.of('Names'), PDFDict);
|
|
837
|
+
if (!Names.has(PDFName.of('EmbeddedFiles')))
|
|
838
|
+
return [];
|
|
839
|
+
const EmbeddedFiles = Names.lookup(PDFName.of('EmbeddedFiles'), PDFDict);
|
|
840
|
+
if (!EmbeddedFiles.has(PDFName.of('Names')))
|
|
841
|
+
return [];
|
|
842
|
+
const EFNames = EmbeddedFiles.lookup(PDFName.of('Names'), PDFArray);
|
|
843
|
+
const rawAttachments = [];
|
|
844
|
+
for (let idx = 0, len = EFNames.size(); idx < len; idx += 2) {
|
|
845
|
+
const fileName = EFNames.lookup(idx);
|
|
846
|
+
const fileSpec = EFNames.lookup(idx + 1, PDFDict);
|
|
847
|
+
rawAttachments.push({ fileName, fileSpec });
|
|
848
|
+
}
|
|
849
|
+
return rawAttachments;
|
|
850
|
+
}
|
|
851
|
+
getSavedAttachments() {
|
|
852
|
+
const rawAttachments = this.getRawAttachments();
|
|
853
|
+
return rawAttachments.flatMap(({ fileName, fileSpec }) => {
|
|
854
|
+
const efDict = fileSpec.lookup(PDFName.of('EF'));
|
|
855
|
+
if (!(efDict instanceof PDFDict))
|
|
856
|
+
return [];
|
|
857
|
+
const stream = efDict.lookup(PDFName.of('F'));
|
|
858
|
+
if (!(stream instanceof PDFStream))
|
|
859
|
+
return [];
|
|
860
|
+
const afr = fileSpec.lookup(PDFName.of('AFRelationship'));
|
|
861
|
+
const afRelationship = afr instanceof PDFName
|
|
862
|
+
? afr.toString().slice(1) // Remove leading slash
|
|
863
|
+
: afr instanceof PDFString
|
|
864
|
+
? afr.decodeText()
|
|
865
|
+
: undefined;
|
|
866
|
+
const embeddedFileDict = stream.dict;
|
|
867
|
+
const subtype = embeddedFileDict.lookup(PDFName.of('Subtype'));
|
|
868
|
+
const mimeType = subtype instanceof PDFName
|
|
869
|
+
? subtype.toString().slice(1)
|
|
870
|
+
: subtype instanceof PDFString
|
|
871
|
+
? subtype.decodeText()
|
|
872
|
+
: undefined;
|
|
873
|
+
const paramsDict = embeddedFileDict.lookup(PDFName.of('Params'), PDFDict);
|
|
874
|
+
let creationDate;
|
|
875
|
+
let modificationDate;
|
|
876
|
+
if (paramsDict instanceof PDFDict) {
|
|
877
|
+
const creationDateRaw = paramsDict.lookup(PDFName.of('CreationDate'));
|
|
878
|
+
const modDateRaw = paramsDict.lookup(PDFName.of('ModDate'));
|
|
879
|
+
if (creationDateRaw instanceof PDFString) {
|
|
880
|
+
creationDate = creationDateRaw.decodeDate();
|
|
881
|
+
}
|
|
882
|
+
if (modDateRaw instanceof PDFString) {
|
|
883
|
+
modificationDate = modDateRaw.decodeDate();
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
const description = fileSpec.lookup(PDFName.of('Desc')).decodeText();
|
|
887
|
+
return [
|
|
888
|
+
{
|
|
889
|
+
name: fileName.decodeText(),
|
|
890
|
+
data: decodePDFRawStream(stream).decode(),
|
|
891
|
+
mimeType: mimeType === null || mimeType === void 0 ? void 0 : mimeType.replace(/#([0-9A-Fa-f]{2})/g, (_, hex) => String.fromCharCode(parseInt(hex, 16))),
|
|
892
|
+
afRelationship: afRelationship,
|
|
893
|
+
description,
|
|
894
|
+
creationDate,
|
|
895
|
+
modificationDate,
|
|
896
|
+
},
|
|
897
|
+
];
|
|
827
898
|
});
|
|
828
|
-
}
|
|
899
|
+
}
|
|
900
|
+
getUnsavedAttachments() {
|
|
901
|
+
const attachments = this.embeddedFiles.map((file) => {
|
|
902
|
+
const embedder = file.getEmbedder();
|
|
903
|
+
return {
|
|
904
|
+
name: embedder.fileName,
|
|
905
|
+
data: embedder.getFileData(),
|
|
906
|
+
description: embedder.options.description,
|
|
907
|
+
mimeType: embedder.options.mimeType,
|
|
908
|
+
afRelationship: embedder.options.afRelationship,
|
|
909
|
+
creationDate: embedder.options.creationDate,
|
|
910
|
+
modificationDate: embedder.options.modificationDate,
|
|
911
|
+
};
|
|
912
|
+
});
|
|
913
|
+
return attachments;
|
|
914
|
+
}
|
|
915
|
+
/**
|
|
916
|
+
* Get all attachments that are embedded in this document.
|
|
917
|
+
*
|
|
918
|
+
* @returns Array of attachments with name and data
|
|
919
|
+
*/
|
|
920
|
+
getAttachments() {
|
|
921
|
+
const savedAttachments = this.getSavedAttachments();
|
|
922
|
+
const unsavedAttachments = this.getUnsavedAttachments();
|
|
923
|
+
return [...savedAttachments, ...unsavedAttachments];
|
|
924
|
+
}
|
|
829
925
|
/**
|
|
830
926
|
* Embed a font into this document. The input data can be provided in multiple
|
|
831
927
|
* formats:
|
|
@@ -861,45 +957,31 @@ var PDFDocument = /** @class */ (function () {
|
|
|
861
957
|
* @param options The options to be used when embedding the font.
|
|
862
958
|
* @returns Resolves with the embedded font.
|
|
863
959
|
*/
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
case 4:
|
|
888
|
-
_b = _c.sent();
|
|
889
|
-
_c.label = 5;
|
|
890
|
-
case 5:
|
|
891
|
-
embedder = _b;
|
|
892
|
-
return [3 /*break*/, 7];
|
|
893
|
-
case 6: throw new TypeError('`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`');
|
|
894
|
-
case 7:
|
|
895
|
-
ref = this.context.nextRef();
|
|
896
|
-
pdfFont = PDFFont.of(ref, this, embedder);
|
|
897
|
-
this.fonts.push(pdfFont);
|
|
898
|
-
return [2 /*return*/, pdfFont];
|
|
899
|
-
}
|
|
900
|
-
});
|
|
960
|
+
embedFont(font, options = {}) {
|
|
961
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
962
|
+
const { subset = false, customName, features } = options;
|
|
963
|
+
assertIs(font, 'font', ['string', Uint8Array, ArrayBuffer]);
|
|
964
|
+
assertIs(subset, 'subset', ['boolean']);
|
|
965
|
+
let embedder;
|
|
966
|
+
if (isStandardFont(font)) {
|
|
967
|
+
embedder = StandardFontEmbedder.for(font, customName);
|
|
968
|
+
}
|
|
969
|
+
else if (canBeConvertedToUint8Array(font)) {
|
|
970
|
+
const bytes = toUint8Array(font);
|
|
971
|
+
const fontkit = this.assertFontkit();
|
|
972
|
+
embedder = subset
|
|
973
|
+
? yield CustomFontSubsetEmbedder.for(fontkit, bytes, customName, features)
|
|
974
|
+
: yield CustomFontEmbedder.for(fontkit, bytes, customName, features);
|
|
975
|
+
}
|
|
976
|
+
else {
|
|
977
|
+
throw new TypeError('`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`');
|
|
978
|
+
}
|
|
979
|
+
const ref = this.context.nextRef();
|
|
980
|
+
const pdfFont = PDFFont.of(ref, this, embedder);
|
|
981
|
+
this.fonts.push(pdfFont);
|
|
982
|
+
return pdfFont;
|
|
901
983
|
});
|
|
902
|
-
}
|
|
984
|
+
}
|
|
903
985
|
/**
|
|
904
986
|
* Embed a standard font into this document.
|
|
905
987
|
* For example:
|
|
@@ -911,17 +993,17 @@ var PDFDocument = /** @class */ (function () {
|
|
|
911
993
|
* @param customName The name to be used when embedding the font.
|
|
912
994
|
* @returns The embedded font.
|
|
913
995
|
*/
|
|
914
|
-
|
|
996
|
+
embedStandardFont(font, customName) {
|
|
915
997
|
assertIs(font, 'font', ['string']);
|
|
916
998
|
if (!isStandardFont(font)) {
|
|
917
999
|
throw new TypeError('`font` must be one of type `StandardFonts`');
|
|
918
1000
|
}
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
1001
|
+
const embedder = StandardFontEmbedder.for(font, customName);
|
|
1002
|
+
const ref = this.context.nextRef();
|
|
1003
|
+
const pdfFont = PDFFont.of(ref, this, embedder);
|
|
922
1004
|
this.fonts.push(pdfFont);
|
|
923
1005
|
return pdfFont;
|
|
924
|
-
}
|
|
1006
|
+
}
|
|
925
1007
|
/**
|
|
926
1008
|
* Embed a JPEG image into this document. The input data can be provided in
|
|
927
1009
|
* multiple formats:
|
|
@@ -952,25 +1034,17 @@ var PDFDocument = /** @class */ (function () {
|
|
|
952
1034
|
* @param jpg The input data for a JPEG image.
|
|
953
1035
|
* @returns Resolves with the embedded image.
|
|
954
1036
|
*/
|
|
955
|
-
|
|
956
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
case 1:
|
|
965
|
-
embedder = _a.sent();
|
|
966
|
-
ref = this.context.nextRef();
|
|
967
|
-
pdfImage = PDFImage.of(ref, this, embedder);
|
|
968
|
-
this.images.push(pdfImage);
|
|
969
|
-
return [2 /*return*/, pdfImage];
|
|
970
|
-
}
|
|
971
|
-
});
|
|
1037
|
+
embedJpg(jpg) {
|
|
1038
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1039
|
+
assertIs(jpg, 'jpg', ['string', Uint8Array, ArrayBuffer]);
|
|
1040
|
+
const bytes = toUint8Array(jpg);
|
|
1041
|
+
const embedder = yield JpegEmbedder.for(bytes);
|
|
1042
|
+
const ref = this.context.nextRef();
|
|
1043
|
+
const pdfImage = PDFImage.of(ref, this, embedder);
|
|
1044
|
+
this.images.push(pdfImage);
|
|
1045
|
+
return pdfImage;
|
|
972
1046
|
});
|
|
973
|
-
}
|
|
1047
|
+
}
|
|
974
1048
|
/**
|
|
975
1049
|
* Embed a PNG image into this document. The input data can be provided in
|
|
976
1050
|
* multiple formats:
|
|
@@ -1001,25 +1075,47 @@ var PDFDocument = /** @class */ (function () {
|
|
|
1001
1075
|
* @param png The input data for a PNG image.
|
|
1002
1076
|
* @returns Resolves with the embedded image.
|
|
1003
1077
|
*/
|
|
1004
|
-
|
|
1005
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1078
|
+
embedPng(png) {
|
|
1079
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1080
|
+
assertIs(png, 'png', ['string', Uint8Array, ArrayBuffer]);
|
|
1081
|
+
const bytes = toUint8Array(png);
|
|
1082
|
+
const embedder = yield PngEmbedder.for(bytes);
|
|
1083
|
+
const ref = this.context.nextRef();
|
|
1084
|
+
const pdfImage = PDFImage.of(ref, this, embedder);
|
|
1085
|
+
this.images.push(pdfImage);
|
|
1086
|
+
return pdfImage;
|
|
1087
|
+
});
|
|
1088
|
+
}
|
|
1089
|
+
embedSvg(svg) {
|
|
1090
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1091
|
+
if (!svg)
|
|
1092
|
+
return new PDFSvg(svg);
|
|
1093
|
+
const parsedSvg = parseHtml(svg);
|
|
1094
|
+
const findImages = (element) => {
|
|
1095
|
+
if (element.tagName === 'image')
|
|
1096
|
+
return [element];
|
|
1097
|
+
else {
|
|
1098
|
+
return element.childNodes
|
|
1099
|
+
.map((child) => child.nodeType === NodeType.ELEMENT_NODE ? findImages(child) : [])
|
|
1100
|
+
.flat();
|
|
1019
1101
|
}
|
|
1020
|
-
}
|
|
1102
|
+
};
|
|
1103
|
+
const images = findImages(parsedSvg);
|
|
1104
|
+
const imagesDict = {};
|
|
1105
|
+
yield Promise.all(images.map((image) => __awaiter(this, void 0, void 0, function* () {
|
|
1106
|
+
var _a;
|
|
1107
|
+
const href = (_a = image.attributes.href) !== null && _a !== void 0 ? _a : image.attributes['xlink:href'];
|
|
1108
|
+
if (!href || imagesDict[href])
|
|
1109
|
+
return;
|
|
1110
|
+
const isPng = href.match(/\.png(\?|$)|^data:image\/png;base64/gim);
|
|
1111
|
+
const pdfImage = isPng
|
|
1112
|
+
? yield this.embedPng(href)
|
|
1113
|
+
: yield this.embedJpg(href);
|
|
1114
|
+
imagesDict[href] = pdfImage;
|
|
1115
|
+
})));
|
|
1116
|
+
return new PDFSvg(svg, imagesDict);
|
|
1021
1117
|
});
|
|
1022
|
-
}
|
|
1118
|
+
}
|
|
1023
1119
|
/**
|
|
1024
1120
|
* Embed one or more PDF pages into this document.
|
|
1025
1121
|
*
|
|
@@ -1040,35 +1136,20 @@ var PDFDocument = /** @class */ (function () {
|
|
|
1040
1136
|
* @param indices The indices of the pages that should be embedded.
|
|
1041
1137
|
* @returns Resolves with an array of the embedded pages.
|
|
1042
1138
|
*/
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
]);
|
|
1056
|
-
assertIs(indices, 'indices', [Array]);
|
|
1057
|
-
if (!(pdf instanceof PDFDocument)) return [3 /*break*/, 1];
|
|
1058
|
-
_a = pdf;
|
|
1059
|
-
return [3 /*break*/, 3];
|
|
1060
|
-
case 1: return [4 /*yield*/, PDFDocument.load(pdf)];
|
|
1061
|
-
case 2:
|
|
1062
|
-
_a = _b.sent();
|
|
1063
|
-
_b.label = 3;
|
|
1064
|
-
case 3:
|
|
1065
|
-
srcDoc = _a;
|
|
1066
|
-
srcPages = pluckIndices(srcDoc.getPages(), indices);
|
|
1067
|
-
return [2 /*return*/, this.embedPages(srcPages)];
|
|
1068
|
-
}
|
|
1069
|
-
});
|
|
1139
|
+
embedPdf(pdf, indices = [0]) {
|
|
1140
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1141
|
+
assertIs(pdf, 'pdf', [
|
|
1142
|
+
'string',
|
|
1143
|
+
Uint8Array,
|
|
1144
|
+
ArrayBuffer,
|
|
1145
|
+
[PDFDocument, 'PDFDocument'],
|
|
1146
|
+
]);
|
|
1147
|
+
assertIs(indices, 'indices', [Array]);
|
|
1148
|
+
const srcDoc = pdf instanceof PDFDocument ? pdf : yield PDFDocument.load(pdf);
|
|
1149
|
+
const srcPages = pluckIndices(srcDoc.getPages(), indices);
|
|
1150
|
+
return this.embedPages(srcPages);
|
|
1070
1151
|
});
|
|
1071
|
-
}
|
|
1152
|
+
}
|
|
1072
1153
|
/**
|
|
1073
1154
|
* Embed a single PDF page into this document.
|
|
1074
1155
|
*
|
|
@@ -1101,21 +1182,13 @@ var PDFDocument = /** @class */ (function () {
|
|
|
1101
1182
|
* page anywhere it is drawn.
|
|
1102
1183
|
* @returns Resolves with the embedded pdf page.
|
|
1103
1184
|
*/
|
|
1104
|
-
|
|
1105
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
case 0:
|
|
1110
|
-
assertIs(page, 'page', [[PDFPage, 'PDFPage']]);
|
|
1111
|
-
return [4 /*yield*/, this.embedPages([page], [boundingBox], [transformationMatrix])];
|
|
1112
|
-
case 1:
|
|
1113
|
-
embeddedPage = (_a.sent())[0];
|
|
1114
|
-
return [2 /*return*/, embeddedPage];
|
|
1115
|
-
}
|
|
1116
|
-
});
|
|
1185
|
+
embedPage(page, boundingBox, transformationMatrix) {
|
|
1186
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1187
|
+
assertIs(page, 'page', [[PDFPage, 'PDFPage']]);
|
|
1188
|
+
const [embeddedPage] = yield this.embedPages([page], [boundingBox], [transformationMatrix]);
|
|
1189
|
+
return embeddedPage;
|
|
1117
1190
|
});
|
|
1118
|
-
}
|
|
1191
|
+
}
|
|
1119
1192
|
/**
|
|
1120
1193
|
* Embed one or more PDF pages into this document.
|
|
1121
1194
|
*
|
|
@@ -1144,53 +1217,38 @@ var PDFDocument = /** @class */ (function () {
|
|
|
1144
1217
|
* (each page's transformation will apply anywhere it is drawn).
|
|
1145
1218
|
* @returns Resolves with an array of the embedded pdf pages.
|
|
1146
1219
|
*/
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
return [2 /*return*/, []];
|
|
1158
|
-
// Assert all pages have the same context
|
|
1159
|
-
for (idx = 0, len = pages.length - 1; idx < len; idx++) {
|
|
1160
|
-
currPage = pages[idx];
|
|
1161
|
-
nextPage = pages[idx + 1];
|
|
1162
|
-
if (currPage.node.context !== nextPage.node.context) {
|
|
1163
|
-
throw new PageEmbeddingMismatchedContextError();
|
|
1164
|
-
}
|
|
1165
|
-
}
|
|
1166
|
-
context = pages[0].node.context;
|
|
1167
|
-
maybeCopyPage = context === this.context
|
|
1168
|
-
? function (p) { return p; }
|
|
1169
|
-
: PDFObjectCopier.for(context, this.context).copy;
|
|
1170
|
-
embeddedPages = new Array(pages.length);
|
|
1171
|
-
idx = 0, len = pages.length;
|
|
1172
|
-
_b.label = 1;
|
|
1173
|
-
case 1:
|
|
1174
|
-
if (!(idx < len)) return [3 /*break*/, 4];
|
|
1175
|
-
page = maybeCopyPage(pages[idx].node);
|
|
1176
|
-
box = boundingBoxes[idx];
|
|
1177
|
-
matrix = transformationMatrices[idx];
|
|
1178
|
-
return [4 /*yield*/, PDFPageEmbedder.for(page, box, matrix)];
|
|
1179
|
-
case 2:
|
|
1180
|
-
embedder = _b.sent();
|
|
1181
|
-
ref = this.context.nextRef();
|
|
1182
|
-
embeddedPages[idx] = PDFEmbeddedPage.of(ref, this, embedder);
|
|
1183
|
-
_b.label = 3;
|
|
1184
|
-
case 3:
|
|
1185
|
-
idx++;
|
|
1186
|
-
return [3 /*break*/, 1];
|
|
1187
|
-
case 4:
|
|
1188
|
-
(_a = this.embeddedPages).push.apply(_a, embeddedPages);
|
|
1189
|
-
return [2 /*return*/, embeddedPages];
|
|
1220
|
+
embedPages(pages, boundingBoxes = [], transformationMatrices = []) {
|
|
1221
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1222
|
+
if (pages.length === 0)
|
|
1223
|
+
return [];
|
|
1224
|
+
// Assert all pages have the same context
|
|
1225
|
+
for (let idx = 0, len = pages.length - 1; idx < len; idx++) {
|
|
1226
|
+
const currPage = pages[idx];
|
|
1227
|
+
const nextPage = pages[idx + 1];
|
|
1228
|
+
if (currPage.node.context !== nextPage.node.context) {
|
|
1229
|
+
throw new PageEmbeddingMismatchedContextError();
|
|
1190
1230
|
}
|
|
1191
|
-
}
|
|
1231
|
+
}
|
|
1232
|
+
const context = pages[0].node.context;
|
|
1233
|
+
const maybeCopyPage = context === this.context
|
|
1234
|
+
? (p) => p
|
|
1235
|
+
: PDFObjectCopier.for(context, this.context).copy;
|
|
1236
|
+
const embeddedPages = new Array(pages.length);
|
|
1237
|
+
for (let idx = 0, len = pages.length; idx < len; idx++) {
|
|
1238
|
+
const page = maybeCopyPage(pages[idx].node);
|
|
1239
|
+
const box = boundingBoxes[idx];
|
|
1240
|
+
const matrix = transformationMatrices[idx];
|
|
1241
|
+
const embedder = yield PDFPageEmbedder.for(page, box, matrix);
|
|
1242
|
+
const ref = this.context.nextRef();
|
|
1243
|
+
embeddedPages[idx] = PDFEmbeddedPage.of(ref, this, embedder);
|
|
1244
|
+
}
|
|
1245
|
+
this.embeddedPages.push(...embeddedPages);
|
|
1246
|
+
return embeddedPages;
|
|
1192
1247
|
});
|
|
1193
|
-
}
|
|
1248
|
+
}
|
|
1249
|
+
encrypt(options) {
|
|
1250
|
+
this.context.security = PDFSecurity.create(this.context, options).encrypt();
|
|
1251
|
+
}
|
|
1194
1252
|
/**
|
|
1195
1253
|
* > **NOTE:** You shouldn't need to call this method directly. The [[save]]
|
|
1196
1254
|
* > and [[saveAsBase64]] methods will automatically ensure that all embedded
|
|
@@ -1201,30 +1259,15 @@ var PDFDocument = /** @class */ (function () {
|
|
|
1201
1259
|
*
|
|
1202
1260
|
* @returns Resolves when the flush is complete.
|
|
1203
1261
|
*/
|
|
1204
|
-
|
|
1205
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
return [4 /*yield*/, this.embedAll(this.images)];
|
|
1212
|
-
case 2:
|
|
1213
|
-
_a.sent();
|
|
1214
|
-
return [4 /*yield*/, this.embedAll(this.embeddedPages)];
|
|
1215
|
-
case 3:
|
|
1216
|
-
_a.sent();
|
|
1217
|
-
return [4 /*yield*/, this.embedAll(this.embeddedFiles)];
|
|
1218
|
-
case 4:
|
|
1219
|
-
_a.sent();
|
|
1220
|
-
return [4 /*yield*/, this.embedAll(this.javaScripts)];
|
|
1221
|
-
case 5:
|
|
1222
|
-
_a.sent();
|
|
1223
|
-
return [2 /*return*/];
|
|
1224
|
-
}
|
|
1225
|
-
});
|
|
1262
|
+
flush() {
|
|
1263
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1264
|
+
yield this.embedAll(this.fonts);
|
|
1265
|
+
yield this.embedAll(this.images);
|
|
1266
|
+
yield this.embedAll(this.embeddedPages);
|
|
1267
|
+
yield this.embedAll(this.embeddedFiles);
|
|
1268
|
+
yield this.embedAll(this.javaScripts);
|
|
1226
1269
|
});
|
|
1227
|
-
}
|
|
1270
|
+
}
|
|
1228
1271
|
/**
|
|
1229
1272
|
* Serialize this document to an array of bytes making up a PDF file.
|
|
1230
1273
|
* For example:
|
|
@@ -1241,42 +1284,32 @@ var PDFDocument = /** @class */ (function () {
|
|
|
1241
1284
|
* @param options The options to be used when saving the document.
|
|
1242
1285
|
* @returns Resolves with the bytes of the serialized document.
|
|
1243
1286
|
*/
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
case 2:
|
|
1269
|
-
increment = _d.sent();
|
|
1270
|
-
result = new Uint8Array(this.context.pdfFileDetails.originalBytes.byteLength +
|
|
1271
|
-
increment.byteLength);
|
|
1272
|
-
result.set(this.context.pdfFileDetails.originalBytes);
|
|
1273
|
-
result.set(increment, this.context.pdfFileDetails.originalBytes.byteLength);
|
|
1274
|
-
return [2 /*return*/, result];
|
|
1275
|
-
case 3: return [2 /*return*/, Writer.forContext(this.context, objectsPerTick).serializeToBuffer()];
|
|
1276
|
-
}
|
|
1277
|
-
});
|
|
1287
|
+
save(options = {}) {
|
|
1288
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1289
|
+
const { useObjectStreams = true, objectsPerTick = 50, rewrite = false, } = options;
|
|
1290
|
+
assertIs(useObjectStreams, 'useObjectStreams', ['boolean']);
|
|
1291
|
+
assertIs(objectsPerTick, 'objectsPerTick', ['number']);
|
|
1292
|
+
assertIs(rewrite, 'rewrite', ['boolean']);
|
|
1293
|
+
const incrementalUpdate = !rewrite &&
|
|
1294
|
+
this.context.pdfFileDetails.originalBytes &&
|
|
1295
|
+
this.context.snapshot;
|
|
1296
|
+
if (incrementalUpdate) {
|
|
1297
|
+
options.addDefaultPage = false;
|
|
1298
|
+
options.updateFieldAppearances = false;
|
|
1299
|
+
}
|
|
1300
|
+
yield this.prepareForSave(options);
|
|
1301
|
+
const Writer = useObjectStreams ? PDFStreamWriter : PDFWriter;
|
|
1302
|
+
if (incrementalUpdate) {
|
|
1303
|
+
const increment = yield Writer.forContextWithSnapshot(this.context, objectsPerTick, this.context.snapshot).serializeToBuffer();
|
|
1304
|
+
const result = new Uint8Array(this.context.pdfFileDetails.originalBytes.byteLength +
|
|
1305
|
+
increment.byteLength);
|
|
1306
|
+
result.set(this.context.pdfFileDetails.originalBytes);
|
|
1307
|
+
result.set(increment, this.context.pdfFileDetails.originalBytes.byteLength);
|
|
1308
|
+
return result;
|
|
1309
|
+
}
|
|
1310
|
+
return Writer.forContext(this.context, objectsPerTick).serializeToBuffer();
|
|
1278
1311
|
});
|
|
1279
|
-
}
|
|
1312
|
+
}
|
|
1280
1313
|
/**
|
|
1281
1314
|
* Serialize only the changes to this document to an array of bytes making up a PDF file.
|
|
1282
1315
|
* For example:
|
|
@@ -1294,27 +1327,18 @@ var PDFDocument = /** @class */ (function () {
|
|
|
1294
1327
|
* @param options The options to be used when saving the document.
|
|
1295
1328
|
* @returns Resolves with the bytes of the serialized document.
|
|
1296
1329
|
*/
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
return [4 /*yield*/, this.prepareForSave(saveOptions)];
|
|
1308
|
-
case 1:
|
|
1309
|
-
_b.sent();
|
|
1310
|
-
Writer = this.context.pdfFileDetails.useObjectStreams
|
|
1311
|
-
? PDFStreamWriter
|
|
1312
|
-
: PDFWriter;
|
|
1313
|
-
return [2 /*return*/, Writer.forContextWithSnapshot(this.context, objectsPerTick, snapshot).serializeToBuffer()];
|
|
1314
|
-
}
|
|
1315
|
-
});
|
|
1330
|
+
saveIncremental(snapshot, options = {}) {
|
|
1331
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1332
|
+
const { objectsPerTick = 50 } = options;
|
|
1333
|
+
assertIs(objectsPerTick, 'objectsPerTick', ['number']);
|
|
1334
|
+
const saveOptions = Object.assign(Object.assign({}, options), { addDefaultPage: false, updateFieldAppearances: false });
|
|
1335
|
+
yield this.prepareForSave(saveOptions);
|
|
1336
|
+
const Writer = this.context.pdfFileDetails.useObjectStreams
|
|
1337
|
+
? PDFStreamWriter
|
|
1338
|
+
: PDFWriter;
|
|
1339
|
+
return Writer.forContextWithSnapshot(this.context, objectsPerTick, snapshot).serializeToBuffer();
|
|
1316
1340
|
});
|
|
1317
|
-
}
|
|
1341
|
+
}
|
|
1318
1342
|
/**
|
|
1319
1343
|
* Serialize this document to a base64 encoded string or data URI making up a
|
|
1320
1344
|
* PDF file. For example:
|
|
@@ -1330,118 +1354,83 @@ var PDFDocument = /** @class */ (function () {
|
|
|
1330
1354
|
* @returns Resolves with a base64 encoded string or data URI of the
|
|
1331
1355
|
* serialized document.
|
|
1332
1356
|
*/
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
_a = options.dataUri, dataUri = _a === void 0 ? false : _a, otherOptions = __rest(options, ["dataUri"]);
|
|
1341
|
-
assertIs(dataUri, 'dataUri', ['boolean']);
|
|
1342
|
-
return [4 /*yield*/, this.save(otherOptions)];
|
|
1343
|
-
case 1:
|
|
1344
|
-
bytes = _b.sent();
|
|
1345
|
-
base64 = encodeToBase64(bytes);
|
|
1346
|
-
return [2 /*return*/, dataUri ? "data:application/pdf;base64," + base64 : base64];
|
|
1347
|
-
}
|
|
1348
|
-
});
|
|
1357
|
+
saveAsBase64(options = {}) {
|
|
1358
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1359
|
+
const { dataUri = false } = options, otherOptions = __rest(options, ["dataUri"]);
|
|
1360
|
+
assertIs(dataUri, 'dataUri', ['boolean']);
|
|
1361
|
+
const bytes = yield this.save(otherOptions);
|
|
1362
|
+
const base64 = encodeToBase64(bytes);
|
|
1363
|
+
return dataUri ? `data:application/pdf;base64,${base64}` : base64;
|
|
1349
1364
|
});
|
|
1350
|
-
}
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
for (
|
|
1354
|
-
|
|
1355
|
-
|
|
1365
|
+
}
|
|
1366
|
+
findPageForAnnotationRef(ref) {
|
|
1367
|
+
const pages = this.getPages();
|
|
1368
|
+
for (let idx = 0, len = pages.length; idx < len; idx++) {
|
|
1369
|
+
const page = pages[idx];
|
|
1370
|
+
const annotations = page.node.Annots();
|
|
1356
1371
|
if ((annotations === null || annotations === void 0 ? void 0 : annotations.indexOf(ref)) !== undefined) {
|
|
1357
1372
|
return page;
|
|
1358
1373
|
}
|
|
1359
1374
|
}
|
|
1360
1375
|
return undefined;
|
|
1361
|
-
}
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1376
|
+
}
|
|
1377
|
+
takeSnapshot() {
|
|
1378
|
+
const indirectObjects = [];
|
|
1379
|
+
const snapshot = new IncrementalDocumentSnapshot(this.context.largestObjectNumber, indirectObjects, this.context.pdfFileDetails.pdfSize, this.context.pdfFileDetails.prevStartXRef, this.context);
|
|
1365
1380
|
if (!this.context.snapshot && this.context.pdfFileDetails.originalBytes) {
|
|
1366
1381
|
this.context.snapshot = snapshot;
|
|
1367
1382
|
this.catalog.registerChange();
|
|
1368
1383
|
}
|
|
1369
1384
|
return snapshot;
|
|
1370
|
-
}
|
|
1371
|
-
|
|
1372
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
if (form)
|
|
1385
|
-
form.updateFieldAppearances();
|
|
1386
|
-
}
|
|
1387
|
-
return [4 /*yield*/, this.flush()];
|
|
1388
|
-
case 1:
|
|
1389
|
-
_c.sent();
|
|
1390
|
-
return [2 /*return*/];
|
|
1391
|
-
}
|
|
1392
|
-
});
|
|
1385
|
+
}
|
|
1386
|
+
prepareForSave(options) {
|
|
1387
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1388
|
+
const { addDefaultPage = true, updateFieldAppearances = true } = options;
|
|
1389
|
+
assertIs(addDefaultPage, 'addDefaultPage', ['boolean']);
|
|
1390
|
+
assertIs(updateFieldAppearances, 'updateFieldAppearances', ['boolean']);
|
|
1391
|
+
if (addDefaultPage && this.getPageCount() === 0)
|
|
1392
|
+
this.addPage();
|
|
1393
|
+
if (updateFieldAppearances) {
|
|
1394
|
+
const form = this.formCache.getValue();
|
|
1395
|
+
if (form)
|
|
1396
|
+
form.updateFieldAppearances();
|
|
1397
|
+
}
|
|
1398
|
+
yield this.flush();
|
|
1393
1399
|
});
|
|
1394
|
-
}
|
|
1395
|
-
|
|
1396
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
case 0:
|
|
1401
|
-
idx = 0, len = embeddables.length;
|
|
1402
|
-
_a.label = 1;
|
|
1403
|
-
case 1:
|
|
1404
|
-
if (!(idx < len)) return [3 /*break*/, 4];
|
|
1405
|
-
return [4 /*yield*/, embeddables[idx].embed()];
|
|
1406
|
-
case 2:
|
|
1407
|
-
_a.sent();
|
|
1408
|
-
_a.label = 3;
|
|
1409
|
-
case 3:
|
|
1410
|
-
idx++;
|
|
1411
|
-
return [3 /*break*/, 1];
|
|
1412
|
-
case 4: return [2 /*return*/];
|
|
1413
|
-
}
|
|
1414
|
-
});
|
|
1400
|
+
}
|
|
1401
|
+
embedAll(embeddables) {
|
|
1402
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1403
|
+
for (let idx = 0, len = embeddables.length; idx < len; idx++) {
|
|
1404
|
+
yield embeddables[idx].embed();
|
|
1405
|
+
}
|
|
1415
1406
|
});
|
|
1416
|
-
}
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1407
|
+
}
|
|
1408
|
+
updateInfoDict() {
|
|
1409
|
+
const pdfLib = 'pdf-lib (https://github.com/Hopding/pdf-lib)';
|
|
1410
|
+
const now = new Date();
|
|
1411
|
+
const info = this.getInfoDict();
|
|
1421
1412
|
this.setProducer(pdfLib);
|
|
1422
1413
|
this.setModificationDate(now);
|
|
1423
1414
|
if (!info.get(PDFName.of('Creator')))
|
|
1424
1415
|
this.setCreator(pdfLib);
|
|
1425
1416
|
if (!info.get(PDFName.of('CreationDate')))
|
|
1426
1417
|
this.setCreationDate(now);
|
|
1427
|
-
}
|
|
1428
|
-
|
|
1429
|
-
|
|
1418
|
+
}
|
|
1419
|
+
getInfoDict() {
|
|
1420
|
+
const existingInfo = this.context.lookup(this.context.trailerInfo.Info);
|
|
1430
1421
|
if (existingInfo instanceof PDFDict) {
|
|
1431
1422
|
return existingInfo;
|
|
1432
1423
|
}
|
|
1433
|
-
|
|
1424
|
+
const newInfo = this.context.obj({});
|
|
1434
1425
|
this.context.trailerInfo.Info = this.context.register(newInfo);
|
|
1435
1426
|
return newInfo;
|
|
1436
|
-
}
|
|
1437
|
-
|
|
1427
|
+
}
|
|
1428
|
+
assertFontkit() {
|
|
1438
1429
|
if (!this.fontkit)
|
|
1439
1430
|
throw new FontkitNotRegisteredError();
|
|
1440
1431
|
return this.fontkit;
|
|
1441
|
-
}
|
|
1442
|
-
|
|
1443
|
-
}());
|
|
1444
|
-
export default PDFDocument;
|
|
1432
|
+
}
|
|
1433
|
+
}
|
|
1445
1434
|
/* tslint:disable-next-line only-arrow-functions */
|
|
1446
1435
|
function assertIsLiteralOrHexString(pdfObject) {
|
|
1447
1436
|
if (!(pdfObject instanceof PDFHexString) &&
|