@pdfme/pdf-lib 6.0.3 → 6.0.4-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/{src/api/Embeddable.ts → dist/api/Embeddable.d.ts} +1 -1
  2. package/dist/api/PDFDocument.d.ts +778 -0
  3. package/dist/api/PDFDocumentOptions.d.ts +38 -0
  4. package/dist/api/PDFEmbeddedFile.d.ts +38 -0
  5. package/dist/api/PDFEmbeddedPage.d.ts +73 -0
  6. package/dist/api/PDFFont.d.ts +94 -0
  7. package/dist/api/PDFImage.d.ts +95 -0
  8. package/dist/api/PDFJavaScript.d.ts +38 -0
  9. package/dist/api/PDFPage.d.ts +910 -0
  10. package/dist/api/PDFPageOptions.d.ts +172 -0
  11. package/dist/api/StandardFonts.d.ts +16 -0
  12. package/dist/api/colors.d.ts +34 -0
  13. package/dist/api/errors.d.ts +42 -0
  14. package/dist/api/form/PDFButton.d.ts +137 -0
  15. package/dist/api/form/PDFCheckBox.d.ts +142 -0
  16. package/dist/api/form/PDFDropdown.d.ts +402 -0
  17. package/dist/api/form/PDFField.d.ts +203 -0
  18. package/dist/api/form/PDFForm.d.ts +411 -0
  19. package/dist/api/form/PDFOptionList.d.ts +335 -0
  20. package/dist/api/form/PDFRadioGroup.d.ts +252 -0
  21. package/dist/api/form/PDFSignature.d.ts +29 -0
  22. package/dist/api/form/PDFTextField.d.ts +537 -0
  23. package/dist/api/form/appearances.d.ts +41 -0
  24. package/dist/api/image/alignment.d.ts +5 -0
  25. package/dist/api/objects.d.ts +4 -0
  26. package/dist/api/operations.d.ts +226 -0
  27. package/dist/api/operators.d.ts +90 -0
  28. package/dist/api/rotations.d.ts +38 -0
  29. package/dist/api/sizes.d.ts +52 -0
  30. package/dist/api/svg.d.ts +70 -0
  31. package/dist/api/svgPath.d.ts +2 -0
  32. package/dist/api/text/alignment.d.ts +5 -0
  33. package/dist/api/text/layout.d.ts +54 -0
  34. package/dist/core/PDFContext.d.ts +84 -0
  35. package/dist/core/PDFObjectCopier.d.ts +37 -0
  36. package/dist/core/acroform/PDFAcroButton.d.ts +21 -0
  37. package/dist/core/acroform/PDFAcroCheckBox.d.ts +13 -0
  38. package/dist/core/acroform/PDFAcroChoice.d.ts +20 -0
  39. package/dist/core/acroform/PDFAcroComboBox.d.ts +9 -0
  40. package/dist/core/acroform/PDFAcroField.d.ts +36 -0
  41. package/dist/core/acroform/PDFAcroForm.d.ts +20 -0
  42. package/dist/core/acroform/PDFAcroListBox.d.ts +9 -0
  43. package/dist/core/acroform/PDFAcroNonTerminal.d.ts +13 -0
  44. package/dist/core/acroform/PDFAcroPushButton.d.ts +9 -0
  45. package/dist/core/acroform/PDFAcroRadioButton.d.ts +13 -0
  46. package/{src/core/acroform/PDFAcroSignature.ts → dist/core/acroform/PDFAcroSignature.d.ts} +2 -4
  47. package/dist/core/acroform/PDFAcroTerminal.d.ts +16 -0
  48. package/dist/core/acroform/PDFAcroText.d.ts +22 -0
  49. package/dist/core/acroform/flags.d.ts +141 -0
  50. package/dist/core/acroform/utils.d.ts +6 -0
  51. package/dist/core/annotation/AppearanceCharacteristics.d.ts +33 -0
  52. package/dist/core/annotation/BorderStyle.d.ts +11 -0
  53. package/dist/core/annotation/PDFAnnotation.d.ts +51 -0
  54. package/dist/core/annotation/PDFWidgetAnnotation.d.ts +26 -0
  55. package/dist/core/annotation/flags.d.ts +79 -0
  56. package/dist/core/crypto.d.ts +95 -0
  57. package/dist/core/document/PDFCrossRefSection.d.ts +27 -0
  58. package/dist/core/document/PDFHeader.d.ts +10 -0
  59. package/dist/core/document/PDFTrailer.d.ts +9 -0
  60. package/dist/core/document/PDFTrailerDict.d.ts +10 -0
  61. package/dist/core/embedders/CMap.d.ts +3 -0
  62. package/dist/core/embedders/CustomFontEmbedder.d.ts +44 -0
  63. package/dist/core/embedders/CustomFontSubsetEmbedder.d.ts +20 -0
  64. package/dist/core/embedders/FileEmbedder.d.ts +33 -0
  65. package/dist/core/embedders/FontFlags.d.ts +13 -0
  66. package/dist/core/embedders/JavaScriptEmbedder.d.ts +10 -0
  67. package/dist/core/embedders/JpegEmbedder.d.ts +23 -0
  68. package/dist/core/embedders/PDFPageEmbedder.d.ts +37 -0
  69. package/dist/core/embedders/PngEmbedder.d.ts +19 -0
  70. package/dist/core/embedders/StandardFontEmbedder.d.ts +36 -0
  71. package/dist/core/errors.d.ts +94 -0
  72. package/{src/core/index.ts → dist/core/index.d.ts} +1 -17
  73. package/dist/core/interactive/ViewerPreferences.d.ts +347 -0
  74. package/dist/core/objects/PDFArray.d.ts +63 -0
  75. package/dist/core/objects/PDFBool.d.ts +13 -0
  76. package/dist/core/objects/PDFDict.d.ts +62 -0
  77. package/dist/core/objects/PDFHexString.d.ts +16 -0
  78. package/dist/core/objects/PDFInvalidObject.d.ts +11 -0
  79. package/dist/core/objects/PDFName.d.ts +41 -0
  80. package/dist/core/objects/PDFNull.d.ts +10 -0
  81. package/dist/core/objects/PDFNumber.d.ts +15 -0
  82. package/dist/core/objects/PDFObject.d.ts +8 -0
  83. package/dist/core/objects/PDFRawStream.d.ts +16 -0
  84. package/dist/core/objects/PDFRef.d.ts +13 -0
  85. package/dist/core/objects/PDFStream.d.ts +16 -0
  86. package/dist/core/objects/PDFString.d.ts +16 -0
  87. package/dist/core/operators/PDFOperator.d.ts +19 -0
  88. package/dist/core/operators/PDFOperatorNames.d.ts +76 -0
  89. package/dist/core/parser/BaseParser.d.ts +14 -0
  90. package/dist/core/parser/ByteStream.d.ts +26 -0
  91. package/dist/core/parser/PDFObjectParser.d.ts +31 -0
  92. package/dist/core/parser/PDFObjectStreamParser.d.ts +13 -0
  93. package/dist/core/parser/PDFParser.d.ts +46 -0
  94. package/dist/core/parser/PDFXRefStreamParser.d.ts +21 -0
  95. package/dist/core/streams/Ascii85Stream.d.ts +9 -0
  96. package/dist/core/streams/AsciiHexStream.d.ts +9 -0
  97. package/dist/core/streams/DecodeStream.d.ts +26 -0
  98. package/dist/core/streams/DecryptStream.d.ts +12 -0
  99. package/dist/core/streams/FlateStream.d.ts +13 -0
  100. package/dist/core/streams/LZWStream.d.ts +12 -0
  101. package/dist/core/streams/RunLengthStream.d.ts +8 -0
  102. package/dist/core/streams/Stream.d.ts +34 -0
  103. package/dist/core/streams/decode.d.ts +3 -0
  104. package/dist/core/structures/PDFCatalog.d.ts +27 -0
  105. package/dist/core/structures/PDFContentStream.d.ts +15 -0
  106. package/dist/core/structures/PDFCrossRefStream.d.ts +53 -0
  107. package/dist/core/structures/PDFFlateStream.d.ts +13 -0
  108. package/dist/core/structures/PDFObjectStream.d.ts +20 -0
  109. package/dist/core/structures/PDFPageLeaf.d.ts +54 -0
  110. package/dist/core/structures/PDFPageTree.d.ts +41 -0
  111. package/dist/core/syntax/CharCodes.d.ts +61 -0
  112. package/dist/core/syntax/Delimiters.d.ts +1 -0
  113. package/dist/core/syntax/Irregular.d.ts +1 -0
  114. package/dist/core/syntax/Keywords.d.ts +22 -0
  115. package/dist/core/syntax/Numeric.d.ts +3 -0
  116. package/dist/core/syntax/Whitespace.d.ts +1 -0
  117. package/dist/core/writers/PDFStreamWriter.d.ts +19 -0
  118. package/dist/core/writers/PDFWriter.d.ts +29 -0
  119. package/dist/index.js +19124 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/types/fontkit.d.ts +597 -0
  122. package/{src/types/index.ts → dist/types/index.d.ts} +8 -13
  123. package/{src/types/matrix.ts → dist/types/matrix.d.ts} +1 -2
  124. package/dist/utils/Cache.d.ts +10 -0
  125. package/dist/utils/arrays.d.ts +16 -0
  126. package/dist/utils/async.d.ts +5 -0
  127. package/dist/utils/base64.d.ts +10 -0
  128. package/dist/utils/elements/Arc.d.ts +22 -0
  129. package/dist/utils/elements/Circle.d.ts +14 -0
  130. package/dist/utils/elements/Ellipse.d.ts +20 -0
  131. package/dist/utils/elements/GraphElement.d.ts +6 -0
  132. package/dist/utils/elements/Line.d.ts +23 -0
  133. package/dist/utils/elements/Plot.d.ts +11 -0
  134. package/dist/utils/elements/Point.d.ts +18 -0
  135. package/dist/utils/elements/Rectangle.d.ts +21 -0
  136. package/dist/utils/elements/Segment.d.ts +19 -0
  137. package/dist/utils/errors.d.ts +1 -0
  138. package/dist/utils/intersections.d.ts +9 -0
  139. package/dist/utils/maths.d.ts +45 -0
  140. package/dist/utils/numbers.d.ts +23 -0
  141. package/dist/utils/objects.d.ts +15 -0
  142. package/dist/utils/pdfDocEncoding.d.ts +7 -0
  143. package/dist/utils/png.d.ts +17 -0
  144. package/dist/utils/rng.d.ts +13 -0
  145. package/dist/utils/strings.d.ts +25 -0
  146. package/{src/utils/unicode.ts → dist/utils/unicode.d.ts} +8 -195
  147. package/dist/utils/validators.d.ts +26 -0
  148. package/package.json +6 -1
  149. package/__tests__/api/PDFDocument.spec.ts +0 -576
  150. package/__tests__/api/PDFImage.spec.ts +0 -60
  151. package/__tests__/api/PDFPage.spec.ts +0 -151
  152. package/__tests__/api/form/PDFCheckBox.spec.ts +0 -71
  153. package/__tests__/api/form/PDFDropdown.spec.ts +0 -118
  154. package/__tests__/api/form/PDFForm.spec.ts +0 -370
  155. package/__tests__/api/form/PDFOptionList.spec.ts +0 -104
  156. package/__tests__/api/form/PDFRadioGroup.spec.ts +0 -183
  157. package/__tests__/api/form/PDFTextField.spec.ts +0 -148
  158. package/__tests__/api/svgPath.spec.ts +0 -153
  159. package/__tests__/api/text/layout.spec.ts +0 -166
  160. package/__tests__/core/PDFContext.spec.ts +0 -194
  161. package/__tests__/core/PDFObjectCopier.spec.ts +0 -421
  162. package/__tests__/core/acroform/PDFAcroField.spec.ts +0 -98
  163. package/__tests__/core/acroform/PDFAcroTerminal.spec.ts +0 -39
  164. package/__tests__/core/annotation/PDFWidgetAnnotation.spec.ts +0 -40
  165. package/__tests__/core/document/PDFCrossRefSection.spec.ts +0 -88
  166. package/__tests__/core/document/PDFHeader.spec.ts +0 -22
  167. package/__tests__/core/document/PDFTrailer.spec.ts +0 -28
  168. package/__tests__/core/document/PDFTrailerDict.spec.ts +0 -24
  169. package/__tests__/core/embedders/CMap.spec.ts +0 -47
  170. package/__tests__/core/embedders/CustomFontEmbedder.spec.ts +0 -96
  171. package/__tests__/core/embedders/CustomFontSubsetEmbedder.spec.ts +0 -62
  172. package/__tests__/core/embedders/FileEmbedder.spec.ts +0 -54
  173. package/__tests__/core/embedders/JpegEmbedder.spec.ts +0 -67
  174. package/__tests__/core/embedders/PDFPageEmbedder.spec.ts +0 -65
  175. package/__tests__/core/embedders/PngEmbedder.spec.ts +0 -87
  176. package/__tests__/core/embedders/StandardFontEmbedder.spec.ts +0 -79
  177. package/__tests__/core/embedders/data/SourceHanSerifJP-Regular.otf.cmap +0 -16096
  178. package/__tests__/core/embedders/data/Ubuntu-R.ttf.cmap +0 -1211
  179. package/__tests__/core/objects/PDFArray.spec.ts +0 -134
  180. package/__tests__/core/objects/PDFBool.spec.ts +0 -42
  181. package/__tests__/core/objects/PDFDict.spec.ts +0 -195
  182. package/__tests__/core/objects/PDFHexString.spec.ts +0 -168
  183. package/__tests__/core/objects/PDFInvalidObject.spec.ts +0 -32
  184. package/__tests__/core/objects/PDFName.spec.ts +0 -122
  185. package/__tests__/core/objects/PDFNull.spec.ts +0 -30
  186. package/__tests__/core/objects/PDFNumber.spec.ts +0 -50
  187. package/__tests__/core/objects/PDFObject.spec.ts +0 -29
  188. package/__tests__/core/objects/PDFRawStream.spec.ts +0 -45
  189. package/__tests__/core/objects/PDFRef.spec.ts +0 -60
  190. package/__tests__/core/objects/PDFString.spec.ts +0 -237
  191. package/__tests__/core/operators/PDFOperator.spec.ts +0 -77
  192. package/__tests__/core/parser/PDFObjectParser.spec.ts +0 -730
  193. package/__tests__/core/parser/PDFObjectStreamParser.spec.ts +0 -158
  194. package/__tests__/core/parser/PDFParser.spec.ts +0 -398
  195. package/__tests__/core/parser/PDFXRefStreamParser.spec.ts +0 -187
  196. package/__tests__/core/parser/data/object-stream-invalid +0 -2
  197. package/__tests__/core/parser/data/object-stream1 +0 -16
  198. package/__tests__/core/parser/data/object-stream2 +0 -10
  199. package/__tests__/core/parser/data/object-stream3 +0 -0
  200. package/__tests__/core/parser/data/object-stream4 +0 -0
  201. package/__tests__/core/parser/data/xref-stream1 +0 -0
  202. package/__tests__/core/parser/data/xref-stream2 +0 -0
  203. package/__tests__/core/parser/data/xref-stream3 +0 -0
  204. package/__tests__/core/parser/data/xref-stream4 +0 -0
  205. package/__tests__/core/streams/Ascii85Stream.spec.ts +0 -20
  206. package/__tests__/core/streams/AsciiHexStream.spec.ts +0 -20
  207. package/__tests__/core/streams/FlateStream.spec.ts +0 -20
  208. package/__tests__/core/streams/LZWStream.spec.ts +0 -20
  209. package/__tests__/core/streams/RunLengthStream.spec.ts +0 -20
  210. package/__tests__/core/streams/Stream.spec.ts +0 -128
  211. package/__tests__/core/streams/data/ascii85/1.decoded +0 -0
  212. package/__tests__/core/streams/data/ascii85/1.encoded +0 -43
  213. package/__tests__/core/streams/data/asciihex/1.decoded +0 -1
  214. package/__tests__/core/streams/data/asciihex/1.encoded +0 -1
  215. package/__tests__/core/streams/data/asciihex/2.decoded +0 -7
  216. package/__tests__/core/streams/data/asciihex/2.encoded +0 -1
  217. package/__tests__/core/streams/data/flate/1.corrupt.encoded +0 -1
  218. package/__tests__/core/streams/data/flate/1.decoded +0 -0
  219. package/__tests__/core/streams/data/flate/1.encoded +0 -2
  220. package/__tests__/core/streams/data/flate/2.decoded +0 -33
  221. package/__tests__/core/streams/data/flate/2.encoded +0 -0
  222. package/__tests__/core/streams/data/flate/3.decoded +0 -15
  223. package/__tests__/core/streams/data/flate/3.encoded +0 -0
  224. package/__tests__/core/streams/data/flate/4.decoded +0 -16
  225. package/__tests__/core/streams/data/flate/4.encoded +0 -0
  226. package/__tests__/core/streams/data/flate/5.decoded +0 -0
  227. package/__tests__/core/streams/data/flate/5.encoded +0 -0
  228. package/__tests__/core/streams/data/flate/6.decoded +0 -17
  229. package/__tests__/core/streams/data/flate/6.encoded +0 -0
  230. package/__tests__/core/streams/data/flate/7.decoded +0 -20
  231. package/__tests__/core/streams/data/flate/7.encoded +0 -1
  232. package/__tests__/core/streams/data/lzw/1.decoded +0 -0
  233. package/__tests__/core/streams/data/lzw/1.encoded +0 -0
  234. package/__tests__/core/streams/data/lzw/2.decoded +0 -0
  235. package/__tests__/core/streams/data/lzw/2.encoded +0 -0
  236. package/__tests__/core/streams/data/lzw/3.decoded +0 -14
  237. package/__tests__/core/streams/data/lzw/3.encoded +0 -2
  238. package/__tests__/core/streams/data/lzw/4.decoded +0 -14
  239. package/__tests__/core/streams/data/lzw/4.encoded +0 -2
  240. package/__tests__/core/streams/data/runlength/1.decoded +0 -1
  241. package/__tests__/core/streams/data/runlength/1.encoded +0 -1
  242. package/__tests__/core/streams/data/runlength/2.decoded +0 -1
  243. package/__tests__/core/streams/data/runlength/2.encoded +0 -1
  244. package/__tests__/core/streams/data/runlength/3.decoded +0 -0
  245. package/__tests__/core/streams/data/runlength/3.encoded +0 -0
  246. package/__tests__/core/streams/data/runlength/4.decoded +0 -1
  247. package/__tests__/core/streams/data/runlength/4.encoded +0 -1
  248. package/__tests__/core/streams/data/runlength/5.decoded +0 -1
  249. package/__tests__/core/streams/data/runlength/5.encoded +0 -1
  250. package/__tests__/core/streams/data/runlength/empty.encoded +0 -1
  251. package/__tests__/core/structures/PDFCatalog.spec.ts +0 -108
  252. package/__tests__/core/structures/PDFContentStream.spec.ts +0 -117
  253. package/__tests__/core/structures/PDFCrossRefStream.spec.ts +0 -145
  254. package/__tests__/core/structures/PDFObjectStream.spec.ts +0 -138
  255. package/__tests__/core/structures/PDFPageLeaf.spec.ts +0 -355
  256. package/__tests__/core/structures/PDFPageTree.spec.ts +0 -592
  257. package/__tests__/core/writers/PDFStreamWriter.spec.ts +0 -71
  258. package/__tests__/core/writers/PDFWriter.spec.ts +0 -144
  259. package/__tests__/core/writers/data/stream-writer-1.pdf +0 -0
  260. package/__tests__/index.test.ts +0 -12
  261. package/__tests__/utils/base64.spec.ts +0 -61
  262. package/__tests__/utils/data/simple.pdf +0 -201
  263. package/__tests__/utils/data/simple.pdf.base64 +0 -1
  264. package/__tests__/utils/pdfDocEncoding.spec.ts +0 -82
  265. package/__tests__/utils/png.spec.ts +0 -53
  266. package/__tests__/utils/rng.spec.ts +0 -14
  267. package/__tests__/utils/strings.spec.ts +0 -98
  268. package/__tests__/utils/unicode.spec.ts +0 -337
  269. package/assets/fonts/source_hans_jp/SourceHanSerifJP-Regular.otf +0 -0
  270. package/assets/fonts/ubuntu/Ubuntu-B.ttf +0 -0
  271. package/assets/fonts/ubuntu/Ubuntu-R.ttf +0 -0
  272. package/assets/images/cat_riding_unicorn.jpg +0 -0
  273. package/assets/images/cmyk_colorspace.jpg +0 -0
  274. package/assets/images/greyscale_bird.png +0 -0
  275. package/assets/images/minions_banana_alpha.png +0 -0
  276. package/assets/images/minions_banana_no_alpha.png +0 -0
  277. package/assets/images/minions_laughing.jpg +0 -0
  278. package/assets/pdfs/bixby_guide.pdf +0 -0
  279. package/assets/pdfs/encrypted_new.pdf +0 -0
  280. package/assets/pdfs/encrypted_old.pdf +0 -0
  281. package/assets/pdfs/fancy_fields.pdf +0 -0
  282. package/assets/pdfs/giraffe.pdf +0 -0
  283. package/assets/pdfs/invalid_root_ref.pdf +0 -0
  284. package/assets/pdfs/just_metadata.pdf +0 -49
  285. package/assets/pdfs/missing_endobj_keyword.pdf +0 -70
  286. package/assets/pdfs/missing_xref_trailer_dict.pdf +0 -141
  287. package/assets/pdfs/normal.pdf +0 -0
  288. package/assets/pdfs/pdf20examples/PDF 2.0 with offset start.pdf +0 -179
  289. package/assets/pdfs/stuff_following_header.pdf +0 -0
  290. package/assets/pdfs/us_constitution.pdf +0 -0
  291. package/assets/pdfs/with_comments.pdf +0 -0
  292. package/assets/pdfs/with_invalid_objects.pdf +0 -53
  293. package/assets/pdfs/with_invalid_stream_EOL.pdf +0 -0
  294. package/assets/pdfs/with_null_parent_entry.pdf +0 -0
  295. package/assets/pdfs/with_signature.pdf +0 -0
  296. package/assets/pdfs/with_update_sections.pdf +0 -0
  297. package/assets/pdfs/with_viewer_prefs.pdf +0 -0
  298. package/assets/pdfs/with_xfa_fields.pdf +0 -0
  299. package/src/api/PDFDocument.ts +0 -1389
  300. package/src/api/PDFDocumentOptions.ts +0 -45
  301. package/src/api/PDFEmbeddedFile.ts +0 -87
  302. package/src/api/PDFEmbeddedPage.ts +0 -100
  303. package/src/api/PDFFont.ts +0 -149
  304. package/src/api/PDFImage.ts +0 -143
  305. package/src/api/PDFJavaScript.ts +0 -75
  306. package/src/api/PDFPage.ts +0 -1604
  307. package/src/api/PDFPageOptions.ts +0 -175
  308. package/src/api/StandardFonts.ts +0 -16
  309. package/src/api/colors.ts +0 -109
  310. package/src/api/errors.ts +0 -110
  311. package/src/api/form/PDFButton.ts +0 -242
  312. package/src/api/form/PDFCheckBox.ts +0 -247
  313. package/src/api/form/PDFDropdown.ts +0 -637
  314. package/src/api/form/PDFField.ts +0 -491
  315. package/src/api/form/PDFForm.ts +0 -842
  316. package/src/api/form/PDFOptionList.ts +0 -555
  317. package/src/api/form/PDFRadioGroup.ts +0 -455
  318. package/src/api/form/PDFSignature.ts +0 -44
  319. package/src/api/form/PDFTextField.ts +0 -811
  320. package/src/api/form/appearances.ts +0 -655
  321. package/src/api/image/alignment.ts +0 -5
  322. package/src/api/objects.ts +0 -10
  323. package/src/api/operations.ts +0 -873
  324. package/src/api/operators.ts +0 -335
  325. package/src/api/rotations.ts +0 -84
  326. package/src/api/sizes.ts +0 -52
  327. package/src/api/svg.ts +0 -888
  328. package/src/api/svgPath.ts +0 -460
  329. package/src/api/text/alignment.ts +0 -5
  330. package/src/api/text/layout.ts +0 -328
  331. package/src/core/PDFContext.ts +0 -274
  332. package/src/core/PDFObjectCopier.ts +0 -142
  333. package/src/core/acroform/PDFAcroButton.ts +0 -104
  334. package/src/core/acroform/PDFAcroCheckBox.ts +0 -48
  335. package/src/core/acroform/PDFAcroChoice.ts +0 -143
  336. package/src/core/acroform/PDFAcroComboBox.ts +0 -21
  337. package/src/core/acroform/PDFAcroField.ts +0 -168
  338. package/src/core/acroform/PDFAcroForm.ts +0 -96
  339. package/src/core/acroform/PDFAcroListBox.ts +0 -19
  340. package/src/core/acroform/PDFAcroNonTerminal.ts +0 -33
  341. package/src/core/acroform/PDFAcroPushButton.ts +0 -21
  342. package/src/core/acroform/PDFAcroRadioButton.ts +0 -57
  343. package/src/core/acroform/PDFAcroTerminal.ts +0 -70
  344. package/src/core/acroform/PDFAcroText.ts +0 -76
  345. package/src/core/acroform/flags.ts +0 -162
  346. package/src/core/acroform/utils.ts +0 -129
  347. package/src/core/annotation/AppearanceCharacteristics.ts +0 -133
  348. package/src/core/annotation/BorderStyle.ts +0 -31
  349. package/src/core/annotation/PDFAnnotation.ts +0 -148
  350. package/src/core/annotation/PDFWidgetAnnotation.ts +0 -111
  351. package/src/core/annotation/flags.ts +0 -90
  352. package/src/core/crypto.ts +0 -1844
  353. package/src/core/document/PDFCrossRefSection.ts +0 -161
  354. package/src/core/document/PDFHeader.ts +0 -48
  355. package/src/core/document/PDFTrailer.ts +0 -48
  356. package/src/core/document/PDFTrailerDict.ts +0 -39
  357. package/src/core/embedders/CMap.ts +0 -65
  358. package/src/core/embedders/CustomFontEmbedder.ts +0 -237
  359. package/src/core/embedders/CustomFontSubsetEmbedder.ts +0 -89
  360. package/src/core/embedders/FileEmbedder.ts +0 -77
  361. package/src/core/embedders/FontFlags.ts +0 -45
  362. package/src/core/embedders/JavaScriptEmbedder.ts +0 -34
  363. package/src/core/embedders/JpegEmbedder.ts +0 -118
  364. package/src/core/embedders/PDFPageEmbedder.ts +0 -139
  365. package/src/core/embedders/PngEmbedder.ts +0 -69
  366. package/src/core/embedders/StandardFontEmbedder.ts +0 -121
  367. package/src/core/errors.ts +0 -226
  368. package/src/core/interactive/ViewerPreferences.ts +0 -565
  369. package/src/core/objects/PDFArray.ts +0 -179
  370. package/src/core/objects/PDFBool.ts +0 -53
  371. package/src/core/objects/PDFDict.ts +0 -220
  372. package/src/core/objects/PDFHexString.ts +0 -94
  373. package/src/core/objects/PDFInvalidObject.ts +0 -34
  374. package/src/core/objects/PDFName.ts +0 -152
  375. package/src/core/objects/PDFNull.ts +0 -30
  376. package/src/core/objects/PDFNumber.ts +0 -44
  377. package/src/core/objects/PDFObject.ts +0 -22
  378. package/src/core/objects/PDFRawStream.ts +0 -41
  379. package/src/core/objects/PDFRef.ts +0 -51
  380. package/src/core/objects/PDFStream.ts +0 -87
  381. package/src/core/objects/PDFString.ts +0 -118
  382. package/src/core/operators/PDFOperator.ts +0 -72
  383. package/src/core/operators/PDFOperatorNames.ts +0 -92
  384. package/src/core/parser/BaseParser.ts +0 -119
  385. package/src/core/parser/ByteStream.ts +0 -76
  386. package/src/core/parser/PDFObjectParser.ts +0 -302
  387. package/src/core/parser/PDFObjectStreamParser.ts +0 -65
  388. package/src/core/parser/PDFParser.ts +0 -363
  389. package/src/core/parser/PDFXRefStreamParser.ts +0 -129
  390. package/src/core/streams/Ascii85Stream.ts +0 -97
  391. package/src/core/streams/AsciiHexStream.ts +0 -77
  392. package/src/core/streams/DecodeStream.ts +0 -188
  393. package/src/core/streams/DecryptStream.ts +0 -49
  394. package/src/core/streams/FlateStream.ts +0 -397
  395. package/src/core/streams/LZWStream.ts +0 -157
  396. package/src/core/streams/RunLengthStream.ts +0 -55
  397. package/src/core/streams/Stream.ts +0 -126
  398. package/src/core/streams/decode.ts +0 -70
  399. package/src/core/structures/PDFCatalog.ts +0 -81
  400. package/src/core/structures/PDFContentStream.ts +0 -58
  401. package/src/core/structures/PDFCrossRefStream.ts +0 -238
  402. package/src/core/structures/PDFFlateStream.ts +0 -40
  403. package/src/core/structures/PDFObjectStream.ts +0 -91
  404. package/src/core/structures/PDFPageLeaf.ts +0 -244
  405. package/src/core/structures/PDFPageTree.ts +0 -192
  406. package/src/core/syntax/CharCodes.ts +0 -62
  407. package/src/core/syntax/Delimiters.ts +0 -14
  408. package/src/core/syntax/Irregular.ts +0 -10
  409. package/src/core/syntax/Keywords.ts +0 -57
  410. package/src/core/syntax/Numeric.ts +0 -26
  411. package/src/core/syntax/Whitespace.ts +0 -10
  412. package/src/core/writers/PDFStreamWriter.ts +0 -114
  413. package/src/core/writers/PDFWriter.ts +0 -146
  414. package/src/types/fontkit.ts +0 -643
  415. package/src/utils/Cache.ts +0 -26
  416. package/src/utils/arrays.ts +0 -153
  417. package/src/utils/async.ts +0 -8
  418. package/src/utils/base64.ts +0 -98
  419. package/src/utils/elements/Arc.ts +0 -97
  420. package/src/utils/elements/Circle.ts +0 -47
  421. package/src/utils/elements/Ellipse.ts +0 -117
  422. package/src/utils/elements/GraphElement.ts +0 -14
  423. package/src/utils/elements/Line.ts +0 -83
  424. package/src/utils/elements/Plot.ts +0 -50
  425. package/src/utils/elements/Point.ts +0 -37
  426. package/src/utils/elements/Rectangle.ts +0 -65
  427. package/src/utils/elements/Segment.ts +0 -81
  428. package/src/utils/errors.ts +0 -3
  429. package/src/utils/intersections.ts +0 -237
  430. package/src/utils/maths.ts +0 -96
  431. package/src/utils/numbers.ts +0 -55
  432. package/src/utils/objects.ts +0 -13
  433. package/src/utils/pdfDocEncoding.ts +0 -69
  434. package/src/utils/png.ts +0 -100
  435. package/src/utils/rng.ts +0 -21
  436. package/src/utils/strings.ts +0 -191
  437. package/src/utils/validators.ts +0 -192
  438. package/tsconfig.build.json +0 -14
  439. package/tsconfig.json +0 -15
  440. package/vite.config.mts +0 -39
  441. /package/{src/api/form/index.ts → dist/api/form/index.d.ts} +0 -0
  442. /package/{src/api/image/index.ts → dist/api/image/index.d.ts} +0 -0
  443. /package/{src/api/index.ts → dist/api/index.d.ts} +0 -0
  444. /package/{src/api/text/index.ts → dist/api/text/index.d.ts} +0 -0
  445. /package/{src/core/acroform/index.ts → dist/core/acroform/index.d.ts} +0 -0
  446. /package/{src/core/annotation/index.ts → dist/core/annotation/index.d.ts} +0 -0
  447. /package/{src/index.ts → dist/index.d.ts} +0 -0
  448. /package/{src/utils/elements/index.ts → dist/utils/elements/index.d.ts} +0 -0
  449. /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
@@ -1,565 +0,0 @@
1
- import PDFArray from '../objects/PDFArray';
2
- import PDFBool from '../objects/PDFBool';
3
- import PDFDict from '../objects/PDFDict';
4
- import PDFName from '../objects/PDFName';
5
- import PDFNumber from '../objects/PDFNumber';
6
- import PDFContext from '../PDFContext';
7
- import { assertEachIs, assertInteger, assertIsOneOf, assertRange } from '../../utils';
8
-
9
- const asEnum = <T extends string | number, U extends { [key: string]: T }>(
10
- rawValue: T | undefined,
11
- enumType: U,
12
- ): U[keyof U] | undefined => {
13
- if (rawValue === undefined) return undefined;
14
- return enumType[rawValue];
15
- };
16
-
17
- export enum NonFullScreenPageMode {
18
- /**
19
- * After exiting FullScreen mode, neither the document outline nor thumbnail
20
- * images should be visible.
21
- */
22
- UseNone = 'UseNone',
23
-
24
- /** After exiting FullScreen mode, the document outline should be visible. */
25
- UseOutlines = 'UseOutlines',
26
-
27
- /** After exiting FullScreen mode, thumbnail images should be visible. */
28
- UseThumbs = 'UseThumbs',
29
-
30
- /**
31
- * After exiting FullScreen mode, the optional content group panel should be
32
- * visible.
33
- */
34
- UseOC = 'UseOC',
35
- }
36
-
37
- export enum ReadingDirection {
38
- /** The predominant reading order is Left to Right. */
39
- L2R = 'L2R',
40
-
41
- /**
42
- * The predominant reading order is Right to left (including vertical writing
43
- * systems, such as Chinese, Japanese and Korean).
44
- */
45
- R2L = 'R2L',
46
- }
47
-
48
- export enum PrintScaling {
49
- /** No page scaling. */
50
- None = 'None',
51
-
52
- /* Use the PDF reader's default print scaling. */
53
- AppDefault = 'AppDefault',
54
- }
55
-
56
- export enum Duplex {
57
- /** The PDF reader should print single-sided. */
58
- Simplex = 'Simplex',
59
-
60
- /**
61
- * The PDF reader should print double sided and flip on the short edge of the
62
- * sheet.
63
- */
64
- DuplexFlipShortEdge = 'DuplexFlipShortEdge',
65
-
66
- /**
67
- * The PDF reader should print double sided and flip on the long edge of the
68
- * sheet.
69
- */
70
- DuplexFlipLongEdge = 'DuplexFlipLongEdge',
71
- }
72
-
73
- type BoolViewerPrefKey =
74
- | 'HideToolbar'
75
- | 'HideMenubar'
76
- | 'HideWindowUI'
77
- | 'FitWindow'
78
- | 'CenterWindow'
79
- | 'DisplayDocTitle'
80
- | 'PickTrayByPDFSize';
81
- type NameViewerPrefKey = 'NonFullScreenPageMode' | 'Direction' | 'PrintScaling' | 'Duplex';
82
-
83
- interface PageRange {
84
- start: number;
85
- end: number;
86
- }
87
-
88
- class ViewerPreferences {
89
- /** @ignore */
90
- readonly dict: PDFDict;
91
-
92
- /** @ignore */
93
- static fromDict = (dict: PDFDict): ViewerPreferences => new ViewerPreferences(dict);
94
-
95
- /** @ignore */
96
- static create = (context: PDFContext) => {
97
- const dict = context.obj({});
98
- return new ViewerPreferences(dict);
99
- };
100
-
101
- /** @ignore */
102
- protected constructor(dict: PDFDict) {
103
- this.dict = dict;
104
- }
105
-
106
- protected lookupBool(key: BoolViewerPrefKey): PDFBool | undefined {
107
- const returnObj = this.dict.lookup(PDFName.of(key));
108
- if (returnObj instanceof PDFBool) return returnObj;
109
- return undefined;
110
- }
111
-
112
- protected lookupName(key: NameViewerPrefKey): PDFName | undefined {
113
- const returnObj = this.dict.lookup(PDFName.of(key));
114
- if (returnObj instanceof PDFName) return returnObj;
115
- return undefined;
116
- }
117
-
118
- /** @ignore */
119
- HideToolbar(): PDFBool | undefined {
120
- return this.lookupBool('HideToolbar');
121
- }
122
-
123
- /** @ignore */
124
- HideMenubar(): PDFBool | undefined {
125
- return this.lookupBool('HideMenubar');
126
- }
127
-
128
- /** @ignore */
129
- HideWindowUI(): PDFBool | undefined {
130
- return this.lookupBool('HideWindowUI');
131
- }
132
-
133
- /** @ignore */
134
- FitWindow(): PDFBool | undefined {
135
- return this.lookupBool('FitWindow');
136
- }
137
-
138
- /** @ignore */
139
- CenterWindow(): PDFBool | undefined {
140
- return this.lookupBool('CenterWindow');
141
- }
142
-
143
- /** @ignore */
144
- DisplayDocTitle(): PDFBool | undefined {
145
- return this.lookupBool('DisplayDocTitle');
146
- }
147
-
148
- /** @ignore */
149
- NonFullScreenPageMode(): PDFName | undefined {
150
- return this.lookupName('NonFullScreenPageMode');
151
- }
152
-
153
- /** @ignore */
154
- Direction(): PDFName | undefined {
155
- return this.lookupName('Direction');
156
- }
157
-
158
- /** @ignore */
159
- PrintScaling(): PDFName | undefined {
160
- return this.lookupName('PrintScaling');
161
- }
162
-
163
- /** @ignore */
164
- Duplex(): PDFName | undefined {
165
- return this.lookupName('Duplex');
166
- }
167
-
168
- /** @ignore */
169
- PickTrayByPDFSize(): PDFBool | undefined {
170
- return this.lookupBool('PickTrayByPDFSize');
171
- }
172
-
173
- /** @ignore */
174
- PrintPageRange(): PDFArray | undefined {
175
- const PrintPageRange = this.dict.lookup(PDFName.of('PrintPageRange'));
176
- if (PrintPageRange instanceof PDFArray) return PrintPageRange;
177
- return undefined;
178
- }
179
-
180
- /** @ignore */
181
- NumCopies(): PDFNumber | undefined {
182
- const NumCopies = this.dict.lookup(PDFName.of('NumCopies'));
183
- if (NumCopies instanceof PDFNumber) return NumCopies;
184
- return undefined;
185
- }
186
-
187
- /**
188
- * Returns `true` if PDF readers should hide the toolbar menus when displaying
189
- * this document.
190
- * @returns Whether or not toolbars should be hidden.
191
- */
192
- getHideToolbar(): boolean {
193
- return this.HideToolbar()?.asBoolean() ?? false;
194
- }
195
-
196
- /**
197
- * Returns `true` if PDF readers should hide the menu bar when displaying this
198
- * document.
199
- * @returns Whether or not the menu bar should be hidden.
200
- */
201
- getHideMenubar(): boolean {
202
- return this.HideMenubar()?.asBoolean() ?? false;
203
- }
204
-
205
- /**
206
- * Returns `true` if PDF readers should hide the user interface elements in
207
- * the document's window (such as scroll bars and navigation controls),
208
- * leaving only the document's contents displayed.
209
- * @returns Whether or not user interface elements should be hidden.
210
- */
211
- getHideWindowUI(): boolean {
212
- return this.HideWindowUI()?.asBoolean() ?? false;
213
- }
214
-
215
- /**
216
- * Returns `true` if PDF readers should resize the document's window to fit
217
- * the size of the first displayed page.
218
- * @returns Whether or not the window should be resized to fit.
219
- */
220
- getFitWindow(): boolean {
221
- return this.FitWindow()?.asBoolean() ?? false;
222
- }
223
-
224
- /**
225
- * Returns `true` if PDF readers should position the document's window in the
226
- * center of the screen.
227
- * @returns Whether or not to center the document window.
228
- */
229
- getCenterWindow(): boolean {
230
- return this.CenterWindow()?.asBoolean() ?? false;
231
- }
232
-
233
- /**
234
- * Returns `true` if the window's title bar should display the document
235
- * `Title`, taken from the document metadata (see [[PDFDocument.getTitle]]).
236
- * Returns `false` if the title bar should instead display the filename of the
237
- * PDF file.
238
- * @returns Whether to display the document title.
239
- */
240
- getDisplayDocTitle(): boolean {
241
- return this.DisplayDocTitle()?.asBoolean() ?? false;
242
- }
243
-
244
- /**
245
- * Returns the page mode, which tells the PDF reader how to display the
246
- * document after exiting full-screen mode.
247
- * @returns The page mode after exiting full-screen mode.
248
- */
249
- getNonFullScreenPageMode(): NonFullScreenPageMode {
250
- const mode = this.NonFullScreenPageMode()?.decodeText();
251
- return asEnum(mode, NonFullScreenPageMode) ?? NonFullScreenPageMode.UseNone;
252
- }
253
-
254
- /**
255
- * Returns the predominant reading order for text.
256
- * @returns The text reading order.
257
- */
258
- getReadingDirection(): ReadingDirection {
259
- const direction = this.Direction()?.decodeText();
260
- return asEnum(direction, ReadingDirection) ?? ReadingDirection.L2R;
261
- }
262
-
263
- /**
264
- * Returns the page scaling option that the PDF reader should select when the
265
- * print dialog is displayed.
266
- * @returns The page scaling option.
267
- */
268
- getPrintScaling(): PrintScaling {
269
- const scaling = this.PrintScaling()?.decodeText();
270
- return asEnum(scaling, PrintScaling) ?? PrintScaling.AppDefault;
271
- }
272
-
273
- /**
274
- * Returns the paper handling option that should be used when printing the
275
- * file from the print dialog.
276
- * @returns The paper handling option.
277
- */
278
- getDuplex(): Duplex | undefined {
279
- const duplex = this.Duplex()?.decodeText();
280
- return asEnum(duplex, Duplex);
281
- }
282
-
283
- /**
284
- * Returns `true` if the PDF page size should be used to select the input
285
- * paper tray.
286
- * @returns Whether or not the PDF page size should be used to select the
287
- * input paper tray.
288
- */
289
- getPickTrayByPDFSize(): boolean | undefined {
290
- return this.PickTrayByPDFSize()?.asBoolean();
291
- }
292
-
293
- /**
294
- * Returns an array of page number ranges, which are the values used to
295
- * initialize the print dialog box when the file is printed. Each range
296
- * specifies the first (`start`) and last (`end`) pages in a sub-range of
297
- * pages to be printed. The first page of the PDF file is denoted by 0.
298
- * For example:
299
- * ```js
300
- * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()
301
- * const includesPage3 = viewerPrefs
302
- * .getPrintRanges()
303
- * .some(pr => pr.start =< 2 && pr.end >= 2)
304
- * if (includesPage3) console.log('printRange includes page 3')
305
- * ```
306
- * @returns An array of objects, each with the properties `start` and `end`,
307
- * denoting page indices. If not, specified an empty array is
308
- * returned.
309
- */
310
- getPrintPageRange(): PageRange[] {
311
- const rng = this.PrintPageRange();
312
- if (!rng) return [];
313
-
314
- const pageRanges: PageRange[] = [];
315
- for (let i = 0; i < rng.size(); i += 2) {
316
- // Despite the spec clearly stating that "The first page of the PDF file
317
- // shall be donoted by 1", several test PDFs (spec 1.7) created in
318
- // Acrobat XI 11.0 and also read with Reader DC 2020.013 indicate this is
319
- // actually a 0 based index.
320
- const start = rng.lookup(i, PDFNumber).asNumber();
321
- const end = rng.lookup(i + 1, PDFNumber).asNumber();
322
- pageRanges.push({ start, end });
323
- }
324
-
325
- return pageRanges;
326
- }
327
-
328
- /**
329
- * Returns the number of copies to be printed when the print dialog is opened
330
- * for this document.
331
- * @returns The default number of copies to be printed.
332
- */
333
- getNumCopies(): number {
334
- return this.NumCopies()?.asNumber() ?? 1;
335
- }
336
-
337
- /**
338
- * Choose whether the PDF reader's toolbars should be hidden while the
339
- * document is active.
340
- * @param hideToolbar `true` if the toolbar should be hidden.
341
- */
342
- setHideToolbar(hideToolbar: boolean) {
343
- const HideToolbar = this.dict.context.obj(hideToolbar);
344
- this.dict.set(PDFName.of('HideToolbar'), HideToolbar);
345
- }
346
-
347
- /**
348
- * Choose whether the PDF reader's menu bar should be hidden while the
349
- * document is active.
350
- * @param hideMenubar `true` if the menu bar should be hidden.
351
- */
352
- setHideMenubar(hideMenubar: boolean) {
353
- const HideMenubar = this.dict.context.obj(hideMenubar);
354
- this.dict.set(PDFName.of('HideMenubar'), HideMenubar);
355
- }
356
-
357
- /**
358
- * Choose whether the PDF reader should hide user interface elements in the
359
- * document's window (such as scroll bars and navigation controls), leaving
360
- * only the document's contents displayed.
361
- * @param hideWindowUI `true` if the user interface elements should be hidden.
362
- */
363
- setHideWindowUI(hideWindowUI: boolean) {
364
- const HideWindowUI = this.dict.context.obj(hideWindowUI);
365
- this.dict.set(PDFName.of('HideWindowUI'), HideWindowUI);
366
- }
367
-
368
- /**
369
- * Choose whether the PDF reader should resize the document's window to fit
370
- * the size of the first displayed page.
371
- * @param fitWindow `true` if the window should be resized.
372
- */
373
- setFitWindow(fitWindow: boolean) {
374
- const FitWindow = this.dict.context.obj(fitWindow);
375
- this.dict.set(PDFName.of('FitWindow'), FitWindow);
376
- }
377
-
378
- /**
379
- * Choose whether the PDF reader should position the document's window in the
380
- * center of the screen.
381
- * @param centerWindow `true` if the window should be centered.
382
- */
383
- setCenterWindow(centerWindow: boolean) {
384
- const CenterWindow = this.dict.context.obj(centerWindow);
385
- this.dict.set(PDFName.of('CenterWindow'), CenterWindow);
386
- }
387
-
388
- /**
389
- * Choose whether the window's title bar should display the document `Title`
390
- * taken from the document metadata (see [[PDFDocument.setTitle]]). If
391
- * `false`, the title bar should instead display the PDF filename.
392
- * @param displayTitle `true` if the document title should be displayed.
393
- */
394
- setDisplayDocTitle(displayTitle: boolean) {
395
- const DisplayDocTitle = this.dict.context.obj(displayTitle);
396
- this.dict.set(PDFName.of('DisplayDocTitle'), DisplayDocTitle);
397
- }
398
-
399
- /**
400
- * Choose how the PDF reader should display the document upon exiting
401
- * full-screen mode. This entry is meaningful only if the value of the
402
- * `PageMode` entry in the document's [[PDFCatalog]] is `FullScreen`.
403
- *
404
- * For example:
405
- * ```js
406
- * import { PDFDocument, NonFullScreenPageMode, PDFName } from 'pdf-lib'
407
- *
408
- * const pdfDoc = await PDFDocument.create()
409
- *
410
- * // Set the PageMode
411
- * pdfDoc.catalog.set(PDFName.of('PageMode'),PDFName.of('FullScreen'))
412
- *
413
- * // Set what happens when full-screen is closed
414
- * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()
415
- * viewerPrefs.setNonFullScreenPageMode(NonFullScreenPageMode.UseOutlines)
416
- * ```
417
- *
418
- * @param nonFullScreenPageMode How the document should be displayed upon
419
- * exiting full screen mode.
420
- */
421
- setNonFullScreenPageMode(nonFullScreenPageMode: NonFullScreenPageMode) {
422
- assertIsOneOf(nonFullScreenPageMode, 'nonFullScreenPageMode', NonFullScreenPageMode);
423
- const mode = PDFName.of(nonFullScreenPageMode);
424
- this.dict.set(PDFName.of('NonFullScreenPageMode'), mode);
425
- }
426
-
427
- /**
428
- * Choose the predominant reading order for text.
429
- *
430
- * This entry has no direct effect on the document's contents or page
431
- * numbering, but may be used to determine the relative positioning of pages
432
- * when displayed side by side or printed n-up.
433
- *
434
- * For example:
435
- * ```js
436
- * import { PDFDocument, ReadingDirection } from 'pdf-lib'
437
- *
438
- * const pdfDoc = await PDFDocument.create()
439
- * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()
440
- * viewerPrefs.setReadingDirection(ReadingDirection.R2L)
441
- * ```
442
- *
443
- * @param readingDirection The reading order for text.
444
- */
445
- setReadingDirection(readingDirection: ReadingDirection) {
446
- assertIsOneOf(readingDirection, 'readingDirection', ReadingDirection);
447
- const direction = PDFName.of(readingDirection);
448
- this.dict.set(PDFName.of('Direction'), direction);
449
- }
450
-
451
- /**
452
- * Choose the page scaling option that should be selected when a print dialog
453
- * is displayed for this document.
454
- *
455
- * For example:
456
- * ```js
457
- * import { PDFDocument, PrintScaling } from 'pdf-lib'
458
- *
459
- * const pdfDoc = await PDFDocument.create()
460
- * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()
461
- * viewerPrefs.setPrintScaling(PrintScaling.None)
462
- * ```
463
- *
464
- * @param printScaling The print scaling option.
465
- */
466
- setPrintScaling(printScaling: PrintScaling) {
467
- assertIsOneOf(printScaling, 'printScaling', PrintScaling);
468
- const scaling = PDFName.of(printScaling);
469
- this.dict.set(PDFName.of('PrintScaling'), scaling);
470
- }
471
-
472
- /**
473
- * Choose the paper handling option that should be selected by default in the
474
- * print dialog.
475
- *
476
- * For example:
477
- * ```js
478
- * import { PDFDocument, Duplex } from 'pdf-lib'
479
- *
480
- * const pdfDoc = await PDFDocument.create()
481
- * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()
482
- * viewerPrefs.setDuplex(Duplex.DuplexFlipShortEdge)
483
- * ```
484
- *
485
- * @param duplex The double or single sided printing option.
486
- */
487
- setDuplex(duplex: Duplex) {
488
- assertIsOneOf(duplex, 'duplex', Duplex);
489
- const dup = PDFName.of(duplex);
490
- this.dict.set(PDFName.of('Duplex'), dup);
491
- }
492
-
493
- /**
494
- * Choose whether the PDF document's page size should be used to select the
495
- * input paper tray when printing. This setting influences only the preset
496
- * values used to populate the print dialog presented by a PDF reader.
497
- *
498
- * If PickTrayByPDFSize is true, the check box in the print dialog associated
499
- * with input paper tray should be checked. This setting has no effect on
500
- * operating systems that do not provide the ability to pick the input tray
501
- * by size.
502
- *
503
- * @param pickTrayByPDFSize `true` if the document's page size should be used
504
- * to select the input paper tray.
505
- */
506
- setPickTrayByPDFSize(pickTrayByPDFSize: boolean) {
507
- const PickTrayByPDFSize = this.dict.context.obj(pickTrayByPDFSize);
508
- this.dict.set(PDFName.of('PickTrayByPDFSize'), PickTrayByPDFSize);
509
- }
510
-
511
- /**
512
- * Choose the page numbers used to initialize the print dialog box when the
513
- * file is printed. The first page of the PDF file is denoted by 0.
514
- *
515
- * For example:
516
- * ```js
517
- * import { PDFDocument } from 'pdf-lib'
518
- *
519
- * const pdfDoc = await PDFDocument.create()
520
- * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()
521
- *
522
- * // We can set the default print range to only the first page
523
- * viewerPrefs.setPrintPageRange({ start: 0, end: 0 })
524
- *
525
- * // Or we can supply noncontiguous ranges (e.g. pages 1, 3, and 5-7)
526
- * viewerPrefs.setPrintPageRange([
527
- * { start: 0, end: 0 },
528
- * { start: 2, end: 2 },
529
- * { start: 4, end: 6 },
530
- * ])
531
- * ```
532
- *
533
- * @param printPageRange An object or array of objects, each with the
534
- * properties `start` and `end`, denoting a range of
535
- * page indices.
536
- */
537
- setPrintPageRange(printPageRange: PageRange[] | PageRange) {
538
- if (!Array.isArray(printPageRange)) printPageRange = [printPageRange];
539
-
540
- const flatRange: number[] = [];
541
- for (let idx = 0, len = printPageRange.length; idx < len; idx++) {
542
- flatRange.push(printPageRange[idx].start);
543
- flatRange.push(printPageRange[idx].end);
544
- }
545
-
546
- assertEachIs(flatRange, 'printPageRange', ['number']);
547
-
548
- const pageRanges = this.dict.context.obj(flatRange);
549
- this.dict.set(PDFName.of('PrintPageRange'), pageRanges);
550
- }
551
-
552
- /**
553
- * Choose the default number of copies to be printed when the print dialog is
554
- * opened for this file.
555
- * @param numCopies The default number of copies.
556
- */
557
- setNumCopies(numCopies: number) {
558
- assertRange(numCopies, 'numCopies', 1, Number.MAX_VALUE);
559
- assertInteger(numCopies, 'numCopies');
560
- const NumCopies = this.dict.context.obj(numCopies);
561
- this.dict.set(PDFName.of('NumCopies'), NumCopies);
562
- }
563
- }
564
-
565
- export default ViewerPreferences;