@pdfme/pdf-lib 6.0.3-dev.0 → 6.0.4-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{src/api/Embeddable.ts → dist/api/Embeddable.d.ts} +1 -1
- package/dist/api/PDFDocument.d.ts +778 -0
- package/dist/api/PDFDocumentOptions.d.ts +38 -0
- package/dist/api/PDFEmbeddedFile.d.ts +38 -0
- package/dist/api/PDFEmbeddedPage.d.ts +73 -0
- package/dist/api/PDFFont.d.ts +94 -0
- package/dist/api/PDFImage.d.ts +95 -0
- package/dist/api/PDFJavaScript.d.ts +38 -0
- package/dist/api/PDFPage.d.ts +910 -0
- package/dist/api/PDFPageOptions.d.ts +172 -0
- package/dist/api/StandardFonts.d.ts +16 -0
- package/dist/api/colors.d.ts +34 -0
- package/dist/api/errors.d.ts +42 -0
- package/dist/api/form/PDFButton.d.ts +137 -0
- package/dist/api/form/PDFCheckBox.d.ts +142 -0
- package/dist/api/form/PDFDropdown.d.ts +402 -0
- package/dist/api/form/PDFField.d.ts +203 -0
- package/dist/api/form/PDFForm.d.ts +411 -0
- package/dist/api/form/PDFOptionList.d.ts +335 -0
- package/dist/api/form/PDFRadioGroup.d.ts +252 -0
- package/dist/api/form/PDFSignature.d.ts +29 -0
- package/dist/api/form/PDFTextField.d.ts +537 -0
- package/dist/api/form/appearances.d.ts +41 -0
- package/dist/api/image/alignment.d.ts +5 -0
- package/dist/api/objects.d.ts +4 -0
- package/dist/api/operations.d.ts +226 -0
- package/dist/api/operators.d.ts +90 -0
- package/dist/api/rotations.d.ts +38 -0
- package/dist/api/sizes.d.ts +52 -0
- package/dist/api/svg.d.ts +70 -0
- package/dist/api/svgPath.d.ts +2 -0
- package/dist/api/text/alignment.d.ts +5 -0
- package/dist/api/text/layout.d.ts +54 -0
- package/dist/core/PDFContext.d.ts +84 -0
- package/dist/core/PDFObjectCopier.d.ts +37 -0
- package/dist/core/acroform/PDFAcroButton.d.ts +21 -0
- package/dist/core/acroform/PDFAcroCheckBox.d.ts +13 -0
- package/dist/core/acroform/PDFAcroChoice.d.ts +20 -0
- package/dist/core/acroform/PDFAcroComboBox.d.ts +9 -0
- package/dist/core/acroform/PDFAcroField.d.ts +36 -0
- package/dist/core/acroform/PDFAcroForm.d.ts +20 -0
- package/dist/core/acroform/PDFAcroListBox.d.ts +9 -0
- package/dist/core/acroform/PDFAcroNonTerminal.d.ts +13 -0
- package/dist/core/acroform/PDFAcroPushButton.d.ts +9 -0
- package/dist/core/acroform/PDFAcroRadioButton.d.ts +13 -0
- package/{src/core/acroform/PDFAcroSignature.ts → dist/core/acroform/PDFAcroSignature.d.ts} +2 -4
- package/dist/core/acroform/PDFAcroTerminal.d.ts +16 -0
- package/dist/core/acroform/PDFAcroText.d.ts +22 -0
- package/dist/core/acroform/flags.d.ts +141 -0
- package/dist/core/acroform/utils.d.ts +6 -0
- package/dist/core/annotation/AppearanceCharacteristics.d.ts +33 -0
- package/dist/core/annotation/BorderStyle.d.ts +11 -0
- package/dist/core/annotation/PDFAnnotation.d.ts +51 -0
- package/dist/core/annotation/PDFWidgetAnnotation.d.ts +26 -0
- package/dist/core/annotation/flags.d.ts +79 -0
- package/dist/core/crypto.d.ts +95 -0
- package/dist/core/document/PDFCrossRefSection.d.ts +27 -0
- package/dist/core/document/PDFHeader.d.ts +10 -0
- package/dist/core/document/PDFTrailer.d.ts +9 -0
- package/dist/core/document/PDFTrailerDict.d.ts +10 -0
- package/dist/core/embedders/CMap.d.ts +3 -0
- package/dist/core/embedders/CustomFontEmbedder.d.ts +44 -0
- package/dist/core/embedders/CustomFontSubsetEmbedder.d.ts +20 -0
- package/dist/core/embedders/FileEmbedder.d.ts +33 -0
- package/dist/core/embedders/FontFlags.d.ts +13 -0
- package/dist/core/embedders/JavaScriptEmbedder.d.ts +10 -0
- package/dist/core/embedders/JpegEmbedder.d.ts +23 -0
- package/dist/core/embedders/PDFPageEmbedder.d.ts +37 -0
- package/dist/core/embedders/PngEmbedder.d.ts +19 -0
- package/dist/core/embedders/StandardFontEmbedder.d.ts +36 -0
- package/dist/core/errors.d.ts +94 -0
- package/{src/core/index.ts → dist/core/index.d.ts} +1 -17
- package/dist/core/interactive/ViewerPreferences.d.ts +347 -0
- package/dist/core/objects/PDFArray.d.ts +63 -0
- package/dist/core/objects/PDFBool.d.ts +13 -0
- package/dist/core/objects/PDFDict.d.ts +62 -0
- package/dist/core/objects/PDFHexString.d.ts +16 -0
- package/dist/core/objects/PDFInvalidObject.d.ts +11 -0
- package/dist/core/objects/PDFName.d.ts +41 -0
- package/dist/core/objects/PDFNull.d.ts +10 -0
- package/dist/core/objects/PDFNumber.d.ts +15 -0
- package/dist/core/objects/PDFObject.d.ts +8 -0
- package/dist/core/objects/PDFRawStream.d.ts +16 -0
- package/dist/core/objects/PDFRef.d.ts +13 -0
- package/dist/core/objects/PDFStream.d.ts +16 -0
- package/dist/core/objects/PDFString.d.ts +16 -0
- package/dist/core/operators/PDFOperator.d.ts +19 -0
- package/dist/core/operators/PDFOperatorNames.d.ts +76 -0
- package/dist/core/parser/BaseParser.d.ts +14 -0
- package/dist/core/parser/ByteStream.d.ts +26 -0
- package/dist/core/parser/PDFObjectParser.d.ts +31 -0
- package/dist/core/parser/PDFObjectStreamParser.d.ts +13 -0
- package/dist/core/parser/PDFParser.d.ts +46 -0
- package/dist/core/parser/PDFXRefStreamParser.d.ts +21 -0
- package/dist/core/streams/Ascii85Stream.d.ts +9 -0
- package/dist/core/streams/AsciiHexStream.d.ts +9 -0
- package/dist/core/streams/DecodeStream.d.ts +26 -0
- package/dist/core/streams/DecryptStream.d.ts +12 -0
- package/dist/core/streams/FlateStream.d.ts +13 -0
- package/dist/core/streams/LZWStream.d.ts +12 -0
- package/dist/core/streams/RunLengthStream.d.ts +8 -0
- package/dist/core/streams/Stream.d.ts +34 -0
- package/dist/core/streams/decode.d.ts +3 -0
- package/dist/core/structures/PDFCatalog.d.ts +27 -0
- package/dist/core/structures/PDFContentStream.d.ts +15 -0
- package/dist/core/structures/PDFCrossRefStream.d.ts +53 -0
- package/dist/core/structures/PDFFlateStream.d.ts +13 -0
- package/dist/core/structures/PDFObjectStream.d.ts +20 -0
- package/dist/core/structures/PDFPageLeaf.d.ts +54 -0
- package/dist/core/structures/PDFPageTree.d.ts +41 -0
- package/dist/core/syntax/CharCodes.d.ts +61 -0
- package/dist/core/syntax/Delimiters.d.ts +1 -0
- package/dist/core/syntax/Irregular.d.ts +1 -0
- package/dist/core/syntax/Keywords.d.ts +22 -0
- package/dist/core/syntax/Numeric.d.ts +3 -0
- package/dist/core/syntax/Whitespace.d.ts +1 -0
- package/dist/core/writers/PDFStreamWriter.d.ts +19 -0
- package/dist/core/writers/PDFWriter.d.ts +29 -0
- package/dist/index.js +19124 -0
- package/dist/index.js.map +1 -0
- package/dist/types/fontkit.d.ts +597 -0
- package/{src/types/index.ts → dist/types/index.d.ts} +8 -13
- package/{src/types/matrix.ts → dist/types/matrix.d.ts} +1 -2
- package/dist/utils/Cache.d.ts +10 -0
- package/dist/utils/arrays.d.ts +16 -0
- package/dist/utils/async.d.ts +5 -0
- package/dist/utils/base64.d.ts +10 -0
- package/dist/utils/elements/Arc.d.ts +22 -0
- package/dist/utils/elements/Circle.d.ts +14 -0
- package/dist/utils/elements/Ellipse.d.ts +20 -0
- package/dist/utils/elements/GraphElement.d.ts +6 -0
- package/dist/utils/elements/Line.d.ts +23 -0
- package/dist/utils/elements/Plot.d.ts +11 -0
- package/dist/utils/elements/Point.d.ts +18 -0
- package/dist/utils/elements/Rectangle.d.ts +21 -0
- package/dist/utils/elements/Segment.d.ts +19 -0
- package/dist/utils/errors.d.ts +1 -0
- package/dist/utils/intersections.d.ts +9 -0
- package/dist/utils/maths.d.ts +45 -0
- package/dist/utils/numbers.d.ts +23 -0
- package/dist/utils/objects.d.ts +15 -0
- package/dist/utils/pdfDocEncoding.d.ts +7 -0
- package/dist/utils/png.d.ts +17 -0
- package/dist/utils/rng.d.ts +13 -0
- package/dist/utils/strings.d.ts +25 -0
- package/{src/utils/unicode.ts → dist/utils/unicode.d.ts} +8 -195
- package/dist/utils/validators.d.ts +26 -0
- package/package.json +6 -1
- package/__tests__/api/PDFDocument.spec.ts +0 -576
- package/__tests__/api/PDFImage.spec.ts +0 -60
- package/__tests__/api/PDFPage.spec.ts +0 -151
- package/__tests__/api/form/PDFCheckBox.spec.ts +0 -71
- package/__tests__/api/form/PDFDropdown.spec.ts +0 -118
- package/__tests__/api/form/PDFForm.spec.ts +0 -370
- package/__tests__/api/form/PDFOptionList.spec.ts +0 -104
- package/__tests__/api/form/PDFRadioGroup.spec.ts +0 -183
- package/__tests__/api/form/PDFTextField.spec.ts +0 -148
- package/__tests__/api/svgPath.spec.ts +0 -153
- package/__tests__/api/text/layout.spec.ts +0 -166
- package/__tests__/core/PDFContext.spec.ts +0 -194
- package/__tests__/core/PDFObjectCopier.spec.ts +0 -421
- package/__tests__/core/acroform/PDFAcroField.spec.ts +0 -98
- package/__tests__/core/acroform/PDFAcroTerminal.spec.ts +0 -39
- package/__tests__/core/annotation/PDFWidgetAnnotation.spec.ts +0 -40
- package/__tests__/core/document/PDFCrossRefSection.spec.ts +0 -88
- package/__tests__/core/document/PDFHeader.spec.ts +0 -22
- package/__tests__/core/document/PDFTrailer.spec.ts +0 -28
- package/__tests__/core/document/PDFTrailerDict.spec.ts +0 -24
- package/__tests__/core/embedders/CMap.spec.ts +0 -47
- package/__tests__/core/embedders/CustomFontEmbedder.spec.ts +0 -96
- package/__tests__/core/embedders/CustomFontSubsetEmbedder.spec.ts +0 -62
- package/__tests__/core/embedders/FileEmbedder.spec.ts +0 -54
- package/__tests__/core/embedders/JpegEmbedder.spec.ts +0 -67
- package/__tests__/core/embedders/PDFPageEmbedder.spec.ts +0 -65
- package/__tests__/core/embedders/PngEmbedder.spec.ts +0 -87
- package/__tests__/core/embedders/StandardFontEmbedder.spec.ts +0 -79
- package/__tests__/core/embedders/data/SourceHanSerifJP-Regular.otf.cmap +0 -16096
- package/__tests__/core/embedders/data/Ubuntu-R.ttf.cmap +0 -1211
- package/__tests__/core/objects/PDFArray.spec.ts +0 -134
- package/__tests__/core/objects/PDFBool.spec.ts +0 -42
- package/__tests__/core/objects/PDFDict.spec.ts +0 -195
- package/__tests__/core/objects/PDFHexString.spec.ts +0 -168
- package/__tests__/core/objects/PDFInvalidObject.spec.ts +0 -32
- package/__tests__/core/objects/PDFName.spec.ts +0 -122
- package/__tests__/core/objects/PDFNull.spec.ts +0 -30
- package/__tests__/core/objects/PDFNumber.spec.ts +0 -50
- package/__tests__/core/objects/PDFObject.spec.ts +0 -29
- package/__tests__/core/objects/PDFRawStream.spec.ts +0 -45
- package/__tests__/core/objects/PDFRef.spec.ts +0 -60
- package/__tests__/core/objects/PDFString.spec.ts +0 -237
- package/__tests__/core/operators/PDFOperator.spec.ts +0 -77
- package/__tests__/core/parser/PDFObjectParser.spec.ts +0 -730
- package/__tests__/core/parser/PDFObjectStreamParser.spec.ts +0 -158
- package/__tests__/core/parser/PDFParser.spec.ts +0 -398
- package/__tests__/core/parser/PDFXRefStreamParser.spec.ts +0 -187
- package/__tests__/core/parser/data/object-stream-invalid +0 -2
- package/__tests__/core/parser/data/object-stream1 +0 -16
- package/__tests__/core/parser/data/object-stream2 +0 -10
- package/__tests__/core/parser/data/object-stream3 +0 -0
- package/__tests__/core/parser/data/object-stream4 +0 -0
- package/__tests__/core/parser/data/xref-stream1 +0 -0
- package/__tests__/core/parser/data/xref-stream2 +0 -0
- package/__tests__/core/parser/data/xref-stream3 +0 -0
- package/__tests__/core/parser/data/xref-stream4 +0 -0
- package/__tests__/core/streams/Ascii85Stream.spec.ts +0 -20
- package/__tests__/core/streams/AsciiHexStream.spec.ts +0 -20
- package/__tests__/core/streams/FlateStream.spec.ts +0 -20
- package/__tests__/core/streams/LZWStream.spec.ts +0 -20
- package/__tests__/core/streams/RunLengthStream.spec.ts +0 -20
- package/__tests__/core/streams/Stream.spec.ts +0 -128
- package/__tests__/core/streams/data/ascii85/1.decoded +0 -0
- package/__tests__/core/streams/data/ascii85/1.encoded +0 -43
- package/__tests__/core/streams/data/asciihex/1.decoded +0 -1
- package/__tests__/core/streams/data/asciihex/1.encoded +0 -1
- package/__tests__/core/streams/data/asciihex/2.decoded +0 -7
- package/__tests__/core/streams/data/asciihex/2.encoded +0 -1
- package/__tests__/core/streams/data/flate/1.corrupt.encoded +0 -1
- package/__tests__/core/streams/data/flate/1.decoded +0 -0
- package/__tests__/core/streams/data/flate/1.encoded +0 -2
- package/__tests__/core/streams/data/flate/2.decoded +0 -33
- package/__tests__/core/streams/data/flate/2.encoded +0 -0
- package/__tests__/core/streams/data/flate/3.decoded +0 -15
- package/__tests__/core/streams/data/flate/3.encoded +0 -0
- package/__tests__/core/streams/data/flate/4.decoded +0 -16
- package/__tests__/core/streams/data/flate/4.encoded +0 -0
- package/__tests__/core/streams/data/flate/5.decoded +0 -0
- package/__tests__/core/streams/data/flate/5.encoded +0 -0
- package/__tests__/core/streams/data/flate/6.decoded +0 -17
- package/__tests__/core/streams/data/flate/6.encoded +0 -0
- package/__tests__/core/streams/data/flate/7.decoded +0 -20
- package/__tests__/core/streams/data/flate/7.encoded +0 -1
- package/__tests__/core/streams/data/lzw/1.decoded +0 -0
- package/__tests__/core/streams/data/lzw/1.encoded +0 -0
- package/__tests__/core/streams/data/lzw/2.decoded +0 -0
- package/__tests__/core/streams/data/lzw/2.encoded +0 -0
- package/__tests__/core/streams/data/lzw/3.decoded +0 -14
- package/__tests__/core/streams/data/lzw/3.encoded +0 -2
- package/__tests__/core/streams/data/lzw/4.decoded +0 -14
- package/__tests__/core/streams/data/lzw/4.encoded +0 -2
- package/__tests__/core/streams/data/runlength/1.decoded +0 -1
- package/__tests__/core/streams/data/runlength/1.encoded +0 -1
- package/__tests__/core/streams/data/runlength/2.decoded +0 -1
- package/__tests__/core/streams/data/runlength/2.encoded +0 -1
- package/__tests__/core/streams/data/runlength/3.decoded +0 -0
- package/__tests__/core/streams/data/runlength/3.encoded +0 -0
- package/__tests__/core/streams/data/runlength/4.decoded +0 -1
- package/__tests__/core/streams/data/runlength/4.encoded +0 -1
- package/__tests__/core/streams/data/runlength/5.decoded +0 -1
- package/__tests__/core/streams/data/runlength/5.encoded +0 -1
- package/__tests__/core/streams/data/runlength/empty.encoded +0 -1
- package/__tests__/core/structures/PDFCatalog.spec.ts +0 -108
- package/__tests__/core/structures/PDFContentStream.spec.ts +0 -117
- package/__tests__/core/structures/PDFCrossRefStream.spec.ts +0 -145
- package/__tests__/core/structures/PDFObjectStream.spec.ts +0 -138
- package/__tests__/core/structures/PDFPageLeaf.spec.ts +0 -355
- package/__tests__/core/structures/PDFPageTree.spec.ts +0 -592
- package/__tests__/core/writers/PDFStreamWriter.spec.ts +0 -71
- package/__tests__/core/writers/PDFWriter.spec.ts +0 -144
- package/__tests__/core/writers/data/stream-writer-1.pdf +0 -0
- package/__tests__/index.test.ts +0 -12
- package/__tests__/utils/base64.spec.ts +0 -61
- package/__tests__/utils/data/simple.pdf +0 -201
- package/__tests__/utils/data/simple.pdf.base64 +0 -1
- package/__tests__/utils/pdfDocEncoding.spec.ts +0 -82
- package/__tests__/utils/png.spec.ts +0 -53
- package/__tests__/utils/rng.spec.ts +0 -14
- package/__tests__/utils/strings.spec.ts +0 -98
- package/__tests__/utils/unicode.spec.ts +0 -337
- package/assets/fonts/source_hans_jp/SourceHanSerifJP-Regular.otf +0 -0
- package/assets/fonts/ubuntu/Ubuntu-B.ttf +0 -0
- package/assets/fonts/ubuntu/Ubuntu-R.ttf +0 -0
- package/assets/images/cat_riding_unicorn.jpg +0 -0
- package/assets/images/cmyk_colorspace.jpg +0 -0
- package/assets/images/greyscale_bird.png +0 -0
- package/assets/images/minions_banana_alpha.png +0 -0
- package/assets/images/minions_banana_no_alpha.png +0 -0
- package/assets/images/minions_laughing.jpg +0 -0
- package/assets/pdfs/bixby_guide.pdf +0 -0
- package/assets/pdfs/encrypted_new.pdf +0 -0
- package/assets/pdfs/encrypted_old.pdf +0 -0
- package/assets/pdfs/fancy_fields.pdf +0 -0
- package/assets/pdfs/giraffe.pdf +0 -0
- package/assets/pdfs/invalid_root_ref.pdf +0 -0
- package/assets/pdfs/just_metadata.pdf +0 -49
- package/assets/pdfs/missing_endobj_keyword.pdf +0 -70
- package/assets/pdfs/missing_xref_trailer_dict.pdf +0 -141
- package/assets/pdfs/normal.pdf +0 -0
- package/assets/pdfs/pdf20examples/PDF 2.0 with offset start.pdf +0 -179
- package/assets/pdfs/stuff_following_header.pdf +0 -0
- package/assets/pdfs/us_constitution.pdf +0 -0
- package/assets/pdfs/with_comments.pdf +0 -0
- package/assets/pdfs/with_invalid_objects.pdf +0 -53
- package/assets/pdfs/with_invalid_stream_EOL.pdf +0 -0
- package/assets/pdfs/with_null_parent_entry.pdf +0 -0
- package/assets/pdfs/with_signature.pdf +0 -0
- package/assets/pdfs/with_update_sections.pdf +0 -0
- package/assets/pdfs/with_viewer_prefs.pdf +0 -0
- package/assets/pdfs/with_xfa_fields.pdf +0 -0
- package/src/api/PDFDocument.ts +0 -1389
- package/src/api/PDFDocumentOptions.ts +0 -45
- package/src/api/PDFEmbeddedFile.ts +0 -87
- package/src/api/PDFEmbeddedPage.ts +0 -100
- package/src/api/PDFFont.ts +0 -149
- package/src/api/PDFImage.ts +0 -143
- package/src/api/PDFJavaScript.ts +0 -75
- package/src/api/PDFPage.ts +0 -1604
- package/src/api/PDFPageOptions.ts +0 -175
- package/src/api/StandardFonts.ts +0 -16
- package/src/api/colors.ts +0 -109
- package/src/api/errors.ts +0 -110
- package/src/api/form/PDFButton.ts +0 -242
- package/src/api/form/PDFCheckBox.ts +0 -247
- package/src/api/form/PDFDropdown.ts +0 -637
- package/src/api/form/PDFField.ts +0 -491
- package/src/api/form/PDFForm.ts +0 -842
- package/src/api/form/PDFOptionList.ts +0 -555
- package/src/api/form/PDFRadioGroup.ts +0 -455
- package/src/api/form/PDFSignature.ts +0 -44
- package/src/api/form/PDFTextField.ts +0 -811
- package/src/api/form/appearances.ts +0 -655
- package/src/api/image/alignment.ts +0 -5
- package/src/api/objects.ts +0 -10
- package/src/api/operations.ts +0 -873
- package/src/api/operators.ts +0 -335
- package/src/api/rotations.ts +0 -84
- package/src/api/sizes.ts +0 -52
- package/src/api/svg.ts +0 -888
- package/src/api/svgPath.ts +0 -460
- package/src/api/text/alignment.ts +0 -5
- package/src/api/text/layout.ts +0 -328
- package/src/core/PDFContext.ts +0 -274
- package/src/core/PDFObjectCopier.ts +0 -142
- package/src/core/acroform/PDFAcroButton.ts +0 -104
- package/src/core/acroform/PDFAcroCheckBox.ts +0 -48
- package/src/core/acroform/PDFAcroChoice.ts +0 -143
- package/src/core/acroform/PDFAcroComboBox.ts +0 -21
- package/src/core/acroform/PDFAcroField.ts +0 -168
- package/src/core/acroform/PDFAcroForm.ts +0 -96
- package/src/core/acroform/PDFAcroListBox.ts +0 -19
- package/src/core/acroform/PDFAcroNonTerminal.ts +0 -33
- package/src/core/acroform/PDFAcroPushButton.ts +0 -21
- package/src/core/acroform/PDFAcroRadioButton.ts +0 -57
- package/src/core/acroform/PDFAcroTerminal.ts +0 -70
- package/src/core/acroform/PDFAcroText.ts +0 -76
- package/src/core/acroform/flags.ts +0 -162
- package/src/core/acroform/utils.ts +0 -129
- package/src/core/annotation/AppearanceCharacteristics.ts +0 -133
- package/src/core/annotation/BorderStyle.ts +0 -31
- package/src/core/annotation/PDFAnnotation.ts +0 -148
- package/src/core/annotation/PDFWidgetAnnotation.ts +0 -111
- package/src/core/annotation/flags.ts +0 -90
- package/src/core/crypto.ts +0 -1844
- package/src/core/document/PDFCrossRefSection.ts +0 -161
- package/src/core/document/PDFHeader.ts +0 -48
- package/src/core/document/PDFTrailer.ts +0 -48
- package/src/core/document/PDFTrailerDict.ts +0 -39
- package/src/core/embedders/CMap.ts +0 -65
- package/src/core/embedders/CustomFontEmbedder.ts +0 -237
- package/src/core/embedders/CustomFontSubsetEmbedder.ts +0 -89
- package/src/core/embedders/FileEmbedder.ts +0 -77
- package/src/core/embedders/FontFlags.ts +0 -45
- package/src/core/embedders/JavaScriptEmbedder.ts +0 -34
- package/src/core/embedders/JpegEmbedder.ts +0 -118
- package/src/core/embedders/PDFPageEmbedder.ts +0 -139
- package/src/core/embedders/PngEmbedder.ts +0 -69
- package/src/core/embedders/StandardFontEmbedder.ts +0 -121
- package/src/core/errors.ts +0 -226
- package/src/core/interactive/ViewerPreferences.ts +0 -565
- package/src/core/objects/PDFArray.ts +0 -179
- package/src/core/objects/PDFBool.ts +0 -53
- package/src/core/objects/PDFDict.ts +0 -220
- package/src/core/objects/PDFHexString.ts +0 -94
- package/src/core/objects/PDFInvalidObject.ts +0 -34
- package/src/core/objects/PDFName.ts +0 -152
- package/src/core/objects/PDFNull.ts +0 -30
- package/src/core/objects/PDFNumber.ts +0 -44
- package/src/core/objects/PDFObject.ts +0 -22
- package/src/core/objects/PDFRawStream.ts +0 -41
- package/src/core/objects/PDFRef.ts +0 -51
- package/src/core/objects/PDFStream.ts +0 -87
- package/src/core/objects/PDFString.ts +0 -118
- package/src/core/operators/PDFOperator.ts +0 -72
- package/src/core/operators/PDFOperatorNames.ts +0 -92
- package/src/core/parser/BaseParser.ts +0 -119
- package/src/core/parser/ByteStream.ts +0 -76
- package/src/core/parser/PDFObjectParser.ts +0 -302
- package/src/core/parser/PDFObjectStreamParser.ts +0 -65
- package/src/core/parser/PDFParser.ts +0 -363
- package/src/core/parser/PDFXRefStreamParser.ts +0 -129
- package/src/core/streams/Ascii85Stream.ts +0 -97
- package/src/core/streams/AsciiHexStream.ts +0 -77
- package/src/core/streams/DecodeStream.ts +0 -188
- package/src/core/streams/DecryptStream.ts +0 -49
- package/src/core/streams/FlateStream.ts +0 -397
- package/src/core/streams/LZWStream.ts +0 -157
- package/src/core/streams/RunLengthStream.ts +0 -55
- package/src/core/streams/Stream.ts +0 -126
- package/src/core/streams/decode.ts +0 -70
- package/src/core/structures/PDFCatalog.ts +0 -81
- package/src/core/structures/PDFContentStream.ts +0 -58
- package/src/core/structures/PDFCrossRefStream.ts +0 -238
- package/src/core/structures/PDFFlateStream.ts +0 -40
- package/src/core/structures/PDFObjectStream.ts +0 -91
- package/src/core/structures/PDFPageLeaf.ts +0 -244
- package/src/core/structures/PDFPageTree.ts +0 -192
- package/src/core/syntax/CharCodes.ts +0 -62
- package/src/core/syntax/Delimiters.ts +0 -14
- package/src/core/syntax/Irregular.ts +0 -10
- package/src/core/syntax/Keywords.ts +0 -57
- package/src/core/syntax/Numeric.ts +0 -26
- package/src/core/syntax/Whitespace.ts +0 -10
- package/src/core/writers/PDFStreamWriter.ts +0 -114
- package/src/core/writers/PDFWriter.ts +0 -146
- package/src/types/fontkit.ts +0 -643
- package/src/utils/Cache.ts +0 -26
- package/src/utils/arrays.ts +0 -153
- package/src/utils/async.ts +0 -8
- package/src/utils/base64.ts +0 -98
- package/src/utils/elements/Arc.ts +0 -97
- package/src/utils/elements/Circle.ts +0 -47
- package/src/utils/elements/Ellipse.ts +0 -117
- package/src/utils/elements/GraphElement.ts +0 -14
- package/src/utils/elements/Line.ts +0 -83
- package/src/utils/elements/Plot.ts +0 -50
- package/src/utils/elements/Point.ts +0 -37
- package/src/utils/elements/Rectangle.ts +0 -65
- package/src/utils/elements/Segment.ts +0 -81
- package/src/utils/errors.ts +0 -3
- package/src/utils/intersections.ts +0 -237
- package/src/utils/maths.ts +0 -96
- package/src/utils/numbers.ts +0 -55
- package/src/utils/objects.ts +0 -13
- package/src/utils/pdfDocEncoding.ts +0 -69
- package/src/utils/png.ts +0 -100
- package/src/utils/rng.ts +0 -21
- package/src/utils/strings.ts +0 -191
- package/src/utils/validators.ts +0 -192
- package/tsconfig.build.json +0 -14
- package/tsconfig.json +0 -15
- package/vite.config.mts +0 -39
- /package/{src/api/form/index.ts → dist/api/form/index.d.ts} +0 -0
- /package/{src/api/image/index.ts → dist/api/image/index.d.ts} +0 -0
- /package/{src/api/index.ts → dist/api/index.d.ts} +0 -0
- /package/{src/api/text/index.ts → dist/api/text/index.d.ts} +0 -0
- /package/{src/core/acroform/index.ts → dist/core/acroform/index.d.ts} +0 -0
- /package/{src/core/annotation/index.ts → dist/core/annotation/index.d.ts} +0 -0
- /package/{src/index.ts → dist/index.d.ts} +0 -0
- /package/{src/utils/elements/index.ts → dist/utils/elements/index.d.ts} +0 -0
- /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { PDFHeader } from '../../../src/core';
|
|
2
|
-
import { toCharCode, typedArrayFor } from '../../../src/utils';
|
|
3
|
-
|
|
4
|
-
describe(`PDFHeader`, () => {
|
|
5
|
-
it(`can be constructed from PDFHeader.forVersion(...)`, () => {
|
|
6
|
-
expect(PDFHeader.forVersion(1, 2)).toBeInstanceOf(PDFHeader);
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
it(`can be converted to a string`, () => {
|
|
10
|
-
expect(String(PDFHeader.forVersion(1, 7))).toBe('%PDF-1.7\n%');
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it(`can provide its size in bytes`, () => {
|
|
14
|
-
expect(PDFHeader.forVersion(81, 79).sizeInBytes()).toBe(16);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
it(`can be serialized`, () => {
|
|
18
|
-
const buffer = new Uint8Array(20).fill(toCharCode(' '));
|
|
19
|
-
expect(PDFHeader.forVersion(79, 81).copyBytesInto(buffer, 3)).toBe(16);
|
|
20
|
-
expect(buffer).toEqual(typedArrayFor(' %PDF-79.81\n% '));
|
|
21
|
-
});
|
|
22
|
-
});
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { PDFTrailer } from '../../../src/core';
|
|
2
|
-
import { toCharCode, typedArrayFor } from '../../../src/utils';
|
|
3
|
-
|
|
4
|
-
describe(`PDFTrailer`, () => {
|
|
5
|
-
it(`can be constructed from PDFTrailer.forLastCrossRefSectionOffset(...)`, () => {
|
|
6
|
-
expect(PDFTrailer.forLastCrossRefSectionOffset(21)).toBeInstanceOf(
|
|
7
|
-
PDFTrailer,
|
|
8
|
-
);
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
it(`can be converted to a string`, () => {
|
|
12
|
-
expect(String(PDFTrailer.forLastCrossRefSectionOffset(799))).toBe(
|
|
13
|
-
'startxref\n799\n%%EOF',
|
|
14
|
-
);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
it(`can provide its size in bytes`, () => {
|
|
18
|
-
expect(PDFTrailer.forLastCrossRefSectionOffset(1919).sizeInBytes()).toBe(
|
|
19
|
-
20,
|
|
20
|
-
);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it(`can be serialized`, () => {
|
|
24
|
-
const buffer = new Uint8Array(21).fill(toCharCode(' '));
|
|
25
|
-
expect(PDFTrailer.forLastCrossRefSectionOffset(1).copyBytesInto(buffer, 3));
|
|
26
|
-
expect(buffer).toEqual(typedArrayFor(' startxref\n1\n%%EOF '));
|
|
27
|
-
});
|
|
28
|
-
});
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { PDFContext, PDFTrailerDict } from '../../../src/core';
|
|
2
|
-
import { toCharCode, typedArrayFor } from '../../../src/utils';
|
|
3
|
-
|
|
4
|
-
describe(`PDFTrailerDict`, () => {
|
|
5
|
-
const dict = PDFContext.create().obj({ Foo: 'Bar' });
|
|
6
|
-
|
|
7
|
-
it(`can be constructed from PDFTrailerDict.of(...)`, () => {
|
|
8
|
-
expect(PDFTrailerDict.of(dict)).toBeInstanceOf(PDFTrailerDict);
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
it(`can be converted to a string`, () => {
|
|
12
|
-
expect(String(PDFTrailerDict.of(dict))).toBe('trailer\n<<\n/Foo /Bar\n>>');
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it(`can provide its size in bytes`, () => {
|
|
16
|
-
expect(PDFTrailerDict.of(dict).sizeInBytes()).toBe(23);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it(`can be serialized`, () => {
|
|
20
|
-
const buffer = new Uint8Array(27).fill(toCharCode(' '));
|
|
21
|
-
expect(PDFTrailerDict.of(dict).copyBytesInto(buffer, 3)).toBe(23);
|
|
22
|
-
expect(buffer).toEqual(typedArrayFor(' trailer\n<<\n/Foo /Bar\n>> '));
|
|
23
|
-
});
|
|
24
|
-
});
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import fontkit, { Font, Glyph } from '@pdf-lib/fontkit';
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
|
|
5
|
-
import { createCmap } from '../../../src/core/embedders/CMap';
|
|
6
|
-
import { byAscendingId, sortedUniq } from '../../../src/utils';
|
|
7
|
-
|
|
8
|
-
const ASSETS_DIR = path.resolve(__dirname, '../../../assets/fonts');
|
|
9
|
-
const ubuntuFont = fs.readFileSync(path.join(ASSETS_DIR, 'ubuntu/Ubuntu-R.ttf'));
|
|
10
|
-
const sourceHansJpFont = fs.readFileSync(
|
|
11
|
-
path.join(ASSETS_DIR, 'source_hans_jp/SourceHanSerifJP-Regular.otf'),
|
|
12
|
-
);
|
|
13
|
-
|
|
14
|
-
const DATA_DIR = path.join(__dirname, 'data');
|
|
15
|
-
const ubuntuFontCmap = fs.readFileSync(path.join(DATA_DIR, 'Ubuntu-R.ttf.cmap'));
|
|
16
|
-
const sourceHansJpFontCmap = fs.readFileSync(
|
|
17
|
-
path.join(DATA_DIR, 'SourceHanSerifJP-Regular.otf.cmap'),
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
const allGlyphsInFontSortedById = (font: Font) => {
|
|
21
|
-
const glyphs: Glyph[] = new Array(font.characterSet.length);
|
|
22
|
-
for (let idx = 0, len = glyphs.length; idx < len; idx++) {
|
|
23
|
-
const codePoint = font.characterSet[idx];
|
|
24
|
-
glyphs[idx] = font.glyphForCodePoint(codePoint);
|
|
25
|
-
}
|
|
26
|
-
return sortedUniq(glyphs.sort(byAscendingId), (g) => g.id);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
describe(`createCmap`, () => {
|
|
30
|
-
it(`creates CMaps for embedded Ubuntu-R font files`, () => {
|
|
31
|
-
const font = fontkit.create(ubuntuFont);
|
|
32
|
-
|
|
33
|
-
const glyphs = allGlyphsInFontSortedById(font);
|
|
34
|
-
const cmap = createCmap(glyphs, (g) => (g ? g.id : -1));
|
|
35
|
-
|
|
36
|
-
expect(cmap).toEqual(String(ubuntuFontCmap));
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it(`creates CMaps for embedded SourceHanSerifJP-Regular font files`, () => {
|
|
40
|
-
const font = fontkit.create(sourceHansJpFont);
|
|
41
|
-
|
|
42
|
-
const glyphs = allGlyphsInFontSortedById(font);
|
|
43
|
-
const cmap = createCmap(glyphs, (g) => (g ? g.id : -1));
|
|
44
|
-
|
|
45
|
-
expect(cmap).toEqual(String(sourceHansJpFontCmap));
|
|
46
|
-
});
|
|
47
|
-
});
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import fontkit from '@pdf-lib/fontkit';
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
CustomFontEmbedder,
|
|
6
|
-
PDFContext,
|
|
7
|
-
PDFDict,
|
|
8
|
-
PDFHexString,
|
|
9
|
-
PDFRef,
|
|
10
|
-
} from '../../../src/index';
|
|
11
|
-
|
|
12
|
-
const ubuntuFont = fs.readFileSync('./assets/fonts/ubuntu/Ubuntu-R.ttf');
|
|
13
|
-
|
|
14
|
-
describe(`CustomFontEmbedder`, () => {
|
|
15
|
-
it(`can be constructed with CustomFontEmbedder.for(...)`, async () => {
|
|
16
|
-
const embedder = await CustomFontEmbedder.for(fontkit, ubuntuFont);
|
|
17
|
-
expect(embedder).toBeInstanceOf(CustomFontEmbedder);
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it(`exposes the font's name`, async () => {
|
|
21
|
-
const embedder = await CustomFontEmbedder.for(
|
|
22
|
-
fontkit,
|
|
23
|
-
new Uint8Array(ubuntuFont),
|
|
24
|
-
);
|
|
25
|
-
expect(embedder.fontName).toBe('Ubuntu');
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it(`can set a custom font name`, async () => {
|
|
29
|
-
const customName = 'abc123';
|
|
30
|
-
const embedder = await CustomFontEmbedder.for(
|
|
31
|
-
fontkit,
|
|
32
|
-
new Uint8Array(ubuntuFont),
|
|
33
|
-
customName,
|
|
34
|
-
);
|
|
35
|
-
expect(embedder.customName).toBe(customName);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it(`can embed font dictionaries into PDFContexts without a predefined ref`, async () => {
|
|
39
|
-
const context = PDFContext.create();
|
|
40
|
-
const embedder = await CustomFontEmbedder.for(
|
|
41
|
-
fontkit,
|
|
42
|
-
new Uint8Array(ubuntuFont),
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
46
|
-
const ref = await embedder.embedIntoContext(context);
|
|
47
|
-
expect(context.enumerateIndirectObjects().length).toBe(5);
|
|
48
|
-
expect(context.lookup(ref)).toBeInstanceOf(PDFDict);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it(`can embed font dictionaries into PDFContexts with a predefined ref`, async () => {
|
|
52
|
-
const context = PDFContext.create();
|
|
53
|
-
const predefinedRef = PDFRef.of(9999);
|
|
54
|
-
const embedder = await CustomFontEmbedder.for(
|
|
55
|
-
fontkit,
|
|
56
|
-
new Uint8Array(ubuntuFont),
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
60
|
-
const ref = await embedder.embedIntoContext(context, predefinedRef);
|
|
61
|
-
expect(context.enumerateIndirectObjects().length).toBe(5);
|
|
62
|
-
expect(context.lookup(predefinedRef)).toBeInstanceOf(PDFDict);
|
|
63
|
-
expect(ref).toBe(predefinedRef);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
it(`can encode text strings into PDFHexString objects`, async () => {
|
|
67
|
-
const text = 'Stuff and thingz!';
|
|
68
|
-
const hexCodes =
|
|
69
|
-
'00360057005801AA000300440051004700030057004B004C0051004A005D0004';
|
|
70
|
-
const embedder = await CustomFontEmbedder.for(fontkit, ubuntuFont);
|
|
71
|
-
|
|
72
|
-
expect(embedder.encodeText(text)).toBeInstanceOf(PDFHexString);
|
|
73
|
-
expect(String(embedder.encodeText(text))).toBe(
|
|
74
|
-
String(PDFHexString.of(hexCodes)),
|
|
75
|
-
);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it(`can measure the width of text strings at the given font size`, async () => {
|
|
79
|
-
const text = 'Stuff and thingz!';
|
|
80
|
-
const embedder = await CustomFontEmbedder.for(fontkit, ubuntuFont);
|
|
81
|
-
expect(embedder.widthOfTextAtSize(text, 12)).toBe(90.672);
|
|
82
|
-
expect(embedder.widthOfTextAtSize(text, 24)).toBe(181.344);
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
it(`can measure the height of the font at the given size`, async () => {
|
|
86
|
-
const embedder = await CustomFontEmbedder.for(fontkit, ubuntuFont);
|
|
87
|
-
expect(embedder.heightOfFontAtSize(12)).toBeCloseTo(13.452);
|
|
88
|
-
expect(embedder.heightOfFontAtSize(24)).toBeCloseTo(26.904);
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it(`can measure the size of the font at a given height`, async () => {
|
|
92
|
-
const embedder = await CustomFontEmbedder.for(fontkit, ubuntuFont);
|
|
93
|
-
expect(embedder.sizeOfFontAtHeight(12)).toBeCloseTo(10.705);
|
|
94
|
-
expect(embedder.sizeOfFontAtHeight(24)).toBeCloseTo(21.409);
|
|
95
|
-
});
|
|
96
|
-
});
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import fontkit from '@pdf-lib/fontkit';
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
CustomFontSubsetEmbedder,
|
|
6
|
-
PDFContext,
|
|
7
|
-
PDFDict,
|
|
8
|
-
PDFHexString,
|
|
9
|
-
} from '../../../src/index';
|
|
10
|
-
|
|
11
|
-
const ubuntuFont = fs.readFileSync('./assets/fonts/ubuntu/Ubuntu-R.ttf');
|
|
12
|
-
|
|
13
|
-
describe(`CustomFontSubsetEmbedder`, () => {
|
|
14
|
-
it(`can be constructed with CustomFontSubsetEmbedder.for(...)`, async () => {
|
|
15
|
-
const embedder = await CustomFontSubsetEmbedder.for(fontkit, ubuntuFont);
|
|
16
|
-
expect(embedder).toBeInstanceOf(CustomFontSubsetEmbedder);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it(`can embed standard font dictionaries into PDFContexts`, async () => {
|
|
20
|
-
const context = PDFContext.create();
|
|
21
|
-
const embedder = await CustomFontSubsetEmbedder.for(
|
|
22
|
-
fontkit,
|
|
23
|
-
new Uint8Array(ubuntuFont),
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
27
|
-
const ref = await embedder.embedIntoContext(context);
|
|
28
|
-
expect(context.enumerateIndirectObjects().length).toBe(5);
|
|
29
|
-
expect(context.lookup(ref)).toBeInstanceOf(PDFDict);
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
it(`can encode text strings into PDFHexString objects`, async () => {
|
|
33
|
-
const text = 'Stuff and thingz!';
|
|
34
|
-
const hexCodes =
|
|
35
|
-
'00010002000300040005000600070008000500020009000A0007000B000C000D';
|
|
36
|
-
const embedder = await CustomFontSubsetEmbedder.for(fontkit, ubuntuFont);
|
|
37
|
-
|
|
38
|
-
expect(embedder.encodeText(text)).toBeInstanceOf(PDFHexString);
|
|
39
|
-
expect(String(embedder.encodeText(text))).toBe(
|
|
40
|
-
String(PDFHexString.of(hexCodes)),
|
|
41
|
-
);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it(`can measure the width of text strings at the given font size`, async () => {
|
|
45
|
-
const text = 'Stuff and thingz!';
|
|
46
|
-
const embedder = await CustomFontSubsetEmbedder.for(fontkit, ubuntuFont);
|
|
47
|
-
expect(embedder.widthOfTextAtSize(text, 12)).toBe(90.672);
|
|
48
|
-
expect(embedder.widthOfTextAtSize(text, 24)).toBe(181.344);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it(`can measure the height of the font at the given size`, async () => {
|
|
52
|
-
const embedder = await CustomFontSubsetEmbedder.for(fontkit, ubuntuFont);
|
|
53
|
-
expect(embedder.heightOfFontAtSize(12)).toBeCloseTo(13.452);
|
|
54
|
-
expect(embedder.heightOfFontAtSize(24)).toBeCloseTo(26.904);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it(`can measure the size of the font at a given height`, async () => {
|
|
58
|
-
const embedder = await CustomFontSubsetEmbedder.for(fontkit, ubuntuFont);
|
|
59
|
-
expect(embedder.sizeOfFontAtHeight(12)).toBeCloseTo(10.705);
|
|
60
|
-
expect(embedder.sizeOfFontAtHeight(24)).toBeCloseTo(21.409);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import { PDFContext, PDFDict, PDFRef, FileEmbedder } from '../../../src/index';
|
|
3
|
-
|
|
4
|
-
const catRidingUnicornJpg = fs.readFileSync(
|
|
5
|
-
'assets/images/cat_riding_unicorn.jpg',
|
|
6
|
-
);
|
|
7
|
-
const usConstitutionPdf = fs.readFileSync('assets/pdfs/us_constitution.pdf');
|
|
8
|
-
|
|
9
|
-
describe(`FileEmbedder`, () => {
|
|
10
|
-
it(`can be constructed with FileEmbedder.for(...)`, () => {
|
|
11
|
-
const embedder = FileEmbedder.for(catRidingUnicornJpg, 'cat.jpg');
|
|
12
|
-
expect(embedder).toBeInstanceOf(FileEmbedder);
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it(`can embed files into PDFContexts without a predefined ref`, async () => {
|
|
16
|
-
const context = PDFContext.create();
|
|
17
|
-
const embedder = FileEmbedder.for(
|
|
18
|
-
catRidingUnicornJpg,
|
|
19
|
-
'cat_riding_unicorn.jpg',
|
|
20
|
-
{
|
|
21
|
-
mimeType: 'image/jpeg',
|
|
22
|
-
description: 'Cool cat riding a unicorn! 🦄🐈🕶️',
|
|
23
|
-
creationDate: new Date('2019/12/01'),
|
|
24
|
-
modificationDate: new Date('2020/04/19'),
|
|
25
|
-
},
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
29
|
-
const ref = await embedder.embedIntoContext(context);
|
|
30
|
-
expect(context.enumerateIndirectObjects().length).toBe(2);
|
|
31
|
-
expect(context.lookup(ref)).toBeInstanceOf(PDFDict);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it(`can embed files into PDFContexts with a predefined ref`, async () => {
|
|
35
|
-
const context = PDFContext.create();
|
|
36
|
-
const predefinedRef = PDFRef.of(9999);
|
|
37
|
-
const embedder = FileEmbedder.for(
|
|
38
|
-
usConstitutionPdf,
|
|
39
|
-
'us_constitution.pdf',
|
|
40
|
-
{
|
|
41
|
-
mimeType: 'application/pdf',
|
|
42
|
-
description: 'Constitution of the United States 🇺🇸🦅',
|
|
43
|
-
creationDate: new Date('1787/09/17'),
|
|
44
|
-
modificationDate: new Date('1992/05/07'),
|
|
45
|
-
},
|
|
46
|
-
);
|
|
47
|
-
|
|
48
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
49
|
-
const ref = await embedder.embedIntoContext(context, predefinedRef);
|
|
50
|
-
expect(context.enumerateIndirectObjects().length).toBe(2);
|
|
51
|
-
expect(context.lookup(predefinedRef)).toBeInstanceOf(PDFDict);
|
|
52
|
-
expect(ref).toBe(predefinedRef);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import {
|
|
3
|
-
JpegEmbedder,
|
|
4
|
-
PDFContext,
|
|
5
|
-
PDFRawStream,
|
|
6
|
-
PDFRef,
|
|
7
|
-
} from '../../../src/core';
|
|
8
|
-
|
|
9
|
-
const catUnicornJpg = fs.readFileSync('./assets/images/cat_riding_unicorn.jpg');
|
|
10
|
-
const minionsLaughing = fs.readFileSync('./assets/images/minions_laughing.jpg');
|
|
11
|
-
const cmykJpg = fs.readFileSync('./assets/images/cmyk_colorspace.jpg');
|
|
12
|
-
|
|
13
|
-
describe(`JpegEmbedder`, () => {
|
|
14
|
-
it(`can be constructed with JpegEmbedder.for(...)`, async () => {
|
|
15
|
-
const embedder = await JpegEmbedder.for(catUnicornJpg);
|
|
16
|
-
expect(embedder).toBeInstanceOf(JpegEmbedder);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it(`can embed JPEG images into PDFContexts without a predefined ref`, async () => {
|
|
20
|
-
const context = PDFContext.create();
|
|
21
|
-
const embedder = await JpegEmbedder.for(catUnicornJpg);
|
|
22
|
-
|
|
23
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
24
|
-
const ref = await embedder.embedIntoContext(context);
|
|
25
|
-
expect(context.enumerateIndirectObjects().length).toBe(1);
|
|
26
|
-
expect(context.lookup(ref)).toBeInstanceOf(PDFRawStream);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it(`can embed JPEG images into PDFContexts with a predefined ref`, async () => {
|
|
30
|
-
const context = PDFContext.create();
|
|
31
|
-
const predefinedRef = PDFRef.of(9999);
|
|
32
|
-
const embedder = await JpegEmbedder.for(catUnicornJpg);
|
|
33
|
-
|
|
34
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
35
|
-
const ref = await embedder.embedIntoContext(context, predefinedRef);
|
|
36
|
-
expect(context.enumerateIndirectObjects().length).toBe(1);
|
|
37
|
-
expect(context.lookup(predefinedRef)).toBeInstanceOf(PDFRawStream);
|
|
38
|
-
expect(ref).toBe(predefinedRef);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it(`can extract properties of JPEG images (1)`, async () => {
|
|
42
|
-
const embedder = await JpegEmbedder.for(catUnicornJpg);
|
|
43
|
-
|
|
44
|
-
expect(embedder.bitsPerComponent).toBe(8);
|
|
45
|
-
expect(embedder.height).toBe(1080);
|
|
46
|
-
expect(embedder.width).toBe(1920);
|
|
47
|
-
expect(embedder.colorSpace).toBe('DeviceRGB');
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
it(`can extract properties of JPEG images (2)`, async () => {
|
|
51
|
-
const embedder = await JpegEmbedder.for(minionsLaughing);
|
|
52
|
-
|
|
53
|
-
expect(embedder.bitsPerComponent).toBe(8);
|
|
54
|
-
expect(embedder.height).toBe(354);
|
|
55
|
-
expect(embedder.width).toBe(630);
|
|
56
|
-
expect(embedder.colorSpace).toBe('DeviceRGB');
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
it(`can extract properties of JPEG images (3)`, async () => {
|
|
60
|
-
const embedder = await JpegEmbedder.for(cmykJpg);
|
|
61
|
-
|
|
62
|
-
expect(embedder.bitsPerComponent).toBe(8);
|
|
63
|
-
expect(embedder.height).toBe(333);
|
|
64
|
-
expect(embedder.width).toBe(500);
|
|
65
|
-
expect(embedder.colorSpace).toBe('DeviceCMYK');
|
|
66
|
-
});
|
|
67
|
-
});
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import { PDFDocument } from '../../../src/api';
|
|
3
|
-
import {
|
|
4
|
-
PDFContext,
|
|
5
|
-
PDFPageEmbedder,
|
|
6
|
-
PDFRawStream,
|
|
7
|
-
PDFRef,
|
|
8
|
-
} from '../../../src/core';
|
|
9
|
-
|
|
10
|
-
const examplePdf = fs.readFileSync('./assets/pdfs/normal.pdf');
|
|
11
|
-
|
|
12
|
-
const examplePage = async () => {
|
|
13
|
-
const doc = await PDFDocument.load(examplePdf);
|
|
14
|
-
return doc.getPages()[0];
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
describe(`PDFPageEmbedder`, () => {
|
|
18
|
-
it(`can be constructed with PDFPageEmbedder.for(...)`, async () => {
|
|
19
|
-
const page = await examplePage();
|
|
20
|
-
const embedder = await PDFPageEmbedder.for(page.node);
|
|
21
|
-
expect(embedder).toBeInstanceOf(PDFPageEmbedder);
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
it(`can embed PDF pages into PDFContexts with a predefined ref`, async () => {
|
|
25
|
-
const context = PDFContext.create();
|
|
26
|
-
const predefinedRef = PDFRef.of(9999);
|
|
27
|
-
const page = await examplePage();
|
|
28
|
-
const embedder = await PDFPageEmbedder.for(page.node);
|
|
29
|
-
|
|
30
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
31
|
-
const ref = await embedder.embedIntoContext(context, predefinedRef);
|
|
32
|
-
expect(context.enumerateIndirectObjects().length).toBe(1);
|
|
33
|
-
expect(context.lookup(predefinedRef)).toBeInstanceOf(PDFRawStream);
|
|
34
|
-
expect(ref).toBe(predefinedRef);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it(`can extract properties of the PDF page`, async () => {
|
|
38
|
-
const page = await examplePage();
|
|
39
|
-
const embedder = await PDFPageEmbedder.for(page.node);
|
|
40
|
-
|
|
41
|
-
expect(embedder.boundingBox).toEqual({
|
|
42
|
-
left: 0,
|
|
43
|
-
bottom: 0,
|
|
44
|
-
right: page.getSize().width,
|
|
45
|
-
top: page.getSize().height,
|
|
46
|
-
});
|
|
47
|
-
expect(embedder.transformationMatrix).toEqual([1, 0, 0, 1, -0, -0]);
|
|
48
|
-
expect(embedder.width).toEqual(page.getWidth());
|
|
49
|
-
expect(embedder.height).toEqual(page.getHeight());
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it(`calculates dimensions depending on the bounding box when given one`, async () => {
|
|
53
|
-
const page = await examplePage();
|
|
54
|
-
const boundingBox = {
|
|
55
|
-
left: 100,
|
|
56
|
-
bottom: 100,
|
|
57
|
-
right: 222,
|
|
58
|
-
top: 333,
|
|
59
|
-
};
|
|
60
|
-
const embedder = await PDFPageEmbedder.for(page.node, boundingBox);
|
|
61
|
-
|
|
62
|
-
expect(embedder.width).toEqual(122);
|
|
63
|
-
expect(embedder.height).toEqual(233);
|
|
64
|
-
});
|
|
65
|
-
});
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import {
|
|
3
|
-
PDFContext,
|
|
4
|
-
PDFRawStream,
|
|
5
|
-
PDFRef,
|
|
6
|
-
PngEmbedder,
|
|
7
|
-
} from '../../../src/core';
|
|
8
|
-
|
|
9
|
-
const greyscalePng = fs.readFileSync('./assets/images/greyscale_bird.png');
|
|
10
|
-
const rgbaPng = fs.readFileSync('./assets/images/minions_banana_alpha.png');
|
|
11
|
-
const rgbPng = fs.readFileSync('./assets/images/minions_banana_no_alpha.png');
|
|
12
|
-
|
|
13
|
-
describe(`PngEmbedder`, () => {
|
|
14
|
-
it(`can be constructed with PngEmbedder.for(...)`, async () => {
|
|
15
|
-
const embedder = await PngEmbedder.for(greyscalePng);
|
|
16
|
-
expect(embedder).toBeInstanceOf(PngEmbedder);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it(`can embed PNG images into PDFContexts with a predefined ref`, async () => {
|
|
20
|
-
const context = PDFContext.create();
|
|
21
|
-
const predefinedRef = PDFRef.of(9999);
|
|
22
|
-
const embedder = await PngEmbedder.for(greyscalePng);
|
|
23
|
-
|
|
24
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
25
|
-
const ref = await embedder.embedIntoContext(context, predefinedRef);
|
|
26
|
-
expect(context.enumerateIndirectObjects().length).toBe(1);
|
|
27
|
-
expect(context.lookup(predefinedRef)).toBeInstanceOf(PDFRawStream);
|
|
28
|
-
expect(ref).toBe(predefinedRef);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it(`can embed greyscale PNG images into PDFContexts`, async () => {
|
|
32
|
-
const context = PDFContext.create();
|
|
33
|
-
const embedder = await PngEmbedder.for(greyscalePng);
|
|
34
|
-
|
|
35
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
36
|
-
const ref = await embedder.embedIntoContext(context);
|
|
37
|
-
expect(context.enumerateIndirectObjects().length).toBe(1);
|
|
38
|
-
expect(context.lookup(ref)).toBeInstanceOf(PDFRawStream);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it(`can embed RGBA PNG images into PDFContexts`, async () => {
|
|
42
|
-
const context = PDFContext.create();
|
|
43
|
-
const embedder = await PngEmbedder.for(rgbaPng);
|
|
44
|
-
|
|
45
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
46
|
-
const ref = await embedder.embedIntoContext(context);
|
|
47
|
-
expect(context.enumerateIndirectObjects().length).toBe(2);
|
|
48
|
-
expect(context.lookup(ref)).toBeInstanceOf(PDFRawStream);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it(`can embed RGB PNG images into PDFContexts`, async () => {
|
|
52
|
-
const context = PDFContext.create();
|
|
53
|
-
const embedder = await PngEmbedder.for(rgbPng);
|
|
54
|
-
|
|
55
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
56
|
-
const ref = await embedder.embedIntoContext(context);
|
|
57
|
-
expect(context.enumerateIndirectObjects().length).toBe(1);
|
|
58
|
-
expect(context.lookup(ref)).toBeInstanceOf(PDFRawStream);
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it(`can extract properties of greyscale PNG images`, async () => {
|
|
62
|
-
const embedder = await PngEmbedder.for(greyscalePng);
|
|
63
|
-
|
|
64
|
-
expect(embedder.bitsPerComponent).toBe(8);
|
|
65
|
-
expect(embedder.height).toBe(375);
|
|
66
|
-
expect(embedder.width).toBe(600);
|
|
67
|
-
expect(embedder.colorSpace).toBe('DeviceRGB');
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
it(`can extract properties of RGBA PNG images`, async () => {
|
|
71
|
-
const embedder = await PngEmbedder.for(rgbaPng);
|
|
72
|
-
|
|
73
|
-
expect(embedder.bitsPerComponent).toBe(8);
|
|
74
|
-
expect(embedder.height).toBe(640);
|
|
75
|
-
expect(embedder.width).toBe(960);
|
|
76
|
-
expect(embedder.colorSpace).toBe('DeviceRGB');
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
it(`can extract properties of RGB PNG images`, async () => {
|
|
80
|
-
const embedder = await PngEmbedder.for(rgbPng);
|
|
81
|
-
|
|
82
|
-
expect(embedder.bitsPerComponent).toBe(8);
|
|
83
|
-
expect(embedder.height).toBe(640);
|
|
84
|
-
expect(embedder.width).toBe(960);
|
|
85
|
-
expect(embedder.colorSpace).toBe('DeviceRGB');
|
|
86
|
-
});
|
|
87
|
-
});
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { FontNames } from '@pdf-lib/standard-fonts';
|
|
2
|
-
import {
|
|
3
|
-
PDFContext,
|
|
4
|
-
PDFDict,
|
|
5
|
-
PDFHexString,
|
|
6
|
-
PDFRef,
|
|
7
|
-
StandardFontEmbedder,
|
|
8
|
-
} from '../../../src/index';
|
|
9
|
-
|
|
10
|
-
describe(`StandardFontEmbedder`, () => {
|
|
11
|
-
it(`can be constructed with StandardFontEmbedder.for(...)`, () => {
|
|
12
|
-
const embedder = StandardFontEmbedder.for(FontNames.Helvetica);
|
|
13
|
-
expect(embedder).toBeInstanceOf(StandardFontEmbedder);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it(`exposes the font's name`, () => {
|
|
17
|
-
const embedder = StandardFontEmbedder.for(FontNames.HelveticaOblique);
|
|
18
|
-
expect(embedder.fontName).toBe('Helvetica-Oblique');
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it(`can use a custom font name`, () => {
|
|
22
|
-
const customName = 'Roboto 2';
|
|
23
|
-
const embedder = StandardFontEmbedder.for(
|
|
24
|
-
FontNames.HelveticaOblique,
|
|
25
|
-
customName,
|
|
26
|
-
);
|
|
27
|
-
expect(embedder.customName).toBe(customName);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
it(`can embed standard font dictionaries into PDFContexts without a predefined ref`, () => {
|
|
31
|
-
const context = PDFContext.create();
|
|
32
|
-
const embedder = StandardFontEmbedder.for(FontNames.Courier);
|
|
33
|
-
|
|
34
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
35
|
-
const ref = embedder.embedIntoContext(context);
|
|
36
|
-
expect(context.enumerateIndirectObjects().length).toBe(1);
|
|
37
|
-
expect(context.lookup(ref)).toBeInstanceOf(PDFDict);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it(`can embed standard font dictionaries into PDFContexts with a predefined ref`, () => {
|
|
41
|
-
const context = PDFContext.create();
|
|
42
|
-
const predefinedRef = PDFRef.of(9999);
|
|
43
|
-
const embedder = StandardFontEmbedder.for(FontNames.Courier);
|
|
44
|
-
|
|
45
|
-
expect(context.enumerateIndirectObjects().length).toBe(0);
|
|
46
|
-
const ref = embedder.embedIntoContext(context, predefinedRef);
|
|
47
|
-
expect(context.enumerateIndirectObjects().length).toBe(1);
|
|
48
|
-
expect(context.lookup(predefinedRef)).toBeInstanceOf(PDFDict);
|
|
49
|
-
expect(ref).toBe(predefinedRef);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it(`can encode text strings into PDFHexString objects`, () => {
|
|
53
|
-
const text = 'Stuff and thingz!';
|
|
54
|
-
const embedder = StandardFontEmbedder.for(FontNames.TimesRoman);
|
|
55
|
-
expect(embedder.encodeText(text)).toBeInstanceOf(PDFHexString);
|
|
56
|
-
expect(String(embedder.encodeText(text))).toBe(
|
|
57
|
-
String(PDFHexString.of('537475666620616E64207468696E677A21')),
|
|
58
|
-
);
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it(`can measure the width of text strings at the given font size`, () => {
|
|
62
|
-
const text = 'Stuff and thingz!';
|
|
63
|
-
const embedder = StandardFontEmbedder.for(FontNames.HelveticaBold);
|
|
64
|
-
expect(embedder.widthOfTextAtSize(text, 12)).toBe(94.656);
|
|
65
|
-
expect(embedder.widthOfTextAtSize(text, 24)).toBe(189.312);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it(`can measure the height of the font at the given size`, () => {
|
|
69
|
-
const embedder = StandardFontEmbedder.for(FontNames.HelveticaBold);
|
|
70
|
-
expect(embedder.heightOfFontAtSize(12)).toBeCloseTo(11.1);
|
|
71
|
-
expect(embedder.heightOfFontAtSize(24)).toBeCloseTo(22.2);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
it(`can measure the size of the font at a given height`, () => {
|
|
75
|
-
const embedder = StandardFontEmbedder.for(FontNames.HelveticaBold);
|
|
76
|
-
expect(embedder.sizeOfFontAtHeight(12)).toBeCloseTo(12.972);
|
|
77
|
-
expect(embedder.sizeOfFontAtHeight(24)).toBeCloseTo(25.945);
|
|
78
|
-
});
|
|
79
|
-
});
|