@adnsistemas/pdf-lib 1.18.0

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 (1586) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +1713 -0
  3. package/cjs/api/Embeddable.d.ts +8 -0
  4. package/cjs/api/Embeddable.d.ts.map +1 -0
  5. package/cjs/api/Embeddable.js +3 -0
  6. package/cjs/api/Embeddable.js.map +1 -0
  7. package/cjs/api/PDFDocument.d.ts +800 -0
  8. package/cjs/api/PDFDocument.d.ts.map +1 -0
  9. package/cjs/api/PDFDocument.js +1454 -0
  10. package/cjs/api/PDFDocument.js.map +1 -0
  11. package/cjs/api/PDFDocumentOptions.d.ts +43 -0
  12. package/cjs/api/PDFDocumentOptions.d.ts.map +1 -0
  13. package/cjs/api/PDFDocumentOptions.js +11 -0
  14. package/cjs/api/PDFDocumentOptions.js.map +1 -0
  15. package/cjs/api/PDFEmbeddedFile.d.ts +39 -0
  16. package/cjs/api/PDFEmbeddedFile.d.ts.map +1 -0
  17. package/cjs/api/PDFEmbeddedFile.js +84 -0
  18. package/cjs/api/PDFEmbeddedFile.js.map +1 -0
  19. package/cjs/api/PDFEmbeddedPage.d.ts +74 -0
  20. package/cjs/api/PDFEmbeddedPage.d.ts.map +1 -0
  21. package/cjs/api/PDFEmbeddedPage.js +95 -0
  22. package/cjs/api/PDFEmbeddedPage.js.map +1 -0
  23. package/cjs/api/PDFFont.d.ts +95 -0
  24. package/cjs/api/PDFFont.d.ts.map +1 -0
  25. package/cjs/api/PDFFont.js +143 -0
  26. package/cjs/api/PDFFont.js.map +1 -0
  27. package/cjs/api/PDFImage.d.ts +96 -0
  28. package/cjs/api/PDFImage.d.ts.map +1 -0
  29. package/cjs/api/PDFImage.js +132 -0
  30. package/cjs/api/PDFImage.js.map +1 -0
  31. package/cjs/api/PDFJavaScript.d.ts +39 -0
  32. package/cjs/api/PDFJavaScript.d.ts.map +1 -0
  33. package/cjs/api/PDFJavaScript.js +73 -0
  34. package/cjs/api/PDFJavaScript.js.map +1 -0
  35. package/cjs/api/PDFPage.d.ts +898 -0
  36. package/cjs/api/PDFPage.d.ts.map +1 -0
  37. package/cjs/api/PDFPage.js +1442 -0
  38. package/cjs/api/PDFPage.js.map +1 -0
  39. package/cjs/api/PDFPageOptions.d.ts +155 -0
  40. package/cjs/api/PDFPageOptions.d.ts.map +1 -0
  41. package/cjs/api/PDFPageOptions.js +19 -0
  42. package/cjs/api/PDFPageOptions.js.map +1 -0
  43. package/cjs/api/StandardFonts.d.ts +17 -0
  44. package/cjs/api/StandardFonts.d.ts.map +1 -0
  45. package/cjs/api/StandardFonts.js +21 -0
  46. package/cjs/api/StandardFonts.js.map +1 -0
  47. package/cjs/api/colors.d.ts +31 -0
  48. package/cjs/api/colors.d.ts.map +1 -0
  49. package/cjs/api/colors.js +59 -0
  50. package/cjs/api/colors.js.map +1 -0
  51. package/cjs/api/errors.d.ts +43 -0
  52. package/cjs/api/errors.d.ts.map +1 -0
  53. package/cjs/api/errors.js +168 -0
  54. package/cjs/api/errors.js.map +1 -0
  55. package/cjs/api/form/PDFButton.d.ts +138 -0
  56. package/cjs/api/form/PDFButton.d.ts.map +1 -0
  57. package/cjs/api/form/PDFButton.js +220 -0
  58. package/cjs/api/form/PDFButton.js.map +1 -0
  59. package/cjs/api/form/PDFCheckBox.d.ts +143 -0
  60. package/cjs/api/form/PDFCheckBox.d.ts.map +1 -0
  61. package/cjs/api/form/PDFCheckBox.js +236 -0
  62. package/cjs/api/form/PDFCheckBox.js.map +1 -0
  63. package/cjs/api/form/PDFDropdown.d.ts +403 -0
  64. package/cjs/api/form/PDFDropdown.d.ts.map +1 -0
  65. package/cjs/api/form/PDFDropdown.js +580 -0
  66. package/cjs/api/form/PDFDropdown.js.map +1 -0
  67. package/cjs/api/form/PDFField.d.ts +204 -0
  68. package/cjs/api/form/PDFField.d.ts.map +1 -0
  69. package/cjs/api/form/PDFField.js +384 -0
  70. package/cjs/api/form/PDFField.js.map +1 -0
  71. package/cjs/api/form/PDFForm.d.ts +412 -0
  72. package/cjs/api/form/PDFForm.d.ts.map +1 -0
  73. package/cjs/api/form/PDFForm.js +726 -0
  74. package/cjs/api/form/PDFForm.js.map +1 -0
  75. package/cjs/api/form/PDFOptionList.d.ts +336 -0
  76. package/cjs/api/form/PDFOptionList.d.ts.map +1 -0
  77. package/cjs/api/form/PDFOptionList.js +499 -0
  78. package/cjs/api/form/PDFOptionList.js.map +1 -0
  79. package/cjs/api/form/PDFRadioGroup.d.ts +253 -0
  80. package/cjs/api/form/PDFRadioGroup.d.ts.map +1 -0
  81. package/cjs/api/form/PDFRadioGroup.js +415 -0
  82. package/cjs/api/form/PDFRadioGroup.js.map +1 -0
  83. package/cjs/api/form/PDFSignature.d.ts +30 -0
  84. package/cjs/api/form/PDFSignature.d.ts.map +1 -0
  85. package/cjs/api/form/PDFSignature.js +43 -0
  86. package/cjs/api/form/PDFSignature.js.map +1 -0
  87. package/cjs/api/form/PDFTextField.d.ts +538 -0
  88. package/cjs/api/form/PDFTextField.d.ts.map +1 -0
  89. package/cjs/api/form/PDFTextField.js +739 -0
  90. package/cjs/api/form/PDFTextField.js.map +1 -0
  91. package/cjs/api/form/appearances.d.ts +42 -0
  92. package/cjs/api/form/appearances.d.ts.map +1 -0
  93. package/cjs/api/form/appearances.js +421 -0
  94. package/cjs/api/form/appearances.js.map +1 -0
  95. package/cjs/api/form/index.d.ts +11 -0
  96. package/cjs/api/form/index.d.ts.map +1 -0
  97. package/cjs/api/form/index.js +23 -0
  98. package/cjs/api/form/index.js.map +1 -0
  99. package/cjs/api/image/alignment.d.ts +6 -0
  100. package/cjs/api/image/alignment.d.ts.map +1 -0
  101. package/cjs/api/image/alignment.js +10 -0
  102. package/cjs/api/image/alignment.js.map +1 -0
  103. package/cjs/api/image/index.d.ts +2 -0
  104. package/cjs/api/image/index.d.ts.map +1 -0
  105. package/cjs/api/image/index.js +5 -0
  106. package/cjs/api/image/index.js.map +1 -0
  107. package/cjs/api/index.d.ts +22 -0
  108. package/cjs/api/index.d.ts.map +1 -0
  109. package/cjs/api/index.js +30 -0
  110. package/cjs/api/index.js.map +1 -0
  111. package/cjs/api/objects.d.ts +5 -0
  112. package/cjs/api/objects.d.ts.map +1 -0
  113. package/cjs/api/objects.js +14 -0
  114. package/cjs/api/objects.js.map +1 -0
  115. package/cjs/api/operations.d.ts +212 -0
  116. package/cjs/api/operations.d.ts.map +1 -0
  117. package/cjs/api/operations.js +488 -0
  118. package/cjs/api/operations.js.map +1 -0
  119. package/cjs/api/operators.d.ts +86 -0
  120. package/cjs/api/operators.d.ts.map +1 -0
  121. package/cjs/api/operators.js +231 -0
  122. package/cjs/api/operators.js.map +1 -0
  123. package/cjs/api/rotations.d.ts +39 -0
  124. package/cjs/api/rotations.d.ts.map +1 -0
  125. package/cjs/api/rotations.js +71 -0
  126. package/cjs/api/rotations.js.map +1 -0
  127. package/cjs/api/sizes.d.ts +53 -0
  128. package/cjs/api/sizes.d.ts.map +1 -0
  129. package/cjs/api/sizes.js +56 -0
  130. package/cjs/api/sizes.js.map +1 -0
  131. package/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts +13 -0
  132. package/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts.map +1 -0
  133. package/cjs/api/snapshot/DefaultDocumentSnapshot.js +28 -0
  134. package/cjs/api/snapshot/DefaultDocumentSnapshot.js.map +1 -0
  135. package/cjs/api/snapshot/DocumentSnapshot.d.ts +11 -0
  136. package/cjs/api/snapshot/DocumentSnapshot.d.ts.map +1 -0
  137. package/cjs/api/snapshot/DocumentSnapshot.js +3 -0
  138. package/cjs/api/snapshot/DocumentSnapshot.js.map +1 -0
  139. package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +16 -0
  140. package/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -0
  141. package/cjs/api/snapshot/IncrementalDocumentSnapshot.js +44 -0
  142. package/cjs/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -0
  143. package/cjs/api/snapshot/index.d.ts +4 -0
  144. package/cjs/api/snapshot/index.d.ts.map +1 -0
  145. package/cjs/api/snapshot/index.js +7 -0
  146. package/cjs/api/snapshot/index.js.map +1 -0
  147. package/cjs/api/svgPath.d.ts +3 -0
  148. package/cjs/api/svgPath.d.ts.map +1 -0
  149. package/cjs/api/svgPath.js +380 -0
  150. package/cjs/api/svgPath.js.map +1 -0
  151. package/cjs/api/text/alignment.d.ts +6 -0
  152. package/cjs/api/text/alignment.d.ts.map +1 -0
  153. package/cjs/api/text/alignment.js +10 -0
  154. package/cjs/api/text/alignment.js.map +1 -0
  155. package/cjs/api/text/index.d.ts +3 -0
  156. package/cjs/api/text/index.d.ts.map +1 -0
  157. package/cjs/api/text/index.js +6 -0
  158. package/cjs/api/text/index.js.map +1 -0
  159. package/cjs/api/text/layout.d.ts +55 -0
  160. package/cjs/api/text/layout.d.ts.map +1 -0
  161. package/cjs/api/text/layout.js +212 -0
  162. package/cjs/api/text/layout.js.map +1 -0
  163. package/cjs/core/PDFContext.d.ts +93 -0
  164. package/cjs/core/PDFContext.d.ts.map +1 -0
  165. package/cjs/core/PDFContext.js +210 -0
  166. package/cjs/core/PDFContext.js.map +1 -0
  167. package/cjs/core/PDFObjectCopier.d.ts +38 -0
  168. package/cjs/core/PDFObjectCopier.d.ts.map +1 -0
  169. package/cjs/core/PDFObjectCopier.js +119 -0
  170. package/cjs/core/PDFObjectCopier.js.map +1 -0
  171. package/cjs/core/acroform/PDFAcroButton.d.ts +22 -0
  172. package/cjs/core/acroform/PDFAcroButton.d.ts.map +1 -0
  173. package/cjs/core/acroform/PDFAcroButton.js +96 -0
  174. package/cjs/core/acroform/PDFAcroButton.js.map +1 -0
  175. package/cjs/core/acroform/PDFAcroCheckBox.d.ts +14 -0
  176. package/cjs/core/acroform/PDFAcroCheckBox.d.ts.map +1 -0
  177. package/cjs/core/acroform/PDFAcroCheckBox.js +50 -0
  178. package/cjs/core/acroform/PDFAcroCheckBox.js.map +1 -0
  179. package/cjs/core/acroform/PDFAcroChoice.d.ts +21 -0
  180. package/cjs/core/acroform/PDFAcroChoice.d.ts.map +1 -0
  181. package/cjs/core/acroform/PDFAcroChoice.js +127 -0
  182. package/cjs/core/acroform/PDFAcroChoice.js.map +1 -0
  183. package/cjs/core/acroform/PDFAcroComboBox.d.ts +10 -0
  184. package/cjs/core/acroform/PDFAcroComboBox.d.ts.map +1 -0
  185. package/cjs/core/acroform/PDFAcroComboBox.js +26 -0
  186. package/cjs/core/acroform/PDFAcroComboBox.js.map +1 -0
  187. package/cjs/core/acroform/PDFAcroField.d.ts +37 -0
  188. package/cjs/core/acroform/PDFAcroField.d.ts.map +1 -0
  189. package/cjs/core/acroform/PDFAcroField.js +149 -0
  190. package/cjs/core/acroform/PDFAcroField.js.map +1 -0
  191. package/cjs/core/acroform/PDFAcroForm.d.ts +21 -0
  192. package/cjs/core/acroform/PDFAcroForm.d.ts.map +1 -0
  193. package/cjs/core/acroform/PDFAcroForm.js +78 -0
  194. package/cjs/core/acroform/PDFAcroForm.js.map +1 -0
  195. package/cjs/core/acroform/PDFAcroListBox.d.ts +10 -0
  196. package/cjs/core/acroform/PDFAcroListBox.d.ts.map +1 -0
  197. package/cjs/core/acroform/PDFAcroListBox.js +24 -0
  198. package/cjs/core/acroform/PDFAcroListBox.js.map +1 -0
  199. package/cjs/core/acroform/PDFAcroNonTerminal.d.ts +14 -0
  200. package/cjs/core/acroform/PDFAcroNonTerminal.d.ts.map +1 -0
  201. package/cjs/core/acroform/PDFAcroNonTerminal.js +34 -0
  202. package/cjs/core/acroform/PDFAcroNonTerminal.js.map +1 -0
  203. package/cjs/core/acroform/PDFAcroPushButton.d.ts +10 -0
  204. package/cjs/core/acroform/PDFAcroPushButton.d.ts.map +1 -0
  205. package/cjs/core/acroform/PDFAcroPushButton.js +26 -0
  206. package/cjs/core/acroform/PDFAcroPushButton.js.map +1 -0
  207. package/cjs/core/acroform/PDFAcroRadioButton.d.ts +14 -0
  208. package/cjs/core/acroform/PDFAcroRadioButton.d.ts.map +1 -0
  209. package/cjs/core/acroform/PDFAcroRadioButton.js +57 -0
  210. package/cjs/core/acroform/PDFAcroRadioButton.js.map +1 -0
  211. package/cjs/core/acroform/PDFAcroSignature.d.ts +8 -0
  212. package/cjs/core/acroform/PDFAcroSignature.d.ts.map +1 -0
  213. package/cjs/core/acroform/PDFAcroSignature.js +16 -0
  214. package/cjs/core/acroform/PDFAcroSignature.js.map +1 -0
  215. package/cjs/core/acroform/PDFAcroTerminal.d.ts +17 -0
  216. package/cjs/core/acroform/PDFAcroTerminal.d.ts.map +1 -0
  217. package/cjs/core/acroform/PDFAcroTerminal.js +70 -0
  218. package/cjs/core/acroform/PDFAcroTerminal.js.map +1 -0
  219. package/cjs/core/acroform/PDFAcroText.d.ts +23 -0
  220. package/cjs/core/acroform/PDFAcroText.d.ts.map +1 -0
  221. package/cjs/core/acroform/PDFAcroText.js +73 -0
  222. package/cjs/core/acroform/PDFAcroText.js.map +1 -0
  223. package/cjs/core/acroform/flags.d.ts +142 -0
  224. package/cjs/core/acroform/flags.d.ts.map +1 -0
  225. package/cjs/core/acroform/flags.js +150 -0
  226. package/cjs/core/acroform/flags.js.map +1 -0
  227. package/cjs/core/acroform/index.d.ts +16 -0
  228. package/cjs/core/acroform/index.d.ts.map +1 -0
  229. package/cjs/core/acroform/index.js +32 -0
  230. package/cjs/core/acroform/index.js.map +1 -0
  231. package/cjs/core/acroform/utils.d.ts +7 -0
  232. package/cjs/core/acroform/utils.d.ts.map +1 -0
  233. package/cjs/core/acroform/utils.js +127 -0
  234. package/cjs/core/acroform/utils.js.map +1 -0
  235. package/cjs/core/annotation/AppearanceCharacteristics.d.ts +34 -0
  236. package/cjs/core/annotation/AppearanceCharacteristics.d.ts.map +1 -0
  237. package/cjs/core/annotation/AppearanceCharacteristics.js +123 -0
  238. package/cjs/core/annotation/AppearanceCharacteristics.js.map +1 -0
  239. package/cjs/core/annotation/BorderStyle.d.ts +12 -0
  240. package/cjs/core/annotation/BorderStyle.d.ts.map +1 -0
  241. package/cjs/core/annotation/BorderStyle.js +29 -0
  242. package/cjs/core/annotation/BorderStyle.js.map +1 -0
  243. package/cjs/core/annotation/PDFAnnotation.d.ts +52 -0
  244. package/cjs/core/annotation/PDFAnnotation.d.ts.map +1 -0
  245. package/cjs/core/annotation/PDFAnnotation.js +123 -0
  246. package/cjs/core/annotation/PDFAnnotation.js.map +1 -0
  247. package/cjs/core/annotation/PDFWidgetAnnotation.d.ts +27 -0
  248. package/cjs/core/annotation/PDFWidgetAnnotation.d.ts.map +1 -0
  249. package/cjs/core/annotation/PDFWidgetAnnotation.js +110 -0
  250. package/cjs/core/annotation/PDFWidgetAnnotation.js.map +1 -0
  251. package/cjs/core/annotation/flags.d.ts +80 -0
  252. package/cjs/core/annotation/flags.d.ts.map +1 -0
  253. package/cjs/core/annotation/flags.js +85 -0
  254. package/cjs/core/annotation/flags.js.map +1 -0
  255. package/cjs/core/annotation/index.d.ts +5 -0
  256. package/cjs/core/annotation/index.d.ts.map +1 -0
  257. package/cjs/core/annotation/index.js +11 -0
  258. package/cjs/core/annotation/index.js.map +1 -0
  259. package/cjs/core/document/PDFCrossRefSection.d.ts +28 -0
  260. package/cjs/core/document/PDFCrossRefSection.d.ts.map +1 -0
  261. package/cjs/core/document/PDFCrossRefSection.js +124 -0
  262. package/cjs/core/document/PDFCrossRefSection.js.map +1 -0
  263. package/cjs/core/document/PDFHeader.d.ts +11 -0
  264. package/cjs/core/document/PDFHeader.d.ts.map +1 -0
  265. package/cjs/core/document/PDFHeader.js +42 -0
  266. package/cjs/core/document/PDFHeader.js.map +1 -0
  267. package/cjs/core/document/PDFTrailer.d.ts +10 -0
  268. package/cjs/core/document/PDFTrailer.d.ts.map +1 -0
  269. package/cjs/core/document/PDFTrailer.js +43 -0
  270. package/cjs/core/document/PDFTrailer.js.map +1 -0
  271. package/cjs/core/document/PDFTrailerDict.d.ts +11 -0
  272. package/cjs/core/document/PDFTrailerDict.d.ts.map +1 -0
  273. package/cjs/core/document/PDFTrailerDict.js +32 -0
  274. package/cjs/core/document/PDFTrailerDict.js.map +1 -0
  275. package/cjs/core/embedders/CMap.d.ts +4 -0
  276. package/cjs/core/embedders/CMap.d.ts.map +1 -0
  277. package/cjs/core/embedders/CMap.js +43 -0
  278. package/cjs/core/embedders/CMap.js.map +1 -0
  279. package/cjs/core/embedders/CustomFontEmbedder.d.ts +45 -0
  280. package/cjs/core/embedders/CustomFontEmbedder.d.ts.map +1 -0
  281. package/cjs/core/embedders/CustomFontEmbedder.js +240 -0
  282. package/cjs/core/embedders/CustomFontEmbedder.js.map +1 -0
  283. package/cjs/core/embedders/CustomFontSubsetEmbedder.d.ts +21 -0
  284. package/cjs/core/embedders/CustomFontSubsetEmbedder.d.ts.map +1 -0
  285. package/cjs/core/embedders/CustomFontSubsetEmbedder.js +68 -0
  286. package/cjs/core/embedders/CustomFontSubsetEmbedder.js.map +1 -0
  287. package/cjs/core/embedders/FileEmbedder.d.ts +34 -0
  288. package/cjs/core/embedders/FileEmbedder.d.ts.map +1 -0
  289. package/cjs/core/embedders/FileEmbedder.js +75 -0
  290. package/cjs/core/embedders/FileEmbedder.js.map +1 -0
  291. package/cjs/core/embedders/FontFlags.d.ts +14 -0
  292. package/cjs/core/embedders/FontFlags.d.ts.map +1 -0
  293. package/cjs/core/embedders/FontFlags.js +40 -0
  294. package/cjs/core/embedders/FontFlags.js.map +1 -0
  295. package/cjs/core/embedders/JavaScriptEmbedder.d.ts +11 -0
  296. package/cjs/core/embedders/JavaScriptEmbedder.d.ts.map +1 -0
  297. package/cjs/core/embedders/JavaScriptEmbedder.js +36 -0
  298. package/cjs/core/embedders/JavaScriptEmbedder.js.map +1 -0
  299. package/cjs/core/embedders/JpegEmbedder.d.ts +24 -0
  300. package/cjs/core/embedders/JpegEmbedder.d.ts.map +1 -0
  301. package/cjs/core/embedders/JpegEmbedder.js +107 -0
  302. package/cjs/core/embedders/JpegEmbedder.js.map +1 -0
  303. package/cjs/core/embedders/PDFPageEmbedder.d.ts +38 -0
  304. package/cjs/core/embedders/PDFPageEmbedder.d.ts.map +1 -0
  305. package/cjs/core/embedders/PDFPageEmbedder.js +91 -0
  306. package/cjs/core/embedders/PDFPageEmbedder.js.map +1 -0
  307. package/cjs/core/embedders/PngEmbedder.d.ts +20 -0
  308. package/cjs/core/embedders/PngEmbedder.d.ts.map +1 -0
  309. package/cjs/core/embedders/PngEmbedder.js +69 -0
  310. package/cjs/core/embedders/PngEmbedder.js.map +1 -0
  311. package/cjs/core/embedders/StandardFontEmbedder.d.ts +37 -0
  312. package/cjs/core/embedders/StandardFontEmbedder.d.ts.map +1 -0
  313. package/cjs/core/embedders/StandardFontEmbedder.js +98 -0
  314. package/cjs/core/embedders/StandardFontEmbedder.js.map +1 -0
  315. package/cjs/core/errors.d.ts +92 -0
  316. package/cjs/core/errors.d.ts.map +1 -0
  317. package/cjs/core/errors.js +323 -0
  318. package/cjs/core/errors.js.map +1 -0
  319. package/cjs/core/index.d.ts +48 -0
  320. package/cjs/core/index.d.ts.map +1 -0
  321. package/cjs/core/index.js +100 -0
  322. package/cjs/core/index.js.map +1 -0
  323. package/cjs/core/interactive/ViewerPreferences.d.ts +348 -0
  324. package/cjs/core/interactive/ViewerPreferences.d.ts.map +1 -0
  325. package/cjs/core/interactive/ViewerPreferences.js +511 -0
  326. package/cjs/core/interactive/ViewerPreferences.js.map +1 -0
  327. package/cjs/core/objects/PDFArray.d.ts +64 -0
  328. package/cjs/core/objects/PDFArray.d.ts.map +1 -0
  329. package/cjs/core/objects/PDFArray.js +117 -0
  330. package/cjs/core/objects/PDFArray.js.map +1 -0
  331. package/cjs/core/objects/PDFBool.d.ts +14 -0
  332. package/cjs/core/objects/PDFBool.d.ts.map +1 -0
  333. package/cjs/core/objects/PDFBool.js +52 -0
  334. package/cjs/core/objects/PDFBool.js.map +1 -0
  335. package/cjs/core/objects/PDFDict.d.ts +63 -0
  336. package/cjs/core/objects/PDFDict.d.ts.map +1 -0
  337. package/cjs/core/objects/PDFDict.js +143 -0
  338. package/cjs/core/objects/PDFDict.js.map +1 -0
  339. package/cjs/core/objects/PDFHexString.d.ts +17 -0
  340. package/cjs/core/objects/PDFHexString.d.ts.map +1 -0
  341. package/cjs/core/objects/PDFHexString.js +74 -0
  342. package/cjs/core/objects/PDFHexString.js.map +1 -0
  343. package/cjs/core/objects/PDFInvalidObject.d.ts +12 -0
  344. package/cjs/core/objects/PDFInvalidObject.d.ts.map +1 -0
  345. package/cjs/core/objects/PDFInvalidObject.js +32 -0
  346. package/cjs/core/objects/PDFInvalidObject.js.map +1 -0
  347. package/cjs/core/objects/PDFName.d.ts +42 -0
  348. package/cjs/core/objects/PDFName.d.ts.map +1 -0
  349. package/cjs/core/objects/PDFName.js +138 -0
  350. package/cjs/core/objects/PDFName.js.map +1 -0
  351. package/cjs/core/objects/PDFNull.d.ts +11 -0
  352. package/cjs/core/objects/PDFNull.d.ts.map +1 -0
  353. package/cjs/core/objects/PDFNull.js +33 -0
  354. package/cjs/core/objects/PDFNull.js.map +1 -0
  355. package/cjs/core/objects/PDFNumber.d.ts +16 -0
  356. package/cjs/core/objects/PDFNumber.d.ts.map +1 -0
  357. package/cjs/core/objects/PDFNumber.js +38 -0
  358. package/cjs/core/objects/PDFNumber.js.map +1 -0
  359. package/cjs/core/objects/PDFObject.d.ts +10 -0
  360. package/cjs/core/objects/PDFObject.d.ts.map +1 -0
  361. package/cjs/core/objects/PDFObject.js +25 -0
  362. package/cjs/core/objects/PDFObject.js.map +1 -0
  363. package/cjs/core/objects/PDFRawStream.d.ts +15 -0
  364. package/cjs/core/objects/PDFRawStream.d.ts.map +1 -0
  365. package/cjs/core/objects/PDFRawStream.js +34 -0
  366. package/cjs/core/objects/PDFRawStream.js.map +1 -0
  367. package/cjs/core/objects/PDFRef.d.ts +14 -0
  368. package/cjs/core/objects/PDFRef.d.ts.map +1 -0
  369. package/cjs/core/objects/PDFRef.js +47 -0
  370. package/cjs/core/objects/PDFRef.js.map +1 -0
  371. package/cjs/core/objects/PDFStream.d.ts +17 -0
  372. package/cjs/core/objects/PDFStream.d.ts.map +1 -0
  373. package/cjs/core/objects/PDFStream.js +75 -0
  374. package/cjs/core/objects/PDFStream.js.map +1 -0
  375. package/cjs/core/objects/PDFString.d.ts +17 -0
  376. package/cjs/core/objects/PDFString.d.ts.map +1 -0
  377. package/cjs/core/objects/PDFString.js +116 -0
  378. package/cjs/core/objects/PDFString.js.map +1 -0
  379. package/cjs/core/operators/PDFOperator.d.ts +20 -0
  380. package/cjs/core/operators/PDFOperator.d.ts.map +1 -0
  381. package/cjs/core/operators/PDFOperator.js +58 -0
  382. package/cjs/core/operators/PDFOperator.js.map +1 -0
  383. package/cjs/core/operators/PDFOperatorNames.d.ts +77 -0
  384. package/cjs/core/operators/PDFOperatorNames.d.ts.map +1 -0
  385. package/cjs/core/operators/PDFOperatorNames.js +88 -0
  386. package/cjs/core/operators/PDFOperatorNames.js.map +1 -0
  387. package/cjs/core/parser/BaseParser.d.ts +15 -0
  388. package/cjs/core/parser/BaseParser.d.ts.map +1 -0
  389. package/cjs/core/parser/BaseParser.js +110 -0
  390. package/cjs/core/parser/BaseParser.js.map +1 -0
  391. package/cjs/core/parser/ByteStream.d.ts +27 -0
  392. package/cjs/core/parser/ByteStream.d.ts.map +1 -0
  393. package/cjs/core/parser/ByteStream.js +64 -0
  394. package/cjs/core/parser/ByteStream.js.map +1 -0
  395. package/cjs/core/parser/PDFObjectParser.d.ts +30 -0
  396. package/cjs/core/parser/PDFObjectParser.d.ts.map +1 -0
  397. package/cjs/core/parser/PDFObjectParser.js +233 -0
  398. package/cjs/core/parser/PDFObjectParser.js.map +1 -0
  399. package/cjs/core/parser/PDFObjectStreamParser.d.ts +14 -0
  400. package/cjs/core/parser/PDFObjectStreamParser.d.ts.map +1 -0
  401. package/cjs/core/parser/PDFObjectStreamParser.js +70 -0
  402. package/cjs/core/parser/PDFObjectStreamParser.js.map +1 -0
  403. package/cjs/core/parser/PDFParser.d.ts +46 -0
  404. package/cjs/core/parser/PDFParser.d.ts.map +1 -0
  405. package/cjs/core/parser/PDFParser.js +362 -0
  406. package/cjs/core/parser/PDFParser.js.map +1 -0
  407. package/cjs/core/parser/PDFXRefStreamParser.d.ts +22 -0
  408. package/cjs/core/parser/PDFXRefStreamParser.d.ts.map +1 -0
  409. package/cjs/core/parser/PDFXRefStreamParser.js +93 -0
  410. package/cjs/core/parser/PDFXRefStreamParser.js.map +1 -0
  411. package/cjs/core/streams/Ascii85Stream.d.ts +10 -0
  412. package/cjs/core/streams/Ascii85Stream.d.ts.map +1 -0
  413. package/cjs/core/streams/Ascii85Stream.js +87 -0
  414. package/cjs/core/streams/Ascii85Stream.js.map +1 -0
  415. package/cjs/core/streams/AsciiHexStream.d.ts +10 -0
  416. package/cjs/core/streams/AsciiHexStream.d.ts.map +1 -0
  417. package/cjs/core/streams/AsciiHexStream.js +75 -0
  418. package/cjs/core/streams/AsciiHexStream.js.map +1 -0
  419. package/cjs/core/streams/DecodeStream.d.ts +27 -0
  420. package/cjs/core/streams/DecodeStream.d.ts.map +1 -0
  421. package/cjs/core/streams/DecodeStream.js +149 -0
  422. package/cjs/core/streams/DecodeStream.js.map +1 -0
  423. package/cjs/core/streams/FlateStream.d.ts +14 -0
  424. package/cjs/core/streams/FlateStream.d.ts.map +1 -0
  425. package/cjs/core/streams/FlateStream.js +371 -0
  426. package/cjs/core/streams/FlateStream.js.map +1 -0
  427. package/cjs/core/streams/LZWStream.d.ts +13 -0
  428. package/cjs/core/streams/LZWStream.d.ts.map +1 -0
  429. package/cjs/core/streams/LZWStream.js +137 -0
  430. package/cjs/core/streams/LZWStream.js.map +1 -0
  431. package/cjs/core/streams/RunLengthStream.d.ts +9 -0
  432. package/cjs/core/streams/RunLengthStream.d.ts.map +1 -0
  433. package/cjs/core/streams/RunLengthStream.js +55 -0
  434. package/cjs/core/streams/RunLengthStream.js.map +1 -0
  435. package/cjs/core/streams/Stream.d.ts +35 -0
  436. package/cjs/core/streams/Stream.d.ts.map +1 -0
  437. package/cjs/core/streams/Stream.js +106 -0
  438. package/cjs/core/streams/Stream.js.map +1 -0
  439. package/cjs/core/streams/decode.d.ts +4 -0
  440. package/cjs/core/streams/decode.d.ts.map +1 -0
  441. package/cjs/core/streams/decode.js +59 -0
  442. package/cjs/core/streams/decode.js.map +1 -0
  443. package/cjs/core/structures/PDFCatalog.d.ts +28 -0
  444. package/cjs/core/structures/PDFCatalog.d.ts.map +1 -0
  445. package/cjs/core/structures/PDFCatalog.js +79 -0
  446. package/cjs/core/structures/PDFCatalog.js.map +1 -0
  447. package/cjs/core/structures/PDFContentStream.d.ts +16 -0
  448. package/cjs/core/structures/PDFContentStream.d.ts.map +1 -0
  449. package/cjs/core/structures/PDFContentStream.js +60 -0
  450. package/cjs/core/structures/PDFContentStream.js.map +1 -0
  451. package/cjs/core/structures/PDFCrossRefStream.d.ts +54 -0
  452. package/cjs/core/structures/PDFCrossRefStream.d.ts.map +1 -0
  453. package/cjs/core/structures/PDFCrossRefStream.js +187 -0
  454. package/cjs/core/structures/PDFCrossRefStream.js.map +1 -0
  455. package/cjs/core/structures/PDFFlateStream.d.ts +14 -0
  456. package/cjs/core/structures/PDFFlateStream.d.ts.map +1 -0
  457. package/cjs/core/structures/PDFFlateStream.js +35 -0
  458. package/cjs/core/structures/PDFFlateStream.js.map +1 -0
  459. package/cjs/core/structures/PDFObjectStream.d.ts +21 -0
  460. package/cjs/core/structures/PDFObjectStream.d.ts.map +1 -0
  461. package/cjs/core/structures/PDFObjectStream.js +77 -0
  462. package/cjs/core/structures/PDFObjectStream.js.map +1 -0
  463. package/cjs/core/structures/PDFPageLeaf.d.ts +55 -0
  464. package/cjs/core/structures/PDFPageLeaf.d.ts.map +1 -0
  465. package/cjs/core/structures/PDFPageLeaf.js +208 -0
  466. package/cjs/core/structures/PDFPageLeaf.js.map +1 -0
  467. package/cjs/core/structures/PDFPageTree.d.ts +42 -0
  468. package/cjs/core/structures/PDFPageTree.d.ts.map +1 -0
  469. package/cjs/core/structures/PDFPageTree.js +177 -0
  470. package/cjs/core/structures/PDFPageTree.js.map +1 -0
  471. package/cjs/core/syntax/CharCodes.d.ts +62 -0
  472. package/cjs/core/syntax/CharCodes.d.ts.map +1 -0
  473. package/cjs/core/syntax/CharCodes.js +65 -0
  474. package/cjs/core/syntax/CharCodes.js.map +1 -0
  475. package/cjs/core/syntax/Delimiters.d.ts +2 -0
  476. package/cjs/core/syntax/Delimiters.d.ts.map +1 -0
  477. package/cjs/core/syntax/Delimiters.js +17 -0
  478. package/cjs/core/syntax/Delimiters.js.map +1 -0
  479. package/cjs/core/syntax/Irregular.d.ts +2 -0
  480. package/cjs/core/syntax/Irregular.d.ts.map +1 -0
  481. package/cjs/core/syntax/Irregular.js +13 -0
  482. package/cjs/core/syntax/Irregular.js.map +1 -0
  483. package/cjs/core/syntax/Keywords.d.ts +23 -0
  484. package/cjs/core/syntax/Keywords.d.ts.map +1 -0
  485. package/cjs/core/syntax/Keywords.js +84 -0
  486. package/cjs/core/syntax/Keywords.js.map +1 -0
  487. package/cjs/core/syntax/Numeric.d.ts +4 -0
  488. package/cjs/core/syntax/Numeric.d.ts.map +1 -0
  489. package/cjs/core/syntax/Numeric.js +25 -0
  490. package/cjs/core/syntax/Numeric.js.map +1 -0
  491. package/cjs/core/syntax/Whitespace.d.ts +2 -0
  492. package/cjs/core/syntax/Whitespace.d.ts.map +1 -0
  493. package/cjs/core/syntax/Whitespace.js +13 -0
  494. package/cjs/core/syntax/Whitespace.js.map +1 -0
  495. package/cjs/core/writers/PDFStreamWriter.d.ts +22 -0
  496. package/cjs/core/writers/PDFStreamWriter.d.ts.map +1 -0
  497. package/cjs/core/writers/PDFStreamWriter.js +133 -0
  498. package/cjs/core/writers/PDFStreamWriter.js.map +1 -0
  499. package/cjs/core/writers/PDFWriter.d.ts +33 -0
  500. package/cjs/core/writers/PDFWriter.d.ts.map +1 -0
  501. package/cjs/core/writers/PDFWriter.js +164 -0
  502. package/cjs/core/writers/PDFWriter.js.map +1 -0
  503. package/cjs/index.d.ts +5 -0
  504. package/cjs/index.d.ts.map +1 -0
  505. package/cjs/index.js +8 -0
  506. package/cjs/index.js.map +1 -0
  507. package/cjs/types/fontkit.d.ts +582 -0
  508. package/cjs/types/fontkit.d.ts.map +1 -0
  509. package/cjs/types/fontkit.js +3 -0
  510. package/cjs/types/fontkit.js.map +1 -0
  511. package/cjs/types/index.d.ts +2 -0
  512. package/cjs/types/index.d.ts.map +1 -0
  513. package/cjs/types/index.js +3 -0
  514. package/cjs/types/index.js.map +1 -0
  515. package/cjs/types/matrix.d.ts +22 -0
  516. package/cjs/types/matrix.d.ts.map +1 -0
  517. package/cjs/types/matrix.js +5 -0
  518. package/cjs/types/matrix.js.map +1 -0
  519. package/cjs/utils/Cache.d.ts +11 -0
  520. package/cjs/utils/Cache.d.ts.map +1 -0
  521. package/cjs/utils/Cache.js +23 -0
  522. package/cjs/utils/Cache.js.map +1 -0
  523. package/cjs/utils/arrays.d.ts +16 -0
  524. package/cjs/utils/arrays.d.ts.map +1 -0
  525. package/cjs/utils/arrays.js +132 -0
  526. package/cjs/utils/arrays.js.map +1 -0
  527. package/cjs/utils/async.d.ts +6 -0
  528. package/cjs/utils/async.d.ts.map +1 -0
  529. package/cjs/utils/async.js +13 -0
  530. package/cjs/utils/async.js.map +1 -0
  531. package/cjs/utils/base64.d.ts +11 -0
  532. package/cjs/utils/base64.d.ts.map +1 -0
  533. package/cjs/utils/base64.js +87 -0
  534. package/cjs/utils/base64.js.map +1 -0
  535. package/cjs/utils/errors.d.ts +2 -0
  536. package/cjs/utils/errors.d.ts.map +1 -0
  537. package/cjs/utils/errors.js +7 -0
  538. package/cjs/utils/errors.js.map +1 -0
  539. package/cjs/utils/index.d.ts +12 -0
  540. package/cjs/utils/index.d.ts.map +1 -0
  541. package/cjs/utils/index.js +16 -0
  542. package/cjs/utils/index.js.map +1 -0
  543. package/cjs/utils/numbers.d.ts +24 -0
  544. package/cjs/utils/numbers.d.ts.map +1 -0
  545. package/cjs/utils/numbers.js +57 -0
  546. package/cjs/utils/numbers.js.map +1 -0
  547. package/cjs/utils/objects.d.ts +16 -0
  548. package/cjs/utils/objects.d.ts.map +1 -0
  549. package/cjs/utils/objects.js +11 -0
  550. package/cjs/utils/objects.js.map +1 -0
  551. package/cjs/utils/pdfDocEncoding.d.ts +8 -0
  552. package/cjs/utils/pdfDocEncoding.d.ts.map +1 -0
  553. package/cjs/utils/pdfDocEncoding.js +69 -0
  554. package/cjs/utils/pdfDocEncoding.js.map +1 -0
  555. package/cjs/utils/png.d.ts +18 -0
  556. package/cjs/utils/png.d.ts.map +1 -0
  557. package/cjs/utils/png.js +63 -0
  558. package/cjs/utils/png.js.map +1 -0
  559. package/cjs/utils/rng.d.ts +14 -0
  560. package/cjs/utils/rng.d.ts.map +1 -0
  561. package/cjs/utils/rng.js +23 -0
  562. package/cjs/utils/rng.js.map +1 -0
  563. package/cjs/utils/strings.d.ts +25 -0
  564. package/cjs/utils/strings.d.ts.map +1 -0
  565. package/cjs/utils/strings.js +141 -0
  566. package/cjs/utils/strings.js.map +1 -0
  567. package/cjs/utils/unicode.d.ts +187 -0
  568. package/cjs/utils/unicode.d.ts.map +1 -0
  569. package/cjs/utils/unicode.js +370 -0
  570. package/cjs/utils/unicode.js.map +1 -0
  571. package/cjs/utils/validators.d.ts +27 -0
  572. package/cjs/utils/validators.d.ts.map +1 -0
  573. package/cjs/utils/validators.js +183 -0
  574. package/cjs/utils/validators.js.map +1 -0
  575. package/dist/pdf-lib.esm.js +39613 -0
  576. package/dist/pdf-lib.esm.js.map +1 -0
  577. package/dist/pdf-lib.esm.min.js +16 -0
  578. package/dist/pdf-lib.esm.min.js.map +1 -0
  579. package/dist/pdf-lib.js +39886 -0
  580. package/dist/pdf-lib.js.map +1 -0
  581. package/dist/pdf-lib.min.js +16 -0
  582. package/dist/pdf-lib.min.js.map +1 -0
  583. package/es/api/Embeddable.d.ts +8 -0
  584. package/es/api/Embeddable.d.ts.map +1 -0
  585. package/es/api/Embeddable.js +1 -0
  586. package/es/api/Embeddable.js.map +1 -0
  587. package/es/api/PDFDocument.d.ts +800 -0
  588. package/es/api/PDFDocument.d.ts.map +1 -0
  589. package/es/api/PDFDocument.js +1452 -0
  590. package/es/api/PDFDocument.js.map +1 -0
  591. package/es/api/PDFDocumentOptions.d.ts +43 -0
  592. package/es/api/PDFDocumentOptions.d.ts.map +1 -0
  593. package/es/api/PDFDocumentOptions.js +8 -0
  594. package/es/api/PDFDocumentOptions.js.map +1 -0
  595. package/es/api/PDFEmbeddedFile.d.ts +39 -0
  596. package/es/api/PDFEmbeddedFile.d.ts.map +1 -0
  597. package/es/api/PDFEmbeddedFile.js +82 -0
  598. package/es/api/PDFEmbeddedFile.js.map +1 -0
  599. package/es/api/PDFEmbeddedPage.d.ts +74 -0
  600. package/es/api/PDFEmbeddedPage.d.ts.map +1 -0
  601. package/es/api/PDFEmbeddedPage.js +93 -0
  602. package/es/api/PDFEmbeddedPage.js.map +1 -0
  603. package/es/api/PDFFont.d.ts +95 -0
  604. package/es/api/PDFFont.d.ts.map +1 -0
  605. package/es/api/PDFFont.js +141 -0
  606. package/es/api/PDFFont.js.map +1 -0
  607. package/es/api/PDFImage.d.ts +96 -0
  608. package/es/api/PDFImage.d.ts.map +1 -0
  609. package/es/api/PDFImage.js +130 -0
  610. package/es/api/PDFImage.js.map +1 -0
  611. package/es/api/PDFJavaScript.d.ts +39 -0
  612. package/es/api/PDFJavaScript.d.ts.map +1 -0
  613. package/es/api/PDFJavaScript.js +71 -0
  614. package/es/api/PDFJavaScript.js.map +1 -0
  615. package/es/api/PDFPage.d.ts +898 -0
  616. package/es/api/PDFPage.d.ts.map +1 -0
  617. package/es/api/PDFPage.js +1440 -0
  618. package/es/api/PDFPage.js.map +1 -0
  619. package/es/api/PDFPageOptions.d.ts +155 -0
  620. package/es/api/PDFPageOptions.d.ts.map +1 -0
  621. package/es/api/PDFPageOptions.js +16 -0
  622. package/es/api/PDFPageOptions.js.map +1 -0
  623. package/es/api/StandardFonts.d.ts +17 -0
  624. package/es/api/StandardFonts.d.ts.map +1 -0
  625. package/es/api/StandardFonts.js +18 -0
  626. package/es/api/StandardFonts.js.map +1 -0
  627. package/es/api/colors.d.ts +31 -0
  628. package/es/api/colors.d.ts.map +1 -0
  629. package/es/api/colors.js +56 -0
  630. package/es/api/colors.js.map +1 -0
  631. package/es/api/errors.d.ts +43 -0
  632. package/es/api/errors.d.ts.map +1 -0
  633. package/es/api/errors.js +165 -0
  634. package/es/api/errors.js.map +1 -0
  635. package/es/api/form/PDFButton.d.ts +138 -0
  636. package/es/api/form/PDFButton.d.ts.map +1 -0
  637. package/es/api/form/PDFButton.js +218 -0
  638. package/es/api/form/PDFButton.js.map +1 -0
  639. package/es/api/form/PDFCheckBox.d.ts +143 -0
  640. package/es/api/form/PDFCheckBox.d.ts.map +1 -0
  641. package/es/api/form/PDFCheckBox.js +234 -0
  642. package/es/api/form/PDFCheckBox.js.map +1 -0
  643. package/es/api/form/PDFDropdown.d.ts +403 -0
  644. package/es/api/form/PDFDropdown.d.ts.map +1 -0
  645. package/es/api/form/PDFDropdown.js +578 -0
  646. package/es/api/form/PDFDropdown.js.map +1 -0
  647. package/es/api/form/PDFField.d.ts +204 -0
  648. package/es/api/form/PDFField.d.ts.map +1 -0
  649. package/es/api/form/PDFField.js +381 -0
  650. package/es/api/form/PDFField.js.map +1 -0
  651. package/es/api/form/PDFForm.d.ts +412 -0
  652. package/es/api/form/PDFForm.d.ts.map +1 -0
  653. package/es/api/form/PDFForm.js +724 -0
  654. package/es/api/form/PDFForm.js.map +1 -0
  655. package/es/api/form/PDFOptionList.d.ts +336 -0
  656. package/es/api/form/PDFOptionList.d.ts.map +1 -0
  657. package/es/api/form/PDFOptionList.js +497 -0
  658. package/es/api/form/PDFOptionList.js.map +1 -0
  659. package/es/api/form/PDFRadioGroup.d.ts +253 -0
  660. package/es/api/form/PDFRadioGroup.d.ts.map +1 -0
  661. package/es/api/form/PDFRadioGroup.js +413 -0
  662. package/es/api/form/PDFRadioGroup.js.map +1 -0
  663. package/es/api/form/PDFSignature.d.ts +30 -0
  664. package/es/api/form/PDFSignature.d.ts.map +1 -0
  665. package/es/api/form/PDFSignature.js +41 -0
  666. package/es/api/form/PDFSignature.js.map +1 -0
  667. package/es/api/form/PDFTextField.d.ts +538 -0
  668. package/es/api/form/PDFTextField.d.ts.map +1 -0
  669. package/es/api/form/PDFTextField.js +737 -0
  670. package/es/api/form/PDFTextField.js.map +1 -0
  671. package/es/api/form/appearances.d.ts +42 -0
  672. package/es/api/form/appearances.d.ts.map +1 -0
  673. package/es/api/form/appearances.js +418 -0
  674. package/es/api/form/appearances.js.map +1 -0
  675. package/es/api/form/index.d.ts +11 -0
  676. package/es/api/form/index.d.ts.map +1 -0
  677. package/es/api/form/index.js +11 -0
  678. package/es/api/form/index.js.map +1 -0
  679. package/es/api/image/alignment.d.ts +6 -0
  680. package/es/api/image/alignment.d.ts.map +1 -0
  681. package/es/api/image/alignment.js +7 -0
  682. package/es/api/image/alignment.js.map +1 -0
  683. package/es/api/image/index.d.ts +2 -0
  684. package/es/api/image/index.d.ts.map +1 -0
  685. package/es/api/image/index.js +2 -0
  686. package/es/api/image/index.js.map +1 -0
  687. package/es/api/index.d.ts +22 -0
  688. package/es/api/index.d.ts.map +1 -0
  689. package/es/api/index.js +21 -0
  690. package/es/api/index.js.map +1 -0
  691. package/es/api/objects.d.ts +5 -0
  692. package/es/api/objects.d.ts.map +1 -0
  693. package/es/api/objects.js +11 -0
  694. package/es/api/objects.js.map +1 -0
  695. package/es/api/operations.d.ts +212 -0
  696. package/es/api/operations.d.ts.map +1 -0
  697. package/es/api/operations.js +485 -0
  698. package/es/api/operations.js.map +1 -0
  699. package/es/api/operators.d.ts +86 -0
  700. package/es/api/operators.d.ts.map +1 -0
  701. package/es/api/operators.js +228 -0
  702. package/es/api/operators.js.map +1 -0
  703. package/es/api/rotations.d.ts +39 -0
  704. package/es/api/rotations.d.ts.map +1 -0
  705. package/es/api/rotations.js +68 -0
  706. package/es/api/rotations.js.map +1 -0
  707. package/es/api/sizes.d.ts +53 -0
  708. package/es/api/sizes.d.ts.map +1 -0
  709. package/es/api/sizes.js +53 -0
  710. package/es/api/sizes.js.map +1 -0
  711. package/es/api/snapshot/DefaultDocumentSnapshot.d.ts +13 -0
  712. package/es/api/snapshot/DefaultDocumentSnapshot.d.ts.map +1 -0
  713. package/es/api/snapshot/DefaultDocumentSnapshot.js +25 -0
  714. package/es/api/snapshot/DefaultDocumentSnapshot.js.map +1 -0
  715. package/es/api/snapshot/DocumentSnapshot.d.ts +11 -0
  716. package/es/api/snapshot/DocumentSnapshot.d.ts.map +1 -0
  717. package/es/api/snapshot/DocumentSnapshot.js +1 -0
  718. package/es/api/snapshot/DocumentSnapshot.js.map +1 -0
  719. package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +16 -0
  720. package/es/api/snapshot/IncrementalDocumentSnapshot.d.ts.map +1 -0
  721. package/es/api/snapshot/IncrementalDocumentSnapshot.js +41 -0
  722. package/es/api/snapshot/IncrementalDocumentSnapshot.js.map +1 -0
  723. package/es/api/snapshot/index.d.ts +4 -0
  724. package/es/api/snapshot/index.d.ts.map +1 -0
  725. package/es/api/snapshot/index.js +4 -0
  726. package/es/api/snapshot/index.js.map +1 -0
  727. package/es/api/svgPath.d.ts +3 -0
  728. package/es/api/svgPath.d.ts.map +1 -0
  729. package/es/api/svgPath.js +377 -0
  730. package/es/api/svgPath.js.map +1 -0
  731. package/es/api/text/alignment.d.ts +6 -0
  732. package/es/api/text/alignment.d.ts.map +1 -0
  733. package/es/api/text/alignment.js +7 -0
  734. package/es/api/text/alignment.js.map +1 -0
  735. package/es/api/text/index.d.ts +3 -0
  736. package/es/api/text/index.d.ts.map +1 -0
  737. package/es/api/text/index.js +3 -0
  738. package/es/api/text/index.js.map +1 -0
  739. package/es/api/text/layout.d.ts +55 -0
  740. package/es/api/text/layout.d.ts.map +1 -0
  741. package/es/api/text/layout.js +209 -0
  742. package/es/api/text/layout.js.map +1 -0
  743. package/es/core/PDFContext.d.ts +93 -0
  744. package/es/core/PDFContext.d.ts.map +1 -0
  745. package/es/core/PDFContext.js +208 -0
  746. package/es/core/PDFContext.js.map +1 -0
  747. package/es/core/PDFObjectCopier.d.ts +38 -0
  748. package/es/core/PDFObjectCopier.d.ts.map +1 -0
  749. package/es/core/PDFObjectCopier.js +116 -0
  750. package/es/core/PDFObjectCopier.js.map +1 -0
  751. package/es/core/acroform/PDFAcroButton.d.ts +22 -0
  752. package/es/core/acroform/PDFAcroButton.d.ts.map +1 -0
  753. package/es/core/acroform/PDFAcroButton.js +94 -0
  754. package/es/core/acroform/PDFAcroButton.js.map +1 -0
  755. package/es/core/acroform/PDFAcroCheckBox.d.ts +14 -0
  756. package/es/core/acroform/PDFAcroCheckBox.d.ts.map +1 -0
  757. package/es/core/acroform/PDFAcroCheckBox.js +48 -0
  758. package/es/core/acroform/PDFAcroCheckBox.js.map +1 -0
  759. package/es/core/acroform/PDFAcroChoice.d.ts +21 -0
  760. package/es/core/acroform/PDFAcroChoice.d.ts.map +1 -0
  761. package/es/core/acroform/PDFAcroChoice.js +125 -0
  762. package/es/core/acroform/PDFAcroChoice.js.map +1 -0
  763. package/es/core/acroform/PDFAcroComboBox.d.ts +10 -0
  764. package/es/core/acroform/PDFAcroComboBox.d.ts.map +1 -0
  765. package/es/core/acroform/PDFAcroComboBox.js +24 -0
  766. package/es/core/acroform/PDFAcroComboBox.js.map +1 -0
  767. package/es/core/acroform/PDFAcroField.d.ts +37 -0
  768. package/es/core/acroform/PDFAcroField.d.ts.map +1 -0
  769. package/es/core/acroform/PDFAcroField.js +146 -0
  770. package/es/core/acroform/PDFAcroField.js.map +1 -0
  771. package/es/core/acroform/PDFAcroForm.d.ts +21 -0
  772. package/es/core/acroform/PDFAcroForm.d.ts.map +1 -0
  773. package/es/core/acroform/PDFAcroForm.js +75 -0
  774. package/es/core/acroform/PDFAcroForm.js.map +1 -0
  775. package/es/core/acroform/PDFAcroListBox.d.ts +10 -0
  776. package/es/core/acroform/PDFAcroListBox.d.ts.map +1 -0
  777. package/es/core/acroform/PDFAcroListBox.js +22 -0
  778. package/es/core/acroform/PDFAcroListBox.js.map +1 -0
  779. package/es/core/acroform/PDFAcroNonTerminal.d.ts +14 -0
  780. package/es/core/acroform/PDFAcroNonTerminal.d.ts.map +1 -0
  781. package/es/core/acroform/PDFAcroNonTerminal.js +32 -0
  782. package/es/core/acroform/PDFAcroNonTerminal.js.map +1 -0
  783. package/es/core/acroform/PDFAcroPushButton.d.ts +10 -0
  784. package/es/core/acroform/PDFAcroPushButton.d.ts.map +1 -0
  785. package/es/core/acroform/PDFAcroPushButton.js +24 -0
  786. package/es/core/acroform/PDFAcroPushButton.js.map +1 -0
  787. package/es/core/acroform/PDFAcroRadioButton.d.ts +14 -0
  788. package/es/core/acroform/PDFAcroRadioButton.d.ts.map +1 -0
  789. package/es/core/acroform/PDFAcroRadioButton.js +55 -0
  790. package/es/core/acroform/PDFAcroRadioButton.js.map +1 -0
  791. package/es/core/acroform/PDFAcroSignature.d.ts +8 -0
  792. package/es/core/acroform/PDFAcroSignature.d.ts.map +1 -0
  793. package/es/core/acroform/PDFAcroSignature.js +14 -0
  794. package/es/core/acroform/PDFAcroSignature.js.map +1 -0
  795. package/es/core/acroform/PDFAcroTerminal.d.ts +17 -0
  796. package/es/core/acroform/PDFAcroTerminal.d.ts.map +1 -0
  797. package/es/core/acroform/PDFAcroTerminal.js +68 -0
  798. package/es/core/acroform/PDFAcroTerminal.js.map +1 -0
  799. package/es/core/acroform/PDFAcroText.d.ts +23 -0
  800. package/es/core/acroform/PDFAcroText.d.ts.map +1 -0
  801. package/es/core/acroform/PDFAcroText.js +71 -0
  802. package/es/core/acroform/PDFAcroText.js.map +1 -0
  803. package/es/core/acroform/flags.d.ts +142 -0
  804. package/es/core/acroform/flags.d.ts.map +1 -0
  805. package/es/core/acroform/flags.js +147 -0
  806. package/es/core/acroform/flags.js.map +1 -0
  807. package/es/core/acroform/index.d.ts +16 -0
  808. package/es/core/acroform/index.d.ts.map +1 -0
  809. package/es/core/acroform/index.js +16 -0
  810. package/es/core/acroform/index.js.map +1 -0
  811. package/es/core/acroform/utils.d.ts +7 -0
  812. package/es/core/acroform/utils.d.ts.map +1 -0
  813. package/es/core/acroform/utils.js +123 -0
  814. package/es/core/acroform/utils.js.map +1 -0
  815. package/es/core/annotation/AppearanceCharacteristics.d.ts +34 -0
  816. package/es/core/annotation/AppearanceCharacteristics.d.ts.map +1 -0
  817. package/es/core/annotation/AppearanceCharacteristics.js +120 -0
  818. package/es/core/annotation/AppearanceCharacteristics.js.map +1 -0
  819. package/es/core/annotation/BorderStyle.d.ts +12 -0
  820. package/es/core/annotation/BorderStyle.d.ts.map +1 -0
  821. package/es/core/annotation/BorderStyle.js +26 -0
  822. package/es/core/annotation/BorderStyle.js.map +1 -0
  823. package/es/core/annotation/PDFAnnotation.d.ts +52 -0
  824. package/es/core/annotation/PDFAnnotation.d.ts.map +1 -0
  825. package/es/core/annotation/PDFAnnotation.js +120 -0
  826. package/es/core/annotation/PDFAnnotation.js.map +1 -0
  827. package/es/core/annotation/PDFWidgetAnnotation.d.ts +27 -0
  828. package/es/core/annotation/PDFWidgetAnnotation.d.ts.map +1 -0
  829. package/es/core/annotation/PDFWidgetAnnotation.js +108 -0
  830. package/es/core/annotation/PDFWidgetAnnotation.js.map +1 -0
  831. package/es/core/annotation/flags.d.ts +80 -0
  832. package/es/core/annotation/flags.d.ts.map +1 -0
  833. package/es/core/annotation/flags.js +82 -0
  834. package/es/core/annotation/flags.js.map +1 -0
  835. package/es/core/annotation/index.d.ts +5 -0
  836. package/es/core/annotation/index.d.ts.map +1 -0
  837. package/es/core/annotation/index.js +5 -0
  838. package/es/core/annotation/index.js.map +1 -0
  839. package/es/core/document/PDFCrossRefSection.d.ts +28 -0
  840. package/es/core/document/PDFCrossRefSection.d.ts.map +1 -0
  841. package/es/core/document/PDFCrossRefSection.js +121 -0
  842. package/es/core/document/PDFCrossRefSection.js.map +1 -0
  843. package/es/core/document/PDFHeader.d.ts +11 -0
  844. package/es/core/document/PDFHeader.d.ts.map +1 -0
  845. package/es/core/document/PDFHeader.js +39 -0
  846. package/es/core/document/PDFHeader.js.map +1 -0
  847. package/es/core/document/PDFTrailer.d.ts +10 -0
  848. package/es/core/document/PDFTrailer.d.ts.map +1 -0
  849. package/es/core/document/PDFTrailer.js +40 -0
  850. package/es/core/document/PDFTrailer.js.map +1 -0
  851. package/es/core/document/PDFTrailerDict.d.ts +11 -0
  852. package/es/core/document/PDFTrailerDict.d.ts.map +1 -0
  853. package/es/core/document/PDFTrailerDict.js +29 -0
  854. package/es/core/document/PDFTrailerDict.js.map +1 -0
  855. package/es/core/embedders/CMap.d.ts +4 -0
  856. package/es/core/embedders/CMap.d.ts.map +1 -0
  857. package/es/core/embedders/CMap.js +40 -0
  858. package/es/core/embedders/CMap.js.map +1 -0
  859. package/es/core/embedders/CustomFontEmbedder.d.ts +45 -0
  860. package/es/core/embedders/CustomFontEmbedder.d.ts.map +1 -0
  861. package/es/core/embedders/CustomFontEmbedder.js +238 -0
  862. package/es/core/embedders/CustomFontEmbedder.js.map +1 -0
  863. package/es/core/embedders/CustomFontSubsetEmbedder.d.ts +21 -0
  864. package/es/core/embedders/CustomFontSubsetEmbedder.d.ts.map +1 -0
  865. package/es/core/embedders/CustomFontSubsetEmbedder.js +66 -0
  866. package/es/core/embedders/CustomFontSubsetEmbedder.js.map +1 -0
  867. package/es/core/embedders/FileEmbedder.d.ts +34 -0
  868. package/es/core/embedders/FileEmbedder.d.ts.map +1 -0
  869. package/es/core/embedders/FileEmbedder.js +72 -0
  870. package/es/core/embedders/FileEmbedder.js.map +1 -0
  871. package/es/core/embedders/FontFlags.d.ts +14 -0
  872. package/es/core/embedders/FontFlags.d.ts.map +1 -0
  873. package/es/core/embedders/FontFlags.js +37 -0
  874. package/es/core/embedders/FontFlags.js.map +1 -0
  875. package/es/core/embedders/JavaScriptEmbedder.d.ts +11 -0
  876. package/es/core/embedders/JavaScriptEmbedder.d.ts.map +1 -0
  877. package/es/core/embedders/JavaScriptEmbedder.js +34 -0
  878. package/es/core/embedders/JavaScriptEmbedder.js.map +1 -0
  879. package/es/core/embedders/JpegEmbedder.d.ts +24 -0
  880. package/es/core/embedders/JpegEmbedder.d.ts.map +1 -0
  881. package/es/core/embedders/JpegEmbedder.js +105 -0
  882. package/es/core/embedders/JpegEmbedder.js.map +1 -0
  883. package/es/core/embedders/PDFPageEmbedder.d.ts +38 -0
  884. package/es/core/embedders/PDFPageEmbedder.d.ts.map +1 -0
  885. package/es/core/embedders/PDFPageEmbedder.js +89 -0
  886. package/es/core/embedders/PDFPageEmbedder.js.map +1 -0
  887. package/es/core/embedders/PngEmbedder.d.ts +20 -0
  888. package/es/core/embedders/PngEmbedder.d.ts.map +1 -0
  889. package/es/core/embedders/PngEmbedder.js +67 -0
  890. package/es/core/embedders/PngEmbedder.js.map +1 -0
  891. package/es/core/embedders/StandardFontEmbedder.d.ts +37 -0
  892. package/es/core/embedders/StandardFontEmbedder.d.ts.map +1 -0
  893. package/es/core/embedders/StandardFontEmbedder.js +95 -0
  894. package/es/core/embedders/StandardFontEmbedder.js.map +1 -0
  895. package/es/core/errors.d.ts +92 -0
  896. package/es/core/errors.d.ts.map +1 -0
  897. package/es/core/errors.js +320 -0
  898. package/es/core/errors.js.map +1 -0
  899. package/es/core/index.d.ts +48 -0
  900. package/es/core/index.d.ts.map +1 -0
  901. package/es/core/index.js +48 -0
  902. package/es/core/index.js.map +1 -0
  903. package/es/core/interactive/ViewerPreferences.d.ts +348 -0
  904. package/es/core/interactive/ViewerPreferences.d.ts.map +1 -0
  905. package/es/core/interactive/ViewerPreferences.js +507 -0
  906. package/es/core/interactive/ViewerPreferences.js.map +1 -0
  907. package/es/core/objects/PDFArray.d.ts +64 -0
  908. package/es/core/objects/PDFArray.d.ts.map +1 -0
  909. package/es/core/objects/PDFArray.js +115 -0
  910. package/es/core/objects/PDFArray.js.map +1 -0
  911. package/es/core/objects/PDFBool.d.ts +14 -0
  912. package/es/core/objects/PDFBool.d.ts.map +1 -0
  913. package/es/core/objects/PDFBool.js +50 -0
  914. package/es/core/objects/PDFBool.js.map +1 -0
  915. package/es/core/objects/PDFDict.d.ts +63 -0
  916. package/es/core/objects/PDFDict.d.ts.map +1 -0
  917. package/es/core/objects/PDFDict.js +141 -0
  918. package/es/core/objects/PDFDict.js.map +1 -0
  919. package/es/core/objects/PDFHexString.d.ts +17 -0
  920. package/es/core/objects/PDFHexString.d.ts.map +1 -0
  921. package/es/core/objects/PDFHexString.js +72 -0
  922. package/es/core/objects/PDFHexString.js.map +1 -0
  923. package/es/core/objects/PDFInvalidObject.d.ts +12 -0
  924. package/es/core/objects/PDFInvalidObject.d.ts.map +1 -0
  925. package/es/core/objects/PDFInvalidObject.js +30 -0
  926. package/es/core/objects/PDFInvalidObject.js.map +1 -0
  927. package/es/core/objects/PDFName.d.ts +42 -0
  928. package/es/core/objects/PDFName.d.ts.map +1 -0
  929. package/es/core/objects/PDFName.js +136 -0
  930. package/es/core/objects/PDFName.js.map +1 -0
  931. package/es/core/objects/PDFNull.d.ts +11 -0
  932. package/es/core/objects/PDFNull.d.ts.map +1 -0
  933. package/es/core/objects/PDFNull.js +31 -0
  934. package/es/core/objects/PDFNull.js.map +1 -0
  935. package/es/core/objects/PDFNumber.d.ts +16 -0
  936. package/es/core/objects/PDFNumber.d.ts.map +1 -0
  937. package/es/core/objects/PDFNumber.js +36 -0
  938. package/es/core/objects/PDFNumber.js.map +1 -0
  939. package/es/core/objects/PDFObject.d.ts +10 -0
  940. package/es/core/objects/PDFObject.d.ts.map +1 -0
  941. package/es/core/objects/PDFObject.js +23 -0
  942. package/es/core/objects/PDFObject.js.map +1 -0
  943. package/es/core/objects/PDFRawStream.d.ts +15 -0
  944. package/es/core/objects/PDFRawStream.d.ts.map +1 -0
  945. package/es/core/objects/PDFRawStream.js +32 -0
  946. package/es/core/objects/PDFRawStream.js.map +1 -0
  947. package/es/core/objects/PDFRef.d.ts +14 -0
  948. package/es/core/objects/PDFRef.d.ts.map +1 -0
  949. package/es/core/objects/PDFRef.js +45 -0
  950. package/es/core/objects/PDFRef.js.map +1 -0
  951. package/es/core/objects/PDFStream.d.ts +17 -0
  952. package/es/core/objects/PDFStream.d.ts.map +1 -0
  953. package/es/core/objects/PDFStream.js +73 -0
  954. package/es/core/objects/PDFStream.js.map +1 -0
  955. package/es/core/objects/PDFString.d.ts +17 -0
  956. package/es/core/objects/PDFString.d.ts.map +1 -0
  957. package/es/core/objects/PDFString.js +114 -0
  958. package/es/core/objects/PDFString.js.map +1 -0
  959. package/es/core/operators/PDFOperator.d.ts +20 -0
  960. package/es/core/operators/PDFOperator.d.ts.map +1 -0
  961. package/es/core/operators/PDFOperator.js +55 -0
  962. package/es/core/operators/PDFOperator.js.map +1 -0
  963. package/es/core/operators/PDFOperatorNames.d.ts +77 -0
  964. package/es/core/operators/PDFOperatorNames.d.ts.map +1 -0
  965. package/es/core/operators/PDFOperatorNames.js +86 -0
  966. package/es/core/operators/PDFOperatorNames.js.map +1 -0
  967. package/es/core/parser/BaseParser.d.ts +15 -0
  968. package/es/core/parser/BaseParser.d.ts.map +1 -0
  969. package/es/core/parser/BaseParser.js +107 -0
  970. package/es/core/parser/BaseParser.js.map +1 -0
  971. package/es/core/parser/ByteStream.d.ts +27 -0
  972. package/es/core/parser/ByteStream.d.ts.map +1 -0
  973. package/es/core/parser/ByteStream.js +61 -0
  974. package/es/core/parser/ByteStream.js.map +1 -0
  975. package/es/core/parser/PDFObjectParser.d.ts +30 -0
  976. package/es/core/parser/PDFObjectParser.d.ts.map +1 -0
  977. package/es/core/parser/PDFObjectParser.js +231 -0
  978. package/es/core/parser/PDFObjectParser.js.map +1 -0
  979. package/es/core/parser/PDFObjectStreamParser.d.ts +14 -0
  980. package/es/core/parser/PDFObjectStreamParser.d.ts.map +1 -0
  981. package/es/core/parser/PDFObjectStreamParser.js +68 -0
  982. package/es/core/parser/PDFObjectStreamParser.js.map +1 -0
  983. package/es/core/parser/PDFParser.d.ts +46 -0
  984. package/es/core/parser/PDFParser.d.ts.map +1 -0
  985. package/es/core/parser/PDFParser.js +360 -0
  986. package/es/core/parser/PDFParser.js.map +1 -0
  987. package/es/core/parser/PDFXRefStreamParser.d.ts +22 -0
  988. package/es/core/parser/PDFXRefStreamParser.d.ts.map +1 -0
  989. package/es/core/parser/PDFXRefStreamParser.js +90 -0
  990. package/es/core/parser/PDFXRefStreamParser.js.map +1 -0
  991. package/es/core/streams/Ascii85Stream.d.ts +10 -0
  992. package/es/core/streams/Ascii85Stream.d.ts.map +1 -0
  993. package/es/core/streams/Ascii85Stream.js +85 -0
  994. package/es/core/streams/Ascii85Stream.js.map +1 -0
  995. package/es/core/streams/AsciiHexStream.d.ts +10 -0
  996. package/es/core/streams/AsciiHexStream.d.ts.map +1 -0
  997. package/es/core/streams/AsciiHexStream.js +73 -0
  998. package/es/core/streams/AsciiHexStream.js.map +1 -0
  999. package/es/core/streams/DecodeStream.d.ts +27 -0
  1000. package/es/core/streams/DecodeStream.d.ts.map +1 -0
  1001. package/es/core/streams/DecodeStream.js +146 -0
  1002. package/es/core/streams/DecodeStream.js.map +1 -0
  1003. package/es/core/streams/FlateStream.d.ts +14 -0
  1004. package/es/core/streams/FlateStream.d.ts.map +1 -0
  1005. package/es/core/streams/FlateStream.js +369 -0
  1006. package/es/core/streams/FlateStream.js.map +1 -0
  1007. package/es/core/streams/LZWStream.d.ts +13 -0
  1008. package/es/core/streams/LZWStream.d.ts.map +1 -0
  1009. package/es/core/streams/LZWStream.js +135 -0
  1010. package/es/core/streams/LZWStream.js.map +1 -0
  1011. package/es/core/streams/RunLengthStream.d.ts +9 -0
  1012. package/es/core/streams/RunLengthStream.d.ts.map +1 -0
  1013. package/es/core/streams/RunLengthStream.js +53 -0
  1014. package/es/core/streams/RunLengthStream.js.map +1 -0
  1015. package/es/core/streams/Stream.d.ts +35 -0
  1016. package/es/core/streams/Stream.d.ts.map +1 -0
  1017. package/es/core/streams/Stream.js +104 -0
  1018. package/es/core/streams/Stream.js.map +1 -0
  1019. package/es/core/streams/decode.d.ts +4 -0
  1020. package/es/core/streams/decode.d.ts.map +1 -0
  1021. package/es/core/streams/decode.js +55 -0
  1022. package/es/core/streams/decode.js.map +1 -0
  1023. package/es/core/structures/PDFCatalog.d.ts +28 -0
  1024. package/es/core/structures/PDFCatalog.d.ts.map +1 -0
  1025. package/es/core/structures/PDFCatalog.js +77 -0
  1026. package/es/core/structures/PDFCatalog.js.map +1 -0
  1027. package/es/core/structures/PDFContentStream.d.ts +16 -0
  1028. package/es/core/structures/PDFContentStream.d.ts.map +1 -0
  1029. package/es/core/structures/PDFContentStream.js +58 -0
  1030. package/es/core/structures/PDFContentStream.js.map +1 -0
  1031. package/es/core/structures/PDFCrossRefStream.d.ts +54 -0
  1032. package/es/core/structures/PDFCrossRefStream.d.ts.map +1 -0
  1033. package/es/core/structures/PDFCrossRefStream.js +184 -0
  1034. package/es/core/structures/PDFCrossRefStream.js.map +1 -0
  1035. package/es/core/structures/PDFFlateStream.d.ts +14 -0
  1036. package/es/core/structures/PDFFlateStream.d.ts.map +1 -0
  1037. package/es/core/structures/PDFFlateStream.js +33 -0
  1038. package/es/core/structures/PDFFlateStream.js.map +1 -0
  1039. package/es/core/structures/PDFObjectStream.d.ts +21 -0
  1040. package/es/core/structures/PDFObjectStream.d.ts.map +1 -0
  1041. package/es/core/structures/PDFObjectStream.js +75 -0
  1042. package/es/core/structures/PDFObjectStream.js.map +1 -0
  1043. package/es/core/structures/PDFPageLeaf.d.ts +55 -0
  1044. package/es/core/structures/PDFPageLeaf.d.ts.map +1 -0
  1045. package/es/core/structures/PDFPageLeaf.js +206 -0
  1046. package/es/core/structures/PDFPageLeaf.js.map +1 -0
  1047. package/es/core/structures/PDFPageTree.d.ts +42 -0
  1048. package/es/core/structures/PDFPageTree.d.ts.map +1 -0
  1049. package/es/core/structures/PDFPageTree.js +175 -0
  1050. package/es/core/structures/PDFPageTree.js.map +1 -0
  1051. package/es/core/syntax/CharCodes.d.ts +62 -0
  1052. package/es/core/syntax/CharCodes.d.ts.map +1 -0
  1053. package/es/core/syntax/CharCodes.js +63 -0
  1054. package/es/core/syntax/CharCodes.js.map +1 -0
  1055. package/es/core/syntax/Delimiters.d.ts +2 -0
  1056. package/es/core/syntax/Delimiters.d.ts.map +1 -0
  1057. package/es/core/syntax/Delimiters.js +13 -0
  1058. package/es/core/syntax/Delimiters.js.map +1 -0
  1059. package/es/core/syntax/Irregular.d.ts +2 -0
  1060. package/es/core/syntax/Irregular.d.ts.map +1 -0
  1061. package/es/core/syntax/Irregular.js +9 -0
  1062. package/es/core/syntax/Irregular.js.map +1 -0
  1063. package/es/core/syntax/Keywords.d.ts +23 -0
  1064. package/es/core/syntax/Keywords.d.ts.map +1 -0
  1065. package/es/core/syntax/Keywords.js +81 -0
  1066. package/es/core/syntax/Keywords.js.map +1 -0
  1067. package/es/core/syntax/Numeric.d.ts +4 -0
  1068. package/es/core/syntax/Numeric.d.ts.map +1 -0
  1069. package/es/core/syntax/Numeric.js +21 -0
  1070. package/es/core/syntax/Numeric.js.map +1 -0
  1071. package/es/core/syntax/Whitespace.d.ts +2 -0
  1072. package/es/core/syntax/Whitespace.d.ts.map +1 -0
  1073. package/es/core/syntax/Whitespace.js +9 -0
  1074. package/es/core/syntax/Whitespace.js.map +1 -0
  1075. package/es/core/writers/PDFStreamWriter.d.ts +22 -0
  1076. package/es/core/writers/PDFStreamWriter.d.ts.map +1 -0
  1077. package/es/core/writers/PDFStreamWriter.js +131 -0
  1078. package/es/core/writers/PDFStreamWriter.js.map +1 -0
  1079. package/es/core/writers/PDFWriter.d.ts +33 -0
  1080. package/es/core/writers/PDFWriter.d.ts.map +1 -0
  1081. package/es/core/writers/PDFWriter.js +162 -0
  1082. package/es/core/writers/PDFWriter.js.map +1 -0
  1083. package/es/index.d.ts +5 -0
  1084. package/es/index.d.ts.map +1 -0
  1085. package/es/index.js +5 -0
  1086. package/es/index.js.map +1 -0
  1087. package/es/types/fontkit.d.ts +582 -0
  1088. package/es/types/fontkit.d.ts.map +1 -0
  1089. package/es/types/fontkit.js +1 -0
  1090. package/es/types/fontkit.js.map +1 -0
  1091. package/es/types/index.d.ts +2 -0
  1092. package/es/types/index.d.ts.map +1 -0
  1093. package/es/types/index.js +1 -0
  1094. package/es/types/index.js.map +1 -0
  1095. package/es/types/matrix.d.ts +22 -0
  1096. package/es/types/matrix.d.ts.map +1 -0
  1097. package/es/types/matrix.js +2 -0
  1098. package/es/types/matrix.js.map +1 -0
  1099. package/es/utils/Cache.d.ts +11 -0
  1100. package/es/utils/Cache.d.ts.map +1 -0
  1101. package/es/utils/Cache.js +21 -0
  1102. package/es/utils/Cache.js.map +1 -0
  1103. package/es/utils/arrays.d.ts +16 -0
  1104. package/es/utils/arrays.d.ts.map +1 -0
  1105. package/es/utils/arrays.js +129 -0
  1106. package/es/utils/arrays.js.map +1 -0
  1107. package/es/utils/async.d.ts +6 -0
  1108. package/es/utils/async.d.ts.map +1 -0
  1109. package/es/utils/async.js +10 -0
  1110. package/es/utils/async.js.map +1 -0
  1111. package/es/utils/base64.d.ts +11 -0
  1112. package/es/utils/base64.d.ts.map +1 -0
  1113. package/es/utils/base64.js +84 -0
  1114. package/es/utils/base64.js.map +1 -0
  1115. package/es/utils/errors.d.ts +2 -0
  1116. package/es/utils/errors.d.ts.map +1 -0
  1117. package/es/utils/errors.js +4 -0
  1118. package/es/utils/errors.js.map +1 -0
  1119. package/es/utils/index.d.ts +12 -0
  1120. package/es/utils/index.d.ts.map +1 -0
  1121. package/es/utils/index.js +12 -0
  1122. package/es/utils/index.js.map +1 -0
  1123. package/es/utils/numbers.d.ts +24 -0
  1124. package/es/utils/numbers.d.ts.map +1 -0
  1125. package/es/utils/numbers.js +54 -0
  1126. package/es/utils/numbers.js.map +1 -0
  1127. package/es/utils/objects.d.ts +16 -0
  1128. package/es/utils/objects.d.ts.map +1 -0
  1129. package/es/utils/objects.js +8 -0
  1130. package/es/utils/objects.js.map +1 -0
  1131. package/es/utils/pdfDocEncoding.d.ts +8 -0
  1132. package/es/utils/pdfDocEncoding.d.ts.map +1 -0
  1133. package/es/utils/pdfDocEncoding.js +66 -0
  1134. package/es/utils/pdfDocEncoding.js.map +1 -0
  1135. package/es/utils/png.d.ts +18 -0
  1136. package/es/utils/png.d.ts.map +1 -0
  1137. package/es/utils/png.js +59 -0
  1138. package/es/utils/png.js.map +1 -0
  1139. package/es/utils/rng.d.ts +14 -0
  1140. package/es/utils/rng.d.ts.map +1 -0
  1141. package/es/utils/rng.js +20 -0
  1142. package/es/utils/rng.js.map +1 -0
  1143. package/es/utils/strings.d.ts +25 -0
  1144. package/es/utils/strings.d.ts.map +1 -0
  1145. package/es/utils/strings.js +138 -0
  1146. package/es/utils/strings.js.map +1 -0
  1147. package/es/utils/unicode.d.ts +187 -0
  1148. package/es/utils/unicode.d.ts.map +1 -0
  1149. package/es/utils/unicode.js +367 -0
  1150. package/es/utils/unicode.js.map +1 -0
  1151. package/es/utils/validators.d.ts +27 -0
  1152. package/es/utils/validators.d.ts.map +1 -0
  1153. package/es/utils/validators.js +180 -0
  1154. package/es/utils/validators.js.map +1 -0
  1155. package/package.json +144 -0
  1156. package/src/api/Embeddable.ts +7 -0
  1157. package/src/api/PDFDocument.ts +1495 -0
  1158. package/src/api/PDFDocumentOptions.ts +50 -0
  1159. package/src/api/PDFEmbeddedFile.ts +90 -0
  1160. package/src/api/PDFEmbeddedPage.ts +104 -0
  1161. package/src/api/PDFFont.ts +154 -0
  1162. package/src/api/PDFImage.ts +143 -0
  1163. package/src/api/PDFJavaScript.ts +82 -0
  1164. package/src/api/PDFPage.ts +1621 -0
  1165. package/src/api/PDFPageOptions.ts +158 -0
  1166. package/src/api/StandardFonts.ts +16 -0
  1167. package/src/api/colors.ts +104 -0
  1168. package/src/api/errors.ts +111 -0
  1169. package/src/api/form/PDFButton.ts +267 -0
  1170. package/src/api/form/PDFCheckBox.ts +262 -0
  1171. package/src/api/form/PDFDropdown.ts +652 -0
  1172. package/src/api/form/PDFField.ts +521 -0
  1173. package/src/api/form/PDFForm.ts +852 -0
  1174. package/src/api/form/PDFOptionList.ts +571 -0
  1175. package/src/api/form/PDFRadioGroup.ts +471 -0
  1176. package/src/api/form/PDFSignature.ts +53 -0
  1177. package/src/api/form/PDFTextField.ts +826 -0
  1178. package/src/api/form/appearances.ts +665 -0
  1179. package/src/api/form/index.ts +10 -0
  1180. package/src/api/image/alignment.ts +5 -0
  1181. package/src/api/image/index.ts +1 -0
  1182. package/src/api/index.ts +21 -0
  1183. package/src/api/objects.ts +10 -0
  1184. package/src/api/operations.ts +800 -0
  1185. package/src/api/operators.ts +360 -0
  1186. package/src/api/rotations.ts +87 -0
  1187. package/src/api/sizes.ts +52 -0
  1188. package/src/api/snapshot/DefaultDocumentSnapshot.ts +29 -0
  1189. package/src/api/snapshot/DocumentSnapshot.ts +14 -0
  1190. package/src/api/snapshot/IncrementalDocumentSnapshot.ts +59 -0
  1191. package/src/api/snapshot/index.ts +3 -0
  1192. package/src/api/svgPath.ts +489 -0
  1193. package/src/api/text/alignment.ts +5 -0
  1194. package/src/api/text/index.ts +2 -0
  1195. package/src/api/text/layout.ts +343 -0
  1196. package/src/core/PDFContext.ts +316 -0
  1197. package/src/core/PDFObjectCopier.ts +143 -0
  1198. package/src/core/acroform/PDFAcroButton.ts +114 -0
  1199. package/src/core/acroform/PDFAcroCheckBox.ts +49 -0
  1200. package/src/core/acroform/PDFAcroChoice.ts +153 -0
  1201. package/src/core/acroform/PDFAcroComboBox.ts +22 -0
  1202. package/src/core/acroform/PDFAcroField.ts +167 -0
  1203. package/src/core/acroform/PDFAcroForm.ts +102 -0
  1204. package/src/core/acroform/PDFAcroListBox.ts +20 -0
  1205. package/src/core/acroform/PDFAcroNonTerminal.ts +34 -0
  1206. package/src/core/acroform/PDFAcroPushButton.ts +22 -0
  1207. package/src/core/acroform/PDFAcroRadioButton.ts +58 -0
  1208. package/src/core/acroform/PDFAcroSignature.ts +10 -0
  1209. package/src/core/acroform/PDFAcroTerminal.ts +71 -0
  1210. package/src/core/acroform/PDFAcroText.ts +76 -0
  1211. package/src/core/acroform/flags.ts +162 -0
  1212. package/src/core/acroform/index.ts +15 -0
  1213. package/src/core/acroform/utils.ts +135 -0
  1214. package/src/core/annotation/AppearanceCharacteristics.ts +133 -0
  1215. package/src/core/annotation/BorderStyle.ts +31 -0
  1216. package/src/core/annotation/PDFAnnotation.ts +148 -0
  1217. package/src/core/annotation/PDFWidgetAnnotation.ts +112 -0
  1218. package/src/core/annotation/flags.ts +90 -0
  1219. package/src/core/annotation/index.ts +4 -0
  1220. package/src/core/document/PDFCrossRefSection.ts +173 -0
  1221. package/src/core/document/PDFHeader.ts +49 -0
  1222. package/src/core/document/PDFTrailer.ts +49 -0
  1223. package/src/core/document/PDFTrailerDict.ts +39 -0
  1224. package/src/core/embedders/CMap.ts +70 -0
  1225. package/src/core/embedders/CustomFontEmbedder.ts +249 -0
  1226. package/src/core/embedders/CustomFontSubsetEmbedder.ts +84 -0
  1227. package/src/core/embedders/FileEmbedder.ts +95 -0
  1228. package/src/core/embedders/FontFlags.ts +45 -0
  1229. package/src/core/embedders/JavaScriptEmbedder.ts +34 -0
  1230. package/src/core/embedders/JpegEmbedder.ts +127 -0
  1231. package/src/core/embedders/PDFPageEmbedder.ts +141 -0
  1232. package/src/core/embedders/PngEmbedder.ts +69 -0
  1233. package/src/core/embedders/StandardFontEmbedder.ts +130 -0
  1234. package/src/core/errors.ts +221 -0
  1235. package/src/core/index.ts +69 -0
  1236. package/src/core/interactive/ViewerPreferences.ts +579 -0
  1237. package/src/core/objects/PDFArray.ts +185 -0
  1238. package/src/core/objects/PDFBool.ts +53 -0
  1239. package/src/core/objects/PDFDict.ts +232 -0
  1240. package/src/core/objects/PDFHexString.ts +94 -0
  1241. package/src/core/objects/PDFInvalidObject.ts +34 -0
  1242. package/src/core/objects/PDFName.ts +159 -0
  1243. package/src/core/objects/PDFNull.ts +30 -0
  1244. package/src/core/objects/PDFNumber.ts +44 -0
  1245. package/src/core/objects/PDFObject.ts +28 -0
  1246. package/src/core/objects/PDFRawStream.ts +38 -0
  1247. package/src/core/objects/PDFRef.ts +55 -0
  1248. package/src/core/objects/PDFStream.ts +93 -0
  1249. package/src/core/objects/PDFString.ts +118 -0
  1250. package/src/core/operators/PDFOperator.ts +79 -0
  1251. package/src/core/operators/PDFOperatorNames.ts +92 -0
  1252. package/src/core/parser/BaseParser.ts +119 -0
  1253. package/src/core/parser/ByteStream.ts +76 -0
  1254. package/src/core/parser/PDFObjectParser.ts +274 -0
  1255. package/src/core/parser/PDFObjectStreamParser.ts +67 -0
  1256. package/src/core/parser/PDFParser.ts +377 -0
  1257. package/src/core/parser/PDFXRefStreamParser.ts +131 -0
  1258. package/src/core/streams/Ascii85Stream.ts +98 -0
  1259. package/src/core/streams/AsciiHexStream.ts +77 -0
  1260. package/src/core/streams/DecodeStream.ts +170 -0
  1261. package/src/core/streams/FlateStream.ts +407 -0
  1262. package/src/core/streams/LZWStream.ts +164 -0
  1263. package/src/core/streams/RunLengthStream.ts +55 -0
  1264. package/src/core/streams/Stream.ts +132 -0
  1265. package/src/core/streams/decode.ts +73 -0
  1266. package/src/core/structures/PDFCatalog.ts +85 -0
  1267. package/src/core/structures/PDFContentStream.ts +58 -0
  1268. package/src/core/structures/PDFCrossRefStream.ts +246 -0
  1269. package/src/core/structures/PDFFlateStream.ts +43 -0
  1270. package/src/core/structures/PDFObjectStream.ts +101 -0
  1271. package/src/core/structures/PDFPageLeaf.ts +265 -0
  1272. package/src/core/structures/PDFPageTree.ts +195 -0
  1273. package/src/core/syntax/CharCodes.ts +62 -0
  1274. package/src/core/syntax/Delimiters.ts +14 -0
  1275. package/src/core/syntax/Irregular.ts +10 -0
  1276. package/src/core/syntax/Keywords.ts +83 -0
  1277. package/src/core/syntax/Numeric.ts +26 -0
  1278. package/src/core/syntax/Whitespace.ts +10 -0
  1279. package/src/core/writers/PDFStreamWriter.ts +158 -0
  1280. package/src/core/writers/PDFWriter.ts +194 -0
  1281. package/src/index.ts +4 -0
  1282. package/src/types/fontkit.ts +640 -0
  1283. package/src/types/index.ts +1 -0
  1284. package/src/types/matrix.ts +29 -0
  1285. package/src/utils/Cache.ts +26 -0
  1286. package/src/utils/arrays.ts +146 -0
  1287. package/src/utils/async.ts +8 -0
  1288. package/src/utils/base64.ts +99 -0
  1289. package/src/utils/errors.ts +3 -0
  1290. package/src/utils/index.ts +11 -0
  1291. package/src/utils/numbers.ts +55 -0
  1292. package/src/utils/objects.ts +13 -0
  1293. package/src/utils/pdfDocEncoding.ts +69 -0
  1294. package/src/utils/png.ts +70 -0
  1295. package/src/utils/rng.ts +21 -0
  1296. package/src/utils/strings.ts +182 -0
  1297. package/src/utils/unicode.ts +386 -0
  1298. package/src/utils/validators.ts +228 -0
  1299. package/ts3.4/apps/deno/dummy.d.ts +20 -0
  1300. package/ts3.4/cjs/api/Embeddable.d.ts +8 -0
  1301. package/ts3.4/cjs/api/PDFDocument.d.ts +800 -0
  1302. package/ts3.4/cjs/api/PDFDocumentOptions.d.ts +43 -0
  1303. package/ts3.4/cjs/api/PDFEmbeddedFile.d.ts +39 -0
  1304. package/ts3.4/cjs/api/PDFEmbeddedPage.d.ts +74 -0
  1305. package/ts3.4/cjs/api/PDFFont.d.ts +95 -0
  1306. package/ts3.4/cjs/api/PDFImage.d.ts +96 -0
  1307. package/ts3.4/cjs/api/PDFJavaScript.d.ts +39 -0
  1308. package/ts3.4/cjs/api/PDFPage.d.ts +898 -0
  1309. package/ts3.4/cjs/api/PDFPageOptions.d.ts +155 -0
  1310. package/ts3.4/cjs/api/StandardFonts.d.ts +17 -0
  1311. package/ts3.4/cjs/api/colors.d.ts +31 -0
  1312. package/ts3.4/cjs/api/errors.d.ts +43 -0
  1313. package/ts3.4/cjs/api/form/PDFButton.d.ts +138 -0
  1314. package/ts3.4/cjs/api/form/PDFCheckBox.d.ts +143 -0
  1315. package/ts3.4/cjs/api/form/PDFDropdown.d.ts +403 -0
  1316. package/ts3.4/cjs/api/form/PDFField.d.ts +204 -0
  1317. package/ts3.4/cjs/api/form/PDFForm.d.ts +412 -0
  1318. package/ts3.4/cjs/api/form/PDFOptionList.d.ts +336 -0
  1319. package/ts3.4/cjs/api/form/PDFRadioGroup.d.ts +253 -0
  1320. package/ts3.4/cjs/api/form/PDFSignature.d.ts +30 -0
  1321. package/ts3.4/cjs/api/form/PDFTextField.d.ts +538 -0
  1322. package/ts3.4/cjs/api/form/appearances.d.ts +42 -0
  1323. package/ts3.4/cjs/api/form/index.d.ts +11 -0
  1324. package/ts3.4/cjs/api/image/alignment.d.ts +6 -0
  1325. package/ts3.4/cjs/api/image/index.d.ts +2 -0
  1326. package/ts3.4/cjs/api/index.d.ts +22 -0
  1327. package/ts3.4/cjs/api/objects.d.ts +5 -0
  1328. package/ts3.4/cjs/api/operations.d.ts +212 -0
  1329. package/ts3.4/cjs/api/operators.d.ts +86 -0
  1330. package/ts3.4/cjs/api/rotations.d.ts +39 -0
  1331. package/ts3.4/cjs/api/sizes.d.ts +53 -0
  1332. package/ts3.4/cjs/api/snapshot/DefaultDocumentSnapshot.d.ts +13 -0
  1333. package/ts3.4/cjs/api/snapshot/DocumentSnapshot.d.ts +11 -0
  1334. package/ts3.4/cjs/api/snapshot/IncrementalDocumentSnapshot.d.ts +16 -0
  1335. package/ts3.4/cjs/api/snapshot/index.d.ts +4 -0
  1336. package/ts3.4/cjs/api/svgPath.d.ts +3 -0
  1337. package/ts3.4/cjs/api/text/alignment.d.ts +6 -0
  1338. package/ts3.4/cjs/api/text/index.d.ts +3 -0
  1339. package/ts3.4/cjs/api/text/layout.d.ts +55 -0
  1340. package/ts3.4/cjs/core/PDFContext.d.ts +93 -0
  1341. package/ts3.4/cjs/core/PDFObjectCopier.d.ts +38 -0
  1342. package/ts3.4/cjs/core/acroform/PDFAcroButton.d.ts +22 -0
  1343. package/ts3.4/cjs/core/acroform/PDFAcroCheckBox.d.ts +14 -0
  1344. package/ts3.4/cjs/core/acroform/PDFAcroChoice.d.ts +21 -0
  1345. package/ts3.4/cjs/core/acroform/PDFAcroComboBox.d.ts +10 -0
  1346. package/ts3.4/cjs/core/acroform/PDFAcroField.d.ts +37 -0
  1347. package/ts3.4/cjs/core/acroform/PDFAcroForm.d.ts +21 -0
  1348. package/ts3.4/cjs/core/acroform/PDFAcroListBox.d.ts +10 -0
  1349. package/ts3.4/cjs/core/acroform/PDFAcroNonTerminal.d.ts +14 -0
  1350. package/ts3.4/cjs/core/acroform/PDFAcroPushButton.d.ts +10 -0
  1351. package/ts3.4/cjs/core/acroform/PDFAcroRadioButton.d.ts +14 -0
  1352. package/ts3.4/cjs/core/acroform/PDFAcroSignature.d.ts +8 -0
  1353. package/ts3.4/cjs/core/acroform/PDFAcroTerminal.d.ts +17 -0
  1354. package/ts3.4/cjs/core/acroform/PDFAcroText.d.ts +23 -0
  1355. package/ts3.4/cjs/core/acroform/flags.d.ts +142 -0
  1356. package/ts3.4/cjs/core/acroform/index.d.ts +16 -0
  1357. package/ts3.4/cjs/core/acroform/utils.d.ts +7 -0
  1358. package/ts3.4/cjs/core/annotation/AppearanceCharacteristics.d.ts +34 -0
  1359. package/ts3.4/cjs/core/annotation/BorderStyle.d.ts +12 -0
  1360. package/ts3.4/cjs/core/annotation/PDFAnnotation.d.ts +52 -0
  1361. package/ts3.4/cjs/core/annotation/PDFWidgetAnnotation.d.ts +27 -0
  1362. package/ts3.4/cjs/core/annotation/flags.d.ts +80 -0
  1363. package/ts3.4/cjs/core/annotation/index.d.ts +5 -0
  1364. package/ts3.4/cjs/core/document/PDFCrossRefSection.d.ts +28 -0
  1365. package/ts3.4/cjs/core/document/PDFHeader.d.ts +11 -0
  1366. package/ts3.4/cjs/core/document/PDFTrailer.d.ts +10 -0
  1367. package/ts3.4/cjs/core/document/PDFTrailerDict.d.ts +11 -0
  1368. package/ts3.4/cjs/core/embedders/CMap.d.ts +4 -0
  1369. package/ts3.4/cjs/core/embedders/CustomFontEmbedder.d.ts +45 -0
  1370. package/ts3.4/cjs/core/embedders/CustomFontSubsetEmbedder.d.ts +21 -0
  1371. package/ts3.4/cjs/core/embedders/FileEmbedder.d.ts +34 -0
  1372. package/ts3.4/cjs/core/embedders/FontFlags.d.ts +14 -0
  1373. package/ts3.4/cjs/core/embedders/JavaScriptEmbedder.d.ts +11 -0
  1374. package/ts3.4/cjs/core/embedders/JpegEmbedder.d.ts +24 -0
  1375. package/ts3.4/cjs/core/embedders/PDFPageEmbedder.d.ts +38 -0
  1376. package/ts3.4/cjs/core/embedders/PngEmbedder.d.ts +20 -0
  1377. package/ts3.4/cjs/core/embedders/StandardFontEmbedder.d.ts +37 -0
  1378. package/ts3.4/cjs/core/errors.d.ts +92 -0
  1379. package/ts3.4/cjs/core/index.d.ts +48 -0
  1380. package/ts3.4/cjs/core/interactive/ViewerPreferences.d.ts +348 -0
  1381. package/ts3.4/cjs/core/objects/PDFArray.d.ts +64 -0
  1382. package/ts3.4/cjs/core/objects/PDFBool.d.ts +14 -0
  1383. package/ts3.4/cjs/core/objects/PDFDict.d.ts +63 -0
  1384. package/ts3.4/cjs/core/objects/PDFHexString.d.ts +17 -0
  1385. package/ts3.4/cjs/core/objects/PDFInvalidObject.d.ts +12 -0
  1386. package/ts3.4/cjs/core/objects/PDFName.d.ts +42 -0
  1387. package/ts3.4/cjs/core/objects/PDFNull.d.ts +11 -0
  1388. package/ts3.4/cjs/core/objects/PDFNumber.d.ts +16 -0
  1389. package/ts3.4/cjs/core/objects/PDFObject.d.ts +10 -0
  1390. package/ts3.4/cjs/core/objects/PDFRawStream.d.ts +15 -0
  1391. package/ts3.4/cjs/core/objects/PDFRef.d.ts +14 -0
  1392. package/ts3.4/cjs/core/objects/PDFStream.d.ts +17 -0
  1393. package/ts3.4/cjs/core/objects/PDFString.d.ts +17 -0
  1394. package/ts3.4/cjs/core/operators/PDFOperator.d.ts +20 -0
  1395. package/ts3.4/cjs/core/operators/PDFOperatorNames.d.ts +77 -0
  1396. package/ts3.4/cjs/core/parser/BaseParser.d.ts +15 -0
  1397. package/ts3.4/cjs/core/parser/ByteStream.d.ts +27 -0
  1398. package/ts3.4/cjs/core/parser/PDFObjectParser.d.ts +30 -0
  1399. package/ts3.4/cjs/core/parser/PDFObjectStreamParser.d.ts +14 -0
  1400. package/ts3.4/cjs/core/parser/PDFParser.d.ts +46 -0
  1401. package/ts3.4/cjs/core/parser/PDFXRefStreamParser.d.ts +22 -0
  1402. package/ts3.4/cjs/core/streams/Ascii85Stream.d.ts +10 -0
  1403. package/ts3.4/cjs/core/streams/AsciiHexStream.d.ts +10 -0
  1404. package/ts3.4/cjs/core/streams/DecodeStream.d.ts +27 -0
  1405. package/ts3.4/cjs/core/streams/FlateStream.d.ts +14 -0
  1406. package/ts3.4/cjs/core/streams/LZWStream.d.ts +13 -0
  1407. package/ts3.4/cjs/core/streams/RunLengthStream.d.ts +9 -0
  1408. package/ts3.4/cjs/core/streams/Stream.d.ts +35 -0
  1409. package/ts3.4/cjs/core/streams/decode.d.ts +4 -0
  1410. package/ts3.4/cjs/core/structures/PDFCatalog.d.ts +28 -0
  1411. package/ts3.4/cjs/core/structures/PDFContentStream.d.ts +16 -0
  1412. package/ts3.4/cjs/core/structures/PDFCrossRefStream.d.ts +54 -0
  1413. package/ts3.4/cjs/core/structures/PDFFlateStream.d.ts +14 -0
  1414. package/ts3.4/cjs/core/structures/PDFObjectStream.d.ts +21 -0
  1415. package/ts3.4/cjs/core/structures/PDFPageLeaf.d.ts +55 -0
  1416. package/ts3.4/cjs/core/structures/PDFPageTree.d.ts +42 -0
  1417. package/ts3.4/cjs/core/syntax/CharCodes.d.ts +62 -0
  1418. package/ts3.4/cjs/core/syntax/Delimiters.d.ts +2 -0
  1419. package/ts3.4/cjs/core/syntax/Irregular.d.ts +2 -0
  1420. package/ts3.4/cjs/core/syntax/Keywords.d.ts +23 -0
  1421. package/ts3.4/cjs/core/syntax/Numeric.d.ts +4 -0
  1422. package/ts3.4/cjs/core/syntax/Whitespace.d.ts +2 -0
  1423. package/ts3.4/cjs/core/writers/PDFStreamWriter.d.ts +22 -0
  1424. package/ts3.4/cjs/core/writers/PDFWriter.d.ts +33 -0
  1425. package/ts3.4/cjs/index.d.ts +5 -0
  1426. package/ts3.4/cjs/types/fontkit.d.ts +582 -0
  1427. package/ts3.4/cjs/types/index.d.ts +2 -0
  1428. package/ts3.4/cjs/types/matrix.d.ts +22 -0
  1429. package/ts3.4/cjs/utils/Cache.d.ts +11 -0
  1430. package/ts3.4/cjs/utils/arrays.d.ts +16 -0
  1431. package/ts3.4/cjs/utils/async.d.ts +6 -0
  1432. package/ts3.4/cjs/utils/base64.d.ts +11 -0
  1433. package/ts3.4/cjs/utils/errors.d.ts +2 -0
  1434. package/ts3.4/cjs/utils/index.d.ts +12 -0
  1435. package/ts3.4/cjs/utils/numbers.d.ts +24 -0
  1436. package/ts3.4/cjs/utils/objects.d.ts +16 -0
  1437. package/ts3.4/cjs/utils/pdfDocEncoding.d.ts +8 -0
  1438. package/ts3.4/cjs/utils/png.d.ts +18 -0
  1439. package/ts3.4/cjs/utils/rng.d.ts +14 -0
  1440. package/ts3.4/cjs/utils/strings.d.ts +25 -0
  1441. package/ts3.4/cjs/utils/unicode.d.ts +187 -0
  1442. package/ts3.4/cjs/utils/validators.d.ts +27 -0
  1443. package/ts3.4/es/api/Embeddable.d.ts +8 -0
  1444. package/ts3.4/es/api/PDFDocument.d.ts +800 -0
  1445. package/ts3.4/es/api/PDFDocumentOptions.d.ts +43 -0
  1446. package/ts3.4/es/api/PDFEmbeddedFile.d.ts +39 -0
  1447. package/ts3.4/es/api/PDFEmbeddedPage.d.ts +74 -0
  1448. package/ts3.4/es/api/PDFFont.d.ts +95 -0
  1449. package/ts3.4/es/api/PDFImage.d.ts +96 -0
  1450. package/ts3.4/es/api/PDFJavaScript.d.ts +39 -0
  1451. package/ts3.4/es/api/PDFPage.d.ts +898 -0
  1452. package/ts3.4/es/api/PDFPageOptions.d.ts +155 -0
  1453. package/ts3.4/es/api/StandardFonts.d.ts +17 -0
  1454. package/ts3.4/es/api/colors.d.ts +31 -0
  1455. package/ts3.4/es/api/errors.d.ts +43 -0
  1456. package/ts3.4/es/api/form/PDFButton.d.ts +138 -0
  1457. package/ts3.4/es/api/form/PDFCheckBox.d.ts +143 -0
  1458. package/ts3.4/es/api/form/PDFDropdown.d.ts +403 -0
  1459. package/ts3.4/es/api/form/PDFField.d.ts +204 -0
  1460. package/ts3.4/es/api/form/PDFForm.d.ts +412 -0
  1461. package/ts3.4/es/api/form/PDFOptionList.d.ts +336 -0
  1462. package/ts3.4/es/api/form/PDFRadioGroup.d.ts +253 -0
  1463. package/ts3.4/es/api/form/PDFSignature.d.ts +30 -0
  1464. package/ts3.4/es/api/form/PDFTextField.d.ts +538 -0
  1465. package/ts3.4/es/api/form/appearances.d.ts +42 -0
  1466. package/ts3.4/es/api/form/index.d.ts +11 -0
  1467. package/ts3.4/es/api/image/alignment.d.ts +6 -0
  1468. package/ts3.4/es/api/image/index.d.ts +2 -0
  1469. package/ts3.4/es/api/index.d.ts +22 -0
  1470. package/ts3.4/es/api/objects.d.ts +5 -0
  1471. package/ts3.4/es/api/operations.d.ts +212 -0
  1472. package/ts3.4/es/api/operators.d.ts +86 -0
  1473. package/ts3.4/es/api/rotations.d.ts +39 -0
  1474. package/ts3.4/es/api/sizes.d.ts +53 -0
  1475. package/ts3.4/es/api/snapshot/DefaultDocumentSnapshot.d.ts +13 -0
  1476. package/ts3.4/es/api/snapshot/DocumentSnapshot.d.ts +11 -0
  1477. package/ts3.4/es/api/snapshot/IncrementalDocumentSnapshot.d.ts +16 -0
  1478. package/ts3.4/es/api/snapshot/index.d.ts +4 -0
  1479. package/ts3.4/es/api/svgPath.d.ts +3 -0
  1480. package/ts3.4/es/api/text/alignment.d.ts +6 -0
  1481. package/ts3.4/es/api/text/index.d.ts +3 -0
  1482. package/ts3.4/es/api/text/layout.d.ts +55 -0
  1483. package/ts3.4/es/core/PDFContext.d.ts +93 -0
  1484. package/ts3.4/es/core/PDFObjectCopier.d.ts +38 -0
  1485. package/ts3.4/es/core/acroform/PDFAcroButton.d.ts +22 -0
  1486. package/ts3.4/es/core/acroform/PDFAcroCheckBox.d.ts +14 -0
  1487. package/ts3.4/es/core/acroform/PDFAcroChoice.d.ts +21 -0
  1488. package/ts3.4/es/core/acroform/PDFAcroComboBox.d.ts +10 -0
  1489. package/ts3.4/es/core/acroform/PDFAcroField.d.ts +37 -0
  1490. package/ts3.4/es/core/acroform/PDFAcroForm.d.ts +21 -0
  1491. package/ts3.4/es/core/acroform/PDFAcroListBox.d.ts +10 -0
  1492. package/ts3.4/es/core/acroform/PDFAcroNonTerminal.d.ts +14 -0
  1493. package/ts3.4/es/core/acroform/PDFAcroPushButton.d.ts +10 -0
  1494. package/ts3.4/es/core/acroform/PDFAcroRadioButton.d.ts +14 -0
  1495. package/ts3.4/es/core/acroform/PDFAcroSignature.d.ts +8 -0
  1496. package/ts3.4/es/core/acroform/PDFAcroTerminal.d.ts +17 -0
  1497. package/ts3.4/es/core/acroform/PDFAcroText.d.ts +23 -0
  1498. package/ts3.4/es/core/acroform/flags.d.ts +142 -0
  1499. package/ts3.4/es/core/acroform/index.d.ts +16 -0
  1500. package/ts3.4/es/core/acroform/utils.d.ts +7 -0
  1501. package/ts3.4/es/core/annotation/AppearanceCharacteristics.d.ts +34 -0
  1502. package/ts3.4/es/core/annotation/BorderStyle.d.ts +12 -0
  1503. package/ts3.4/es/core/annotation/PDFAnnotation.d.ts +52 -0
  1504. package/ts3.4/es/core/annotation/PDFWidgetAnnotation.d.ts +27 -0
  1505. package/ts3.4/es/core/annotation/flags.d.ts +80 -0
  1506. package/ts3.4/es/core/annotation/index.d.ts +5 -0
  1507. package/ts3.4/es/core/document/PDFCrossRefSection.d.ts +28 -0
  1508. package/ts3.4/es/core/document/PDFHeader.d.ts +11 -0
  1509. package/ts3.4/es/core/document/PDFTrailer.d.ts +10 -0
  1510. package/ts3.4/es/core/document/PDFTrailerDict.d.ts +11 -0
  1511. package/ts3.4/es/core/embedders/CMap.d.ts +4 -0
  1512. package/ts3.4/es/core/embedders/CustomFontEmbedder.d.ts +45 -0
  1513. package/ts3.4/es/core/embedders/CustomFontSubsetEmbedder.d.ts +21 -0
  1514. package/ts3.4/es/core/embedders/FileEmbedder.d.ts +34 -0
  1515. package/ts3.4/es/core/embedders/FontFlags.d.ts +14 -0
  1516. package/ts3.4/es/core/embedders/JavaScriptEmbedder.d.ts +11 -0
  1517. package/ts3.4/es/core/embedders/JpegEmbedder.d.ts +24 -0
  1518. package/ts3.4/es/core/embedders/PDFPageEmbedder.d.ts +38 -0
  1519. package/ts3.4/es/core/embedders/PngEmbedder.d.ts +20 -0
  1520. package/ts3.4/es/core/embedders/StandardFontEmbedder.d.ts +37 -0
  1521. package/ts3.4/es/core/errors.d.ts +92 -0
  1522. package/ts3.4/es/core/index.d.ts +48 -0
  1523. package/ts3.4/es/core/interactive/ViewerPreferences.d.ts +348 -0
  1524. package/ts3.4/es/core/objects/PDFArray.d.ts +64 -0
  1525. package/ts3.4/es/core/objects/PDFBool.d.ts +14 -0
  1526. package/ts3.4/es/core/objects/PDFDict.d.ts +63 -0
  1527. package/ts3.4/es/core/objects/PDFHexString.d.ts +17 -0
  1528. package/ts3.4/es/core/objects/PDFInvalidObject.d.ts +12 -0
  1529. package/ts3.4/es/core/objects/PDFName.d.ts +42 -0
  1530. package/ts3.4/es/core/objects/PDFNull.d.ts +11 -0
  1531. package/ts3.4/es/core/objects/PDFNumber.d.ts +16 -0
  1532. package/ts3.4/es/core/objects/PDFObject.d.ts +10 -0
  1533. package/ts3.4/es/core/objects/PDFRawStream.d.ts +15 -0
  1534. package/ts3.4/es/core/objects/PDFRef.d.ts +14 -0
  1535. package/ts3.4/es/core/objects/PDFStream.d.ts +17 -0
  1536. package/ts3.4/es/core/objects/PDFString.d.ts +17 -0
  1537. package/ts3.4/es/core/operators/PDFOperator.d.ts +20 -0
  1538. package/ts3.4/es/core/operators/PDFOperatorNames.d.ts +77 -0
  1539. package/ts3.4/es/core/parser/BaseParser.d.ts +15 -0
  1540. package/ts3.4/es/core/parser/ByteStream.d.ts +27 -0
  1541. package/ts3.4/es/core/parser/PDFObjectParser.d.ts +30 -0
  1542. package/ts3.4/es/core/parser/PDFObjectStreamParser.d.ts +14 -0
  1543. package/ts3.4/es/core/parser/PDFParser.d.ts +46 -0
  1544. package/ts3.4/es/core/parser/PDFXRefStreamParser.d.ts +22 -0
  1545. package/ts3.4/es/core/streams/Ascii85Stream.d.ts +10 -0
  1546. package/ts3.4/es/core/streams/AsciiHexStream.d.ts +10 -0
  1547. package/ts3.4/es/core/streams/DecodeStream.d.ts +27 -0
  1548. package/ts3.4/es/core/streams/FlateStream.d.ts +14 -0
  1549. package/ts3.4/es/core/streams/LZWStream.d.ts +13 -0
  1550. package/ts3.4/es/core/streams/RunLengthStream.d.ts +9 -0
  1551. package/ts3.4/es/core/streams/Stream.d.ts +35 -0
  1552. package/ts3.4/es/core/streams/decode.d.ts +4 -0
  1553. package/ts3.4/es/core/structures/PDFCatalog.d.ts +28 -0
  1554. package/ts3.4/es/core/structures/PDFContentStream.d.ts +16 -0
  1555. package/ts3.4/es/core/structures/PDFCrossRefStream.d.ts +54 -0
  1556. package/ts3.4/es/core/structures/PDFFlateStream.d.ts +14 -0
  1557. package/ts3.4/es/core/structures/PDFObjectStream.d.ts +21 -0
  1558. package/ts3.4/es/core/structures/PDFPageLeaf.d.ts +55 -0
  1559. package/ts3.4/es/core/structures/PDFPageTree.d.ts +42 -0
  1560. package/ts3.4/es/core/syntax/CharCodes.d.ts +62 -0
  1561. package/ts3.4/es/core/syntax/Delimiters.d.ts +2 -0
  1562. package/ts3.4/es/core/syntax/Irregular.d.ts +2 -0
  1563. package/ts3.4/es/core/syntax/Keywords.d.ts +23 -0
  1564. package/ts3.4/es/core/syntax/Numeric.d.ts +4 -0
  1565. package/ts3.4/es/core/syntax/Whitespace.d.ts +2 -0
  1566. package/ts3.4/es/core/writers/PDFStreamWriter.d.ts +22 -0
  1567. package/ts3.4/es/core/writers/PDFWriter.d.ts +33 -0
  1568. package/ts3.4/es/index.d.ts +5 -0
  1569. package/ts3.4/es/types/fontkit.d.ts +582 -0
  1570. package/ts3.4/es/types/index.d.ts +2 -0
  1571. package/ts3.4/es/types/matrix.d.ts +22 -0
  1572. package/ts3.4/es/utils/Cache.d.ts +11 -0
  1573. package/ts3.4/es/utils/arrays.d.ts +16 -0
  1574. package/ts3.4/es/utils/async.d.ts +6 -0
  1575. package/ts3.4/es/utils/base64.d.ts +11 -0
  1576. package/ts3.4/es/utils/errors.d.ts +2 -0
  1577. package/ts3.4/es/utils/index.d.ts +12 -0
  1578. package/ts3.4/es/utils/numbers.d.ts +24 -0
  1579. package/ts3.4/es/utils/objects.d.ts +16 -0
  1580. package/ts3.4/es/utils/pdfDocEncoding.d.ts +8 -0
  1581. package/ts3.4/es/utils/png.d.ts +18 -0
  1582. package/ts3.4/es/utils/rng.d.ts +14 -0
  1583. package/ts3.4/es/utils/strings.d.ts +25 -0
  1584. package/ts3.4/es/utils/unicode.d.ts +187 -0
  1585. package/ts3.4/es/utils/validators.d.ts +27 -0
  1586. package/yarn.lock +4446 -0
@@ -0,0 +1,1495 @@
1
+ import Embeddable from 'src/api/Embeddable';
2
+ import {
3
+ EncryptedPDFError,
4
+ FontkitNotRegisteredError,
5
+ ForeignPageError,
6
+ RemovePageFromEmptyDocumentError,
7
+ } from 'src/api/errors';
8
+ import PDFEmbeddedPage from 'src/api/PDFEmbeddedPage';
9
+ import PDFFont from 'src/api/PDFFont';
10
+ import PDFImage from 'src/api/PDFImage';
11
+ import PDFPage from 'src/api/PDFPage';
12
+ import PDFForm from 'src/api/form/PDFForm';
13
+ import { PageSizes } from 'src/api/sizes';
14
+ import { StandardFonts } from 'src/api/StandardFonts';
15
+ import {
16
+ CustomFontEmbedder,
17
+ CustomFontSubsetEmbedder,
18
+ JpegEmbedder,
19
+ PageBoundingBox,
20
+ PageEmbeddingMismatchedContextError,
21
+ PDFCatalog,
22
+ PDFContext,
23
+ PDFDict,
24
+ PDFHexString,
25
+ PDFName,
26
+ PDFObjectCopier,
27
+ PDFPageEmbedder,
28
+ PDFPageLeaf,
29
+ PDFPageTree,
30
+ PDFParser,
31
+ PDFStreamWriter,
32
+ PDFString,
33
+ PDFWriter,
34
+ PngEmbedder,
35
+ StandardFontEmbedder,
36
+ UnexpectedObjectTypeError,
37
+ } from 'src/core';
38
+ import {
39
+ ParseSpeeds,
40
+ AttachmentOptions,
41
+ SaveOptions,
42
+ Base64SaveOptions,
43
+ LoadOptions,
44
+ CreateOptions,
45
+ EmbedFontOptions,
46
+ SetTitleOptions,
47
+ IncrementalSaveOptions,
48
+ } from 'src/api/PDFDocumentOptions';
49
+ import PDFObject from 'src/core/objects/PDFObject';
50
+ import PDFRef from 'src/core/objects/PDFRef';
51
+ import { Fontkit } from 'src/types/fontkit';
52
+ import { TransformationMatrix } from 'src/types/matrix';
53
+ import {
54
+ assertIs,
55
+ assertIsOneOfOrUndefined,
56
+ assertOrUndefined,
57
+ assertRange,
58
+ Cache,
59
+ canBeConvertedToUint8Array,
60
+ encodeToBase64,
61
+ isStandardFont,
62
+ pluckIndices,
63
+ range,
64
+ toUint8Array,
65
+ } from 'src/utils';
66
+ import FileEmbedder, { AFRelationship } from 'src/core/embedders/FileEmbedder';
67
+ import PDFEmbeddedFile from 'src/api/PDFEmbeddedFile';
68
+ import PDFJavaScript from 'src/api/PDFJavaScript';
69
+ import JavaScriptEmbedder from 'src/core/embedders/JavaScriptEmbedder';
70
+ import { DocumentSnapshot, IncrementalDocumentSnapshot } from './snapshot';
71
+
72
+ /**
73
+ * Represents a PDF document.
74
+ */
75
+ export default class PDFDocument {
76
+ /**
77
+ * Load an existing [[PDFDocument]]. The input data can be provided in
78
+ * multiple formats:
79
+ *
80
+ * | Type | Contents |
81
+ * | ------------- | ------------------------------------------------------ |
82
+ * | `string` | A base64 encoded string (or data URI) containing a PDF |
83
+ * | `Uint8Array` | The raw bytes of a PDF |
84
+ * | `ArrayBuffer` | The raw bytes of a PDF |
85
+ *
86
+ * For example:
87
+ * ```js
88
+ * import { PDFDocument } from 'pdf-lib'
89
+ *
90
+ * // pdf=string
91
+ * const base64 =
92
+ * 'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +
93
+ * 'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +
94
+ * '6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +
95
+ * 'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +
96
+ * 'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +
97
+ * 'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +
98
+ * '20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +
99
+ * 'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +
100
+ * 'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +
101
+ * 'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +
102
+ * 'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +
103
+ * '5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +
104
+ * 'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +
105
+ * 'FydHhyZWYKNTEwCiUlRU9G'
106
+ *
107
+ * const dataUri = 'data:application/pdf;base64,' + base64
108
+ *
109
+ * const pdfDoc1 = await PDFDocument.load(base64)
110
+ * const pdfDoc2 = await PDFDocument.load(dataUri)
111
+ *
112
+ * // pdf=Uint8Array
113
+ * import fs from 'fs'
114
+ * const uint8Array = fs.readFileSync('with_update_sections.pdf')
115
+ * const pdfDoc3 = await PDFDocument.load(uint8Array)
116
+ *
117
+ * // pdf=ArrayBuffer
118
+ * const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'
119
+ * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
120
+ * const pdfDoc4 = await PDFDocument.load(arrayBuffer)
121
+ *
122
+ * ```
123
+ *
124
+ * @param pdf The input data containing a PDF document.
125
+ * @param options The options to be used when loading the document.
126
+ * @returns Resolves with a document loaded from the input.
127
+ */
128
+ static async load(
129
+ pdf: string | Uint8Array | ArrayBuffer,
130
+ options: LoadOptions = {},
131
+ ) {
132
+ const {
133
+ ignoreEncryption = false,
134
+ parseSpeed = ParseSpeeds.Slow,
135
+ throwOnInvalidObject = false,
136
+ updateMetadata = true,
137
+ capNumbers = false,
138
+ forIncrementalUpdate = false,
139
+ } = options;
140
+
141
+ assertIs(pdf, 'pdf', ['string', Uint8Array, ArrayBuffer]);
142
+ assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);
143
+ assertIs(parseSpeed, 'parseSpeed', ['number']);
144
+ assertIs(throwOnInvalidObject, 'throwOnInvalidObject', ['boolean']);
145
+ assertIs(forIncrementalUpdate, 'forIncrementalUpdate', ['boolean']);
146
+
147
+ const bytes = toUint8Array(pdf);
148
+ const context = await PDFParser.forBytesWithOptions(
149
+ bytes,
150
+ parseSpeed,
151
+ throwOnInvalidObject,
152
+ capNumbers,
153
+ forIncrementalUpdate,
154
+ ).parseDocument();
155
+ const pdfDoc = new PDFDocument(context, ignoreEncryption, updateMetadata);
156
+ if (forIncrementalUpdate) pdfDoc.takeSnapshot();
157
+ return pdfDoc;
158
+ }
159
+
160
+ /**
161
+ * Create a new [[PDFDocument]].
162
+ * @returns Resolves with the newly created document.
163
+ */
164
+ static async create(options: CreateOptions = {}) {
165
+ const { updateMetadata = true } = options;
166
+
167
+ const context = PDFContext.create();
168
+ const pageTree = PDFPageTree.withContext(context);
169
+ const pageTreeRef = context.register(pageTree);
170
+ const catalog = PDFCatalog.withContextAndPages(context, pageTreeRef);
171
+ context.trailerInfo.Root = context.register(catalog);
172
+
173
+ return new PDFDocument(context, false, updateMetadata);
174
+ }
175
+
176
+ /** The low-level context of this document. */
177
+ readonly context: PDFContext;
178
+
179
+ /** The catalog of this document. */
180
+ readonly catalog: PDFCatalog;
181
+
182
+ /** Whether or not this document is encrypted. */
183
+ readonly isEncrypted: boolean;
184
+
185
+ /** The default word breaks used in PDFPage.drawText */
186
+ defaultWordBreaks: string[] = [' '];
187
+
188
+ private fontkit?: Fontkit;
189
+ private pageCount: number | undefined;
190
+ private readonly pageCache: Cache<PDFPage[]>;
191
+ private readonly pageMap: Map<PDFPageLeaf, PDFPage>;
192
+ private readonly formCache: Cache<PDFForm>;
193
+ private readonly fonts: PDFFont[];
194
+ private readonly images: PDFImage[];
195
+ private readonly embeddedPages: PDFEmbeddedPage[];
196
+ private readonly embeddedFiles: PDFEmbeddedFile[];
197
+ private readonly javaScripts: PDFJavaScript[];
198
+
199
+ private constructor(
200
+ context: PDFContext,
201
+ ignoreEncryption: boolean,
202
+ updateMetadata: boolean,
203
+ ) {
204
+ assertIs(context, 'context', [[PDFContext, 'PDFContext']]);
205
+ assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);
206
+
207
+ this.context = context;
208
+ this.catalog = context.lookup(context.trailerInfo.Root) as PDFCatalog;
209
+ this.isEncrypted = !!context.lookup(context.trailerInfo.Encrypt);
210
+
211
+ this.pageCache = Cache.populatedBy(this.computePages);
212
+ this.pageMap = new Map();
213
+ this.formCache = Cache.populatedBy(this.getOrCreateForm);
214
+ this.fonts = [];
215
+ this.images = [];
216
+ this.embeddedPages = [];
217
+ this.embeddedFiles = [];
218
+ this.javaScripts = [];
219
+
220
+ if (!ignoreEncryption && this.isEncrypted) throw new EncryptedPDFError();
221
+
222
+ if (updateMetadata) this.updateInfoDict();
223
+ }
224
+
225
+ /**
226
+ * Register a fontkit instance. This must be done before custom fonts can
227
+ * be embedded. See [here](https://github.com/Hopding/pdf-lib/tree/master#fontkit-installation)
228
+ * for instructions on how to install and register a fontkit instance.
229
+ *
230
+ * > You do **not** need to call this method to embed standard fonts.
231
+ *
232
+ * For example:
233
+ * ```js
234
+ * import { PDFDocument } from 'pdf-lib'
235
+ * import fontkit from '@pdf-lib/fontkit'
236
+ *
237
+ * const pdfDoc = await PDFDocument.create()
238
+ * pdfDoc.registerFontkit(fontkit)
239
+ * ```
240
+ *
241
+ * @param fontkit The fontkit instance to be registered.
242
+ */
243
+ registerFontkit(fontkit: Fontkit): void {
244
+ this.fontkit = fontkit;
245
+ }
246
+
247
+ /**
248
+ * Get the [[PDFForm]] containing all interactive fields for this document.
249
+ * For example:
250
+ * ```js
251
+ * const form = pdfDoc.getForm()
252
+ * const fields = form.getFields()
253
+ * fields.forEach(field => {
254
+ * const type = field.constructor.name
255
+ * const name = field.getName()
256
+ * console.log(`${type}: ${name}`)
257
+ * })
258
+ * ```
259
+ * @returns The form for this document.
260
+ */
261
+ getForm(): PDFForm {
262
+ const form = this.formCache.access();
263
+ if (form.hasXFA()) {
264
+ console.warn(
265
+ 'Removing XFA form data as pdf-lib does not support reading or writing XFA',
266
+ );
267
+ form.deleteXFA();
268
+ }
269
+ return form;
270
+ }
271
+
272
+ /**
273
+ * Get this document's title metadata. The title appears in the
274
+ * "Document Properties" section of most PDF readers. For example:
275
+ * ```js
276
+ * const title = pdfDoc.getTitle()
277
+ * ```
278
+ * @returns A string containing the title of this document, if it has one.
279
+ */
280
+ getTitle(): string | undefined {
281
+ const title = this.getInfoDict().lookup(PDFName.Title);
282
+ if (!title) return undefined;
283
+ assertIsLiteralOrHexString(title);
284
+ return title.decodeText();
285
+ }
286
+
287
+ /**
288
+ * Get this document's author metadata. The author appears in the
289
+ * "Document Properties" section of most PDF readers. For example:
290
+ * ```js
291
+ * const author = pdfDoc.getAuthor()
292
+ * ```
293
+ * @returns A string containing the author of this document, if it has one.
294
+ */
295
+ getAuthor(): string | undefined {
296
+ const author = this.getInfoDict().lookup(PDFName.Author);
297
+ if (!author) return undefined;
298
+ assertIsLiteralOrHexString(author);
299
+ return author.decodeText();
300
+ }
301
+
302
+ /**
303
+ * Get this document's subject metadata. The subject appears in the
304
+ * "Document Properties" section of most PDF readers. For example:
305
+ * ```js
306
+ * const subject = pdfDoc.getSubject()
307
+ * ```
308
+ * @returns A string containing the subject of this document, if it has one.
309
+ */
310
+ getSubject(): string | undefined {
311
+ const subject = this.getInfoDict().lookup(PDFName.Subject);
312
+ if (!subject) return undefined;
313
+ assertIsLiteralOrHexString(subject);
314
+ return subject.decodeText();
315
+ }
316
+
317
+ /**
318
+ * Get this document's keywords metadata. The keywords appear in the
319
+ * "Document Properties" section of most PDF readers. For example:
320
+ * ```js
321
+ * const keywords = pdfDoc.getKeywords()
322
+ * ```
323
+ * @returns A string containing the keywords of this document, if it has any.
324
+ */
325
+ getKeywords(): string | undefined {
326
+ const keywords = this.getInfoDict().lookup(PDFName.Keywords);
327
+ if (!keywords) return undefined;
328
+ assertIsLiteralOrHexString(keywords);
329
+ return keywords.decodeText();
330
+ }
331
+
332
+ /**
333
+ * Get this document's creator metadata. The creator appears in the
334
+ * "Document Properties" section of most PDF readers. For example:
335
+ * ```js
336
+ * const creator = pdfDoc.getCreator()
337
+ * ```
338
+ * @returns A string containing the creator of this document, if it has one.
339
+ */
340
+ getCreator(): string | undefined {
341
+ const creator = this.getInfoDict().lookup(PDFName.Creator);
342
+ if (!creator) return undefined;
343
+ assertIsLiteralOrHexString(creator);
344
+ return creator.decodeText();
345
+ }
346
+
347
+ /**
348
+ * Get this document's producer metadata. The producer appears in the
349
+ * "Document Properties" section of most PDF readers. For example:
350
+ * ```js
351
+ * const producer = pdfDoc.getProducer()
352
+ * ```
353
+ * @returns A string containing the producer of this document, if it has one.
354
+ */
355
+ getProducer(): string | undefined {
356
+ const producer = this.getInfoDict().lookup(PDFName.Producer);
357
+ if (!producer) return undefined;
358
+ assertIsLiteralOrHexString(producer);
359
+ return producer.decodeText();
360
+ }
361
+
362
+ /**
363
+ * Get this document's creation date metadata. The creation date appears in
364
+ * the "Document Properties" section of most PDF readers. For example:
365
+ * ```js
366
+ * const creationDate = pdfDoc.getCreationDate()
367
+ * ```
368
+ * @returns A Date containing the creation date of this document,
369
+ * if it has one.
370
+ */
371
+ getCreationDate(): Date | undefined {
372
+ const creationDate = this.getInfoDict().lookup(PDFName.CreationDate);
373
+ if (!creationDate) return undefined;
374
+ assertIsLiteralOrHexString(creationDate);
375
+ return creationDate.decodeDate();
376
+ }
377
+
378
+ /**
379
+ * Get this document's modification date metadata. The modification date
380
+ * appears in the "Document Properties" section of most PDF readers.
381
+ * For example:
382
+ * ```js
383
+ * const modification = pdfDoc.getModificationDate()
384
+ * ```
385
+ * @returns A Date containing the modification date of this document,
386
+ * if it has one.
387
+ */
388
+ getModificationDate(): Date | undefined {
389
+ const modificationDate = this.getInfoDict().lookup(PDFName.ModDate);
390
+ if (!modificationDate) return undefined;
391
+ assertIsLiteralOrHexString(modificationDate);
392
+ return modificationDate.decodeDate();
393
+ }
394
+
395
+ /**
396
+ * Set this document's title metadata. The title will appear in the
397
+ * "Document Properties" section of most PDF readers. For example:
398
+ * ```js
399
+ * pdfDoc.setTitle('🥚 The Life of an Egg 🍳')
400
+ * ```
401
+ *
402
+ * To display the title in the window's title bar, set the
403
+ * `showInWindowTitleBar` option to `true` (works for _most_ PDF readers).
404
+ * For example:
405
+ * ```js
406
+ * pdfDoc.setTitle('🥚 The Life of an Egg 🍳', { showInWindowTitleBar: true })
407
+ * ```
408
+ *
409
+ * @param title The title of this document.
410
+ * @param options The options to be used when setting the title.
411
+ */
412
+ setTitle(title: string, options?: SetTitleOptions): void {
413
+ assertIs(title, 'title', ['string']);
414
+ const key = PDFName.of('Title');
415
+ this.getInfoDict().set(key, PDFHexString.fromText(title));
416
+
417
+ // Indicate that readers should display the title rather than the filename
418
+ if (options?.showInWindowTitleBar) {
419
+ const prefs = this.catalog.getOrCreateViewerPreferences();
420
+ prefs.setDisplayDocTitle(true);
421
+ }
422
+ }
423
+
424
+ /**
425
+ * Set this document's author metadata. The author will appear in the
426
+ * "Document Properties" section of most PDF readers. For example:
427
+ * ```js
428
+ * pdfDoc.setAuthor('Humpty Dumpty')
429
+ * ```
430
+ * @param author The author of this document.
431
+ */
432
+ setAuthor(author: string): void {
433
+ assertIs(author, 'author', ['string']);
434
+ const key = PDFName.of('Author');
435
+ this.getInfoDict().set(key, PDFHexString.fromText(author));
436
+ }
437
+
438
+ /**
439
+ * Set this document's subject metadata. The subject will appear in the
440
+ * "Document Properties" section of most PDF readers. For example:
441
+ * ```js
442
+ * pdfDoc.setSubject('📘 An Epic Tale of Woe 📖')
443
+ * ```
444
+ * @param subject The subject of this document.
445
+ */
446
+ setSubject(subject: string): void {
447
+ assertIs(subject, 'author', ['string']);
448
+ const key = PDFName.of('Subject');
449
+ this.getInfoDict().set(key, PDFHexString.fromText(subject));
450
+ }
451
+
452
+ /**
453
+ * Set this document's keyword metadata. These keywords will appear in the
454
+ * "Document Properties" section of most PDF readers. For example:
455
+ * ```js
456
+ * pdfDoc.setKeywords(['eggs', 'wall', 'fall', 'king', 'horses', 'men'])
457
+ * ```
458
+ * @param keywords An array of keywords associated with this document.
459
+ */
460
+ setKeywords(keywords: string[]): void {
461
+ assertIs(keywords, 'keywords', [Array]);
462
+ const key = PDFName.of('Keywords');
463
+ this.getInfoDict().set(key, PDFHexString.fromText(keywords.join(' ')));
464
+ }
465
+
466
+ /**
467
+ * Set this document's creator metadata. The creator will appear in the
468
+ * "Document Properties" section of most PDF readers. For example:
469
+ * ```js
470
+ * pdfDoc.setCreator('PDF App 9000 🤖')
471
+ * ```
472
+ * @param creator The creator of this document.
473
+ */
474
+ setCreator(creator: string): void {
475
+ assertIs(creator, 'creator', ['string']);
476
+ const key = PDFName.of('Creator');
477
+ this.getInfoDict().set(key, PDFHexString.fromText(creator));
478
+ }
479
+
480
+ /**
481
+ * Set this document's producer metadata. The producer will appear in the
482
+ * "Document Properties" section of most PDF readers. For example:
483
+ * ```js
484
+ * pdfDoc.setProducer('PDF App 9000 🤖')
485
+ * ```
486
+ * @param producer The producer of this document.
487
+ */
488
+ setProducer(producer: string): void {
489
+ assertIs(producer, 'creator', ['string']);
490
+ const key = PDFName.of('Producer');
491
+ this.getInfoDict().set(key, PDFHexString.fromText(producer));
492
+ }
493
+
494
+ /**
495
+ * Set this document's language metadata. The language will appear in the
496
+ * "Document Properties" section of some PDF readers. For example:
497
+ * ```js
498
+ * pdfDoc.setLanguage('en-us')
499
+ * ```
500
+ *
501
+ * @param language An RFC 3066 _Language-Tag_ denoting the language of this
502
+ * document, or an empty string if the language is unknown.
503
+ */
504
+ setLanguage(language: string): void {
505
+ assertIs(language, 'language', ['string']);
506
+ const key = PDFName.of('Lang');
507
+ this.catalog.set(key, PDFString.of(language));
508
+ }
509
+
510
+ /**
511
+ * Set this document's creation date metadata. The creation date will appear
512
+ * in the "Document Properties" section of most PDF readers. For example:
513
+ * ```js
514
+ * pdfDoc.setCreationDate(new Date())
515
+ * ```
516
+ * @param creationDate The date this document was created.
517
+ */
518
+ setCreationDate(creationDate: Date): void {
519
+ assertIs(creationDate, 'creationDate', [[Date, 'Date']]);
520
+ const key = PDFName.of('CreationDate');
521
+ this.getInfoDict().set(key, PDFString.fromDate(creationDate));
522
+ }
523
+
524
+ /**
525
+ * Set this document's modification date metadata. The modification date will
526
+ * appear in the "Document Properties" section of most PDF readers. For
527
+ * example:
528
+ * ```js
529
+ * pdfDoc.setModificationDate(new Date())
530
+ * ```
531
+ * @param modificationDate The date this document was last modified.
532
+ */
533
+ setModificationDate(modificationDate: Date): void {
534
+ assertIs(modificationDate, 'modificationDate', [[Date, 'Date']]);
535
+ const key = PDFName.of('ModDate');
536
+ this.getInfoDict().set(key, PDFString.fromDate(modificationDate));
537
+ }
538
+
539
+ /**
540
+ * Get the number of pages contained in this document. For example:
541
+ * ```js
542
+ * const totalPages = pdfDoc.getPageCount()
543
+ * ```
544
+ * @returns The number of pages in this document.
545
+ */
546
+ getPageCount(): number {
547
+ if (this.pageCount === undefined) this.pageCount = this.getPages().length;
548
+ return this.pageCount;
549
+ }
550
+
551
+ /**
552
+ * Get an array of all the pages contained in this document. The pages are
553
+ * stored in the array in the same order that they are rendered in the
554
+ * document. For example:
555
+ * ```js
556
+ * const pages = pdfDoc.getPages()
557
+ * pages[0] // The first page of the document
558
+ * pages[2] // The third page of the document
559
+ * pages[197] // The 198th page of the document
560
+ * ```
561
+ * @returns An array of all the pages contained in this document.
562
+ */
563
+ getPages(): PDFPage[] {
564
+ return this.pageCache.access();
565
+ }
566
+
567
+ /**
568
+ * Get the page rendered at a particular `index` of the document. For example:
569
+ * ```js
570
+ * pdfDoc.getPage(0) // The first page of the document
571
+ * pdfDoc.getPage(2) // The third page of the document
572
+ * pdfDoc.getPage(197) // The 198th page of the document
573
+ * ```
574
+ * @returns The [[PDFPage]] rendered at the given `index` of the document.
575
+ */
576
+ getPage(index: number): PDFPage {
577
+ const pages = this.getPages();
578
+ assertRange(index, 'index', 0, pages.length - 1);
579
+ return pages[index];
580
+ }
581
+
582
+ /**
583
+ * Get an array of indices for all the pages contained in this document. The
584
+ * array will contain a range of integers from
585
+ * `0..pdfDoc.getPageCount() - 1`. For example:
586
+ * ```js
587
+ * const pdfDoc = await PDFDocument.create()
588
+ * pdfDoc.addPage()
589
+ * pdfDoc.addPage()
590
+ * pdfDoc.addPage()
591
+ *
592
+ * const indices = pdfDoc.getPageIndices()
593
+ * indices // => [0, 1, 2]
594
+ * ```
595
+ * @returns An array of indices for all pages contained in this document.
596
+ */
597
+ getPageIndices(): number[] {
598
+ return range(0, this.getPageCount());
599
+ }
600
+
601
+ /**
602
+ * Remove the page at a given index from this document. For example:
603
+ * ```js
604
+ * pdfDoc.removePage(0) // Remove the first page of the document
605
+ * pdfDoc.removePage(2) // Remove the third page of the document
606
+ * pdfDoc.removePage(197) // Remove the 198th page of the document
607
+ * ```
608
+ * Once a page has been removed, it will no longer be rendered at that index
609
+ * in the document.
610
+ * @param index The index of the page to be removed.
611
+ */
612
+ removePage(index: number): void {
613
+ const pageCount = this.getPageCount();
614
+ if (this.pageCount === 0) throw new RemovePageFromEmptyDocumentError();
615
+ assertRange(index, 'index', 0, pageCount - 1);
616
+ this.catalog.removeLeafNode(index);
617
+ this.pageCount = pageCount - 1;
618
+ }
619
+
620
+ /**
621
+ * Add a page to the end of this document. This method accepts three
622
+ * different value types for the `page` parameter:
623
+ *
624
+ * | Type | Behavior |
625
+ * | ------------------ | ----------------------------------------------------------------------------------- |
626
+ * | `undefined` | Create a new page and add it to the end of this document |
627
+ * | `[number, number]` | Create a new page with the given dimensions and add it to the end of this document |
628
+ * | `PDFPage` | Add the existing page to the end of this document |
629
+ *
630
+ * For example:
631
+ * ```js
632
+ * // page=undefined
633
+ * const newPage = pdfDoc.addPage()
634
+ *
635
+ * // page=[number, number]
636
+ * import { PageSizes } from 'pdf-lib'
637
+ * const newPage1 = pdfDoc.addPage(PageSizes.A7)
638
+ * const newPage2 = pdfDoc.addPage(PageSizes.Letter)
639
+ * const newPage3 = pdfDoc.addPage([500, 750])
640
+ *
641
+ * // page=PDFPage
642
+ * const pdfDoc1 = await PDFDocument.create()
643
+ * const pdfDoc2 = await PDFDocument.load(...)
644
+ * const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])
645
+ * pdfDoc1.addPage(existingPage)
646
+ * ```
647
+ *
648
+ * @param page Optionally, the desired dimensions or existing page.
649
+ * @returns The newly created (or existing) page.
650
+ */
651
+ addPage(page?: PDFPage | [number, number]): PDFPage {
652
+ assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);
653
+ return this.insertPage(this.getPageCount(), page);
654
+ }
655
+
656
+ /**
657
+ * Insert a page at a given index within this document. This method accepts
658
+ * three different value types for the `page` parameter:
659
+ *
660
+ * | Type | Behavior |
661
+ * | ------------------ | ------------------------------------------------------------------------------ |
662
+ * | `undefined` | Create a new page and insert it into this document |
663
+ * | `[number, number]` | Create a new page with the given dimensions and insert it into this document |
664
+ * | `PDFPage` | Insert the existing page into this document |
665
+ *
666
+ * For example:
667
+ * ```js
668
+ * // page=undefined
669
+ * const newPage = pdfDoc.insertPage(2)
670
+ *
671
+ * // page=[number, number]
672
+ * import { PageSizes } from 'pdf-lib'
673
+ * const newPage1 = pdfDoc.insertPage(2, PageSizes.A7)
674
+ * const newPage2 = pdfDoc.insertPage(0, PageSizes.Letter)
675
+ * const newPage3 = pdfDoc.insertPage(198, [500, 750])
676
+ *
677
+ * // page=PDFPage
678
+ * const pdfDoc1 = await PDFDocument.create()
679
+ * const pdfDoc2 = await PDFDocument.load(...)
680
+ * const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])
681
+ * pdfDoc1.insertPage(0, existingPage)
682
+ * ```
683
+ *
684
+ * @param index The index at which the page should be inserted (zero-based).
685
+ * @param page Optionally, the desired dimensions or existing page.
686
+ * @returns The newly created (or existing) page.
687
+ */
688
+ insertPage(index: number, page?: PDFPage | [number, number]): PDFPage {
689
+ const pageCount = this.getPageCount();
690
+ assertRange(index, 'index', 0, pageCount);
691
+ assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);
692
+ if (!page || Array.isArray(page)) {
693
+ const dims = Array.isArray(page) ? page : PageSizes.A4;
694
+ page = PDFPage.create(this);
695
+ page.setSize(...dims);
696
+ } else if (page.doc !== this) {
697
+ throw new ForeignPageError();
698
+ }
699
+
700
+ const parentRef = this.catalog.insertLeafNode(page.ref, index);
701
+ page.node.setParent(parentRef);
702
+
703
+ this.pageMap.set(page.node, page);
704
+ this.pageCache.invalidate();
705
+
706
+ this.pageCount = pageCount + 1;
707
+
708
+ return page;
709
+ }
710
+
711
+ /**
712
+ * Copy pages from a source document into this document. Allows pages to be
713
+ * copied between different [[PDFDocument]] instances. For example:
714
+ * ```js
715
+ * const pdfDoc = await PDFDocument.create()
716
+ * const srcDoc = await PDFDocument.load(...)
717
+ *
718
+ * const copiedPages = await pdfDoc.copyPages(srcDoc, [0, 3, 89])
719
+ * const [firstPage, fourthPage, ninetiethPage] = copiedPages;
720
+ *
721
+ * pdfDoc.addPage(fourthPage)
722
+ * pdfDoc.insertPage(0, ninetiethPage)
723
+ * pdfDoc.addPage(firstPage)
724
+ * ```
725
+ * @param srcDoc The document from which pages should be copied.
726
+ * @param indices The indices of the pages that should be copied.
727
+ * @returns Resolves with an array of pages copied into this document.
728
+ */
729
+ async copyPages(srcDoc: PDFDocument, indices: number[]): Promise<PDFPage[]> {
730
+ assertIs(srcDoc, 'srcDoc', [[PDFDocument, 'PDFDocument']]);
731
+ assertIs(indices, 'indices', [Array]);
732
+ await srcDoc.flush();
733
+ const copier = PDFObjectCopier.for(srcDoc.context, this.context);
734
+ const srcPages = srcDoc.getPages();
735
+ const copiedPages: PDFPage[] = new Array(indices.length);
736
+ for (let idx = 0, len = indices.length; idx < len; idx++) {
737
+ const srcPage = srcPages[indices[idx]];
738
+ const copiedPage = copier.copy(srcPage.node);
739
+ const ref = this.context.register(copiedPage);
740
+ copiedPages[idx] = PDFPage.of(copiedPage, ref, this);
741
+ }
742
+ return copiedPages;
743
+ }
744
+
745
+ /**
746
+ * Get a copy of this document.
747
+ *
748
+ * For example:
749
+ * ```js
750
+ * const srcDoc = await PDFDocument.load(...)
751
+ * const pdfDoc = await srcDoc.copy()
752
+ * ```
753
+ *
754
+ * > **NOTE:** This method won't copy all information over to the new
755
+ * > document (acroforms, outlines, etc...).
756
+ *
757
+ * @returns Resolves with a copy this document.
758
+ */
759
+ async copy(): Promise<PDFDocument> {
760
+ const pdfCopy = await PDFDocument.create();
761
+ const contentPages = await pdfCopy.copyPages(this, this.getPageIndices());
762
+
763
+ for (let idx = 0, len = contentPages.length; idx < len; idx++) {
764
+ pdfCopy.addPage(contentPages[idx]);
765
+ }
766
+
767
+ if (this.getAuthor() !== undefined) {
768
+ pdfCopy.setAuthor(this.getAuthor()!);
769
+ }
770
+ if (this.getCreationDate() !== undefined) {
771
+ pdfCopy.setCreationDate(this.getCreationDate()!);
772
+ }
773
+ if (this.getCreator() !== undefined) {
774
+ pdfCopy.setCreator(this.getCreator()!);
775
+ }
776
+ if (this.getModificationDate() !== undefined) {
777
+ pdfCopy.setModificationDate(this.getModificationDate()!);
778
+ }
779
+ if (this.getProducer() !== undefined) {
780
+ pdfCopy.setProducer(this.getProducer()!);
781
+ }
782
+ if (this.getSubject() !== undefined) {
783
+ pdfCopy.setSubject(this.getSubject()!);
784
+ }
785
+ if (this.getTitle() !== undefined) {
786
+ pdfCopy.setTitle(this.getTitle()!);
787
+ }
788
+ pdfCopy.defaultWordBreaks = this.defaultWordBreaks;
789
+
790
+ return pdfCopy;
791
+ }
792
+
793
+ /**
794
+ * Add JavaScript to this document. The supplied `script` is executed when the
795
+ * document is opened. The `script` can be used to perform some operation
796
+ * when the document is opened (e.g. logging to the console), or it can be
797
+ * used to define a function that can be referenced later in a JavaScript
798
+ * action. For example:
799
+ * ```js
800
+ * // Show "Hello World!" in the console when the PDF is opened
801
+ * pdfDoc.addJavaScript(
802
+ * 'main',
803
+ * 'console.show(); console.println("Hello World!");'
804
+ * );
805
+ *
806
+ * // Define a function named "foo" that can be called in JavaScript Actions
807
+ * pdfDoc.addJavaScript(
808
+ * 'foo',
809
+ * 'function foo() { return "foo"; }'
810
+ * );
811
+ * ```
812
+ * See the [JavaScript for Acrobat API Reference](https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf)
813
+ * for details.
814
+ * @param name The name of the script. Must be unique per document.
815
+ * @param script The JavaScript to execute.
816
+ */
817
+ addJavaScript(name: string, script: string) {
818
+ assertIs(name, 'name', ['string']);
819
+ assertIs(script, 'script', ['string']);
820
+
821
+ const embedder = JavaScriptEmbedder.for(script, name);
822
+
823
+ const ref = this.context.nextRef();
824
+ const javaScript = PDFJavaScript.of(ref, this, embedder);
825
+ this.javaScripts.push(javaScript);
826
+ }
827
+
828
+ /**
829
+ * Add an attachment to this document. Attachments are visible in the
830
+ * "Attachments" panel of Adobe Acrobat and some other PDF readers. Any
831
+ * type of file can be added as an attachment. This includes, but is not
832
+ * limited to, `.png`, `.jpg`, `.pdf`, `.csv`, `.docx`, and `.xlsx` files.
833
+ *
834
+ * The input data can be provided in multiple formats:
835
+ *
836
+ * | Type | Contents |
837
+ * | ------------- | -------------------------------------------------------------- |
838
+ * | `string` | A base64 encoded string (or data URI) containing an attachment |
839
+ * | `Uint8Array` | The raw bytes of an attachment |
840
+ * | `ArrayBuffer` | The raw bytes of an attachment |
841
+ *
842
+ * For example:
843
+ * ```js
844
+ * // attachment=string
845
+ * await pdfDoc.attach('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...', 'cat_riding_unicorn.jpg', {
846
+ * mimeType: 'image/jpeg',
847
+ * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',
848
+ * creationDate: new Date('2019/12/01'),
849
+ * modificationDate: new Date('2020/04/19'),
850
+ * })
851
+ * await pdfDoc.attach('data:image/jpeg;base64,/9j/4AAQ...', 'cat_riding_unicorn.jpg', {
852
+ * mimeType: 'image/jpeg',
853
+ * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',
854
+ * creationDate: new Date('2019/12/01'),
855
+ * modificationDate: new Date('2020/04/19'),
856
+ * })
857
+ *
858
+ * // attachment=Uint8Array
859
+ * import fs from 'fs'
860
+ * const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')
861
+ * await pdfDoc.attach(uint8Array, 'cat_riding_unicorn.jpg', {
862
+ * mimeType: 'image/jpeg',
863
+ * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',
864
+ * creationDate: new Date('2019/12/01'),
865
+ * modificationDate: new Date('2020/04/19'),
866
+ * })
867
+ *
868
+ * // attachment=ArrayBuffer
869
+ * const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'
870
+ * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
871
+ * await pdfDoc.attach(arrayBuffer, 'cat_riding_unicorn.jpg', {
872
+ * mimeType: 'image/jpeg',
873
+ * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',
874
+ * creationDate: new Date('2019/12/01'),
875
+ * modificationDate: new Date('2020/04/19'),
876
+ * })
877
+ * ```
878
+ *
879
+ * @param attachment The input data containing the file to be attached.
880
+ * @param name The name of the file to be attached.
881
+ * @returns Resolves when the attachment is complete.
882
+ */
883
+ async attach(
884
+ attachment: string | Uint8Array | ArrayBuffer,
885
+ name: string,
886
+ options: AttachmentOptions = {},
887
+ ): Promise<void> {
888
+ assertIs(attachment, 'attachment', ['string', Uint8Array, ArrayBuffer]);
889
+ assertIs(name, 'name', ['string']);
890
+ assertOrUndefined(options.mimeType, 'mimeType', ['string']);
891
+ assertOrUndefined(options.description, 'description', ['string']);
892
+ assertOrUndefined(options.creationDate, 'options.creationDate', [Date]);
893
+ assertOrUndefined(options.modificationDate, 'options.modificationDate', [
894
+ Date,
895
+ ]);
896
+ assertIsOneOfOrUndefined(
897
+ options.afRelationship,
898
+ 'options.afRelationship',
899
+ AFRelationship,
900
+ );
901
+
902
+ const bytes = toUint8Array(attachment);
903
+ const embedder = FileEmbedder.for(bytes, name, options);
904
+
905
+ const ref = this.context.nextRef();
906
+ const embeddedFile = PDFEmbeddedFile.of(ref, this, embedder);
907
+ this.embeddedFiles.push(embeddedFile);
908
+ }
909
+
910
+ /**
911
+ * Embed a font into this document. The input data can be provided in multiple
912
+ * formats:
913
+ *
914
+ * | Type | Contents |
915
+ * | --------------- | ------------------------------------------------------- |
916
+ * | `StandardFonts` | One of the standard 14 fonts |
917
+ * | `string` | A base64 encoded string (or data URI) containing a font |
918
+ * | `Uint8Array` | The raw bytes of a font |
919
+ * | `ArrayBuffer` | The raw bytes of a font |
920
+ *
921
+ * For example:
922
+ * ```js
923
+ * // font=StandardFonts
924
+ * import { StandardFonts } from 'pdf-lib'
925
+ * const font1 = await pdfDoc.embedFont(StandardFonts.Helvetica)
926
+ *
927
+ * // font=string
928
+ * const font2 = await pdfDoc.embedFont('AAEAAAAVAQAABABQRFNJRx/upe...')
929
+ * const font3 = await pdfDoc.embedFont('data:font/opentype;base64,AAEAAA...')
930
+ *
931
+ * // font=Uint8Array
932
+ * import fs from 'fs'
933
+ * const font4 = await pdfDoc.embedFont(fs.readFileSync('Ubuntu-R.ttf'))
934
+ *
935
+ * // font=ArrayBuffer
936
+ * const url = 'https://pdf-lib.js.org/assets/ubuntu/Ubuntu-R.ttf'
937
+ * const ubuntuBytes = await fetch(url).then(res => res.arrayBuffer())
938
+ * const font5 = await pdfDoc.embedFont(ubuntuBytes)
939
+ * ```
940
+ * See also: [[registerFontkit]]
941
+ * @param font The input data for a font.
942
+ * @param options The options to be used when embedding the font.
943
+ * @returns Resolves with the embedded font.
944
+ */
945
+ async embedFont(
946
+ font: StandardFonts | string | Uint8Array | ArrayBuffer,
947
+ options: EmbedFontOptions = {},
948
+ ): Promise<PDFFont> {
949
+ const { subset = false, customName, features } = options;
950
+
951
+ assertIs(font, 'font', ['string', Uint8Array, ArrayBuffer]);
952
+ assertIs(subset, 'subset', ['boolean']);
953
+
954
+ let embedder: CustomFontEmbedder | StandardFontEmbedder;
955
+ if (isStandardFont(font)) {
956
+ embedder = StandardFontEmbedder.for(font, customName);
957
+ } else if (canBeConvertedToUint8Array(font)) {
958
+ const bytes = toUint8Array(font);
959
+ const fontkit = this.assertFontkit();
960
+ embedder = subset
961
+ ? await CustomFontSubsetEmbedder.for(
962
+ fontkit,
963
+ bytes,
964
+ customName,
965
+ features,
966
+ )
967
+ : await CustomFontEmbedder.for(fontkit, bytes, customName, features);
968
+ } else {
969
+ throw new TypeError(
970
+ '`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`',
971
+ );
972
+ }
973
+
974
+ const ref = this.context.nextRef();
975
+ const pdfFont = PDFFont.of(ref, this, embedder);
976
+ this.fonts.push(pdfFont);
977
+
978
+ return pdfFont;
979
+ }
980
+
981
+ /**
982
+ * Embed a standard font into this document.
983
+ * For example:
984
+ * ```js
985
+ * import { StandardFonts } from 'pdf-lib'
986
+ * const helveticaFont = pdfDoc.embedFont(StandardFonts.Helvetica)
987
+ * ```
988
+ * @param font The standard font to be embedded.
989
+ * @param customName The name to be used when embedding the font.
990
+ * @returns The embedded font.
991
+ */
992
+ embedStandardFont(font: StandardFonts, customName?: string): PDFFont {
993
+ assertIs(font, 'font', ['string']);
994
+ if (!isStandardFont(font)) {
995
+ throw new TypeError('`font` must be one of type `StandardFonts`');
996
+ }
997
+
998
+ const embedder = StandardFontEmbedder.for(font, customName);
999
+
1000
+ const ref = this.context.nextRef();
1001
+ const pdfFont = PDFFont.of(ref, this, embedder);
1002
+ this.fonts.push(pdfFont);
1003
+
1004
+ return pdfFont;
1005
+ }
1006
+
1007
+ /**
1008
+ * Embed a JPEG image into this document. The input data can be provided in
1009
+ * multiple formats:
1010
+ *
1011
+ * | Type | Contents |
1012
+ * | ------------- | ------------------------------------------------------------- |
1013
+ * | `string` | A base64 encoded string (or data URI) containing a JPEG image |
1014
+ * | `Uint8Array` | The raw bytes of a JPEG image |
1015
+ * | `ArrayBuffer` | The raw bytes of a JPEG image |
1016
+ *
1017
+ * For example:
1018
+ * ```js
1019
+ * // jpg=string
1020
+ * const image1 = await pdfDoc.embedJpg('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...')
1021
+ * const image2 = await pdfDoc.embedJpg('data:image/jpeg;base64,/9j/4AAQ...')
1022
+ *
1023
+ * // jpg=Uint8Array
1024
+ * import fs from 'fs'
1025
+ * const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')
1026
+ * const image3 = await pdfDoc.embedJpg(uint8Array)
1027
+ *
1028
+ * // jpg=ArrayBuffer
1029
+ * const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'
1030
+ * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
1031
+ * const image4 = await pdfDoc.embedJpg(arrayBuffer)
1032
+ * ```
1033
+ *
1034
+ * @param jpg The input data for a JPEG image.
1035
+ * @returns Resolves with the embedded image.
1036
+ */
1037
+ async embedJpg(jpg: string | Uint8Array | ArrayBuffer): Promise<PDFImage> {
1038
+ assertIs(jpg, 'jpg', ['string', Uint8Array, ArrayBuffer]);
1039
+ const bytes = toUint8Array(jpg);
1040
+ const embedder = await JpegEmbedder.for(bytes);
1041
+ const ref = this.context.nextRef();
1042
+ const pdfImage = PDFImage.of(ref, this, embedder);
1043
+ this.images.push(pdfImage);
1044
+ return pdfImage;
1045
+ }
1046
+
1047
+ /**
1048
+ * Embed a PNG image into this document. The input data can be provided in
1049
+ * multiple formats:
1050
+ *
1051
+ * | Type | Contents |
1052
+ * | ------------- | ------------------------------------------------------------ |
1053
+ * | `string` | A base64 encoded string (or data URI) containing a PNG image |
1054
+ * | `Uint8Array` | The raw bytes of a PNG image |
1055
+ * | `ArrayBuffer` | The raw bytes of a PNG image |
1056
+ *
1057
+ * For example:
1058
+ * ```js
1059
+ * // png=string
1060
+ * const image1 = await pdfDoc.embedPng('iVBORw0KGgoAAAANSUhEUgAAAlgAAAF3...')
1061
+ * const image2 = await pdfDoc.embedPng('data:image/png;base64,iVBORw0KGg...')
1062
+ *
1063
+ * // png=Uint8Array
1064
+ * import fs from 'fs'
1065
+ * const uint8Array = fs.readFileSync('small_mario.png')
1066
+ * const image3 = await pdfDoc.embedPng(uint8Array)
1067
+ *
1068
+ * // png=ArrayBuffer
1069
+ * const url = 'https://pdf-lib.js.org/assets/small_mario.png'
1070
+ * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
1071
+ * const image4 = await pdfDoc.embedPng(arrayBuffer)
1072
+ * ```
1073
+ *
1074
+ * @param png The input data for a PNG image.
1075
+ * @returns Resolves with the embedded image.
1076
+ */
1077
+ async embedPng(png: string | Uint8Array | ArrayBuffer): Promise<PDFImage> {
1078
+ assertIs(png, 'png', ['string', Uint8Array, ArrayBuffer]);
1079
+ const bytes = toUint8Array(png);
1080
+ const embedder = await PngEmbedder.for(bytes);
1081
+ const ref = this.context.nextRef();
1082
+ const pdfImage = PDFImage.of(ref, this, embedder);
1083
+ this.images.push(pdfImage);
1084
+ return pdfImage;
1085
+ }
1086
+
1087
+ /**
1088
+ * Embed one or more PDF pages into this document.
1089
+ *
1090
+ * For example:
1091
+ * ```js
1092
+ * const pdfDoc = await PDFDocument.create()
1093
+ *
1094
+ * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'
1095
+ * const sourcePdf = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())
1096
+ *
1097
+ * // Embed page 74 of `sourcePdf` into `pdfDoc`
1098
+ * const [embeddedPage] = await pdfDoc.embedPdf(sourcePdf, [73])
1099
+ * ```
1100
+ *
1101
+ * See [[PDFDocument.load]] for examples of the allowed input data formats.
1102
+ *
1103
+ * @param pdf The input data containing a PDF document.
1104
+ * @param indices The indices of the pages that should be embedded.
1105
+ * @returns Resolves with an array of the embedded pages.
1106
+ */
1107
+ async embedPdf(
1108
+ pdf: string | Uint8Array | ArrayBuffer | PDFDocument,
1109
+ indices: number[] = [0],
1110
+ ): Promise<PDFEmbeddedPage[]> {
1111
+ assertIs(pdf, 'pdf', [
1112
+ 'string',
1113
+ Uint8Array,
1114
+ ArrayBuffer,
1115
+ [PDFDocument, 'PDFDocument'],
1116
+ ]);
1117
+ assertIs(indices, 'indices', [Array]);
1118
+
1119
+ const srcDoc =
1120
+ pdf instanceof PDFDocument ? pdf : await PDFDocument.load(pdf);
1121
+
1122
+ const srcPages = pluckIndices(srcDoc.getPages(), indices);
1123
+
1124
+ return this.embedPages(srcPages);
1125
+ }
1126
+
1127
+ /**
1128
+ * Embed a single PDF page into this document.
1129
+ *
1130
+ * For example:
1131
+ * ```js
1132
+ * const pdfDoc = await PDFDocument.create()
1133
+ *
1134
+ * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'
1135
+ * const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())
1136
+ * const sourcePdfDoc = await PDFDocument.load(sourceBuffer)
1137
+ * const sourcePdfPage = sourcePdfDoc.getPages()[73]
1138
+ *
1139
+ * const embeddedPage = await pdfDoc.embedPage(
1140
+ * sourcePdfPage,
1141
+ *
1142
+ * // Clip a section of the source page so that we only embed part of it
1143
+ * { left: 100, right: 450, bottom: 330, top: 570 },
1144
+ *
1145
+ * // Translate all drawings of the embedded page by (10, 200) units
1146
+ * [1, 0, 0, 1, 10, 200],
1147
+ * )
1148
+ * ```
1149
+ *
1150
+ * @param page The page to be embedded.
1151
+ * @param boundingBox
1152
+ * Optionally, an area of the source page that should be embedded
1153
+ * (defaults to entire page).
1154
+ * @param transformationMatrix
1155
+ * Optionally, a transformation matrix that is always applied to the embedded
1156
+ * page anywhere it is drawn.
1157
+ * @returns Resolves with the embedded pdf page.
1158
+ */
1159
+ async embedPage(
1160
+ page: PDFPage,
1161
+ boundingBox?: PageBoundingBox,
1162
+ transformationMatrix?: TransformationMatrix,
1163
+ ): Promise<PDFEmbeddedPage> {
1164
+ assertIs(page, 'page', [[PDFPage, 'PDFPage']]);
1165
+ const [embeddedPage] = await this.embedPages(
1166
+ [page],
1167
+ [boundingBox],
1168
+ [transformationMatrix],
1169
+ );
1170
+ return embeddedPage;
1171
+ }
1172
+
1173
+ /**
1174
+ * Embed one or more PDF pages into this document.
1175
+ *
1176
+ * For example:
1177
+ * ```js
1178
+ * const pdfDoc = await PDFDocument.create()
1179
+ *
1180
+ * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'
1181
+ * const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())
1182
+ * const sourcePdfDoc = await PDFDocument.load(sourceBuffer)
1183
+ *
1184
+ * const page1 = sourcePdfDoc.getPages()[0]
1185
+ * const page2 = sourcePdfDoc.getPages()[52]
1186
+ * const page3 = sourcePdfDoc.getPages()[73]
1187
+ *
1188
+ * const embeddedPages = await pdfDoc.embedPages([page1, page2, page3])
1189
+ * ```
1190
+ *
1191
+ * @param page
1192
+ * The pages to be embedded (they must all share the same context).
1193
+ * @param boundingBoxes
1194
+ * Optionally, an array of clipping boundaries - one for each page
1195
+ * (defaults to entirety of each page).
1196
+ * @param transformationMatrices
1197
+ * Optionally, an array of transformation matrices - one for each page
1198
+ * (each page's transformation will apply anywhere it is drawn).
1199
+ * @returns Resolves with an array of the embedded pdf pages.
1200
+ */
1201
+ async embedPages(
1202
+ pages: PDFPage[],
1203
+ boundingBoxes: (PageBoundingBox | undefined)[] = [],
1204
+ transformationMatrices: (TransformationMatrix | undefined)[] = [],
1205
+ ) {
1206
+ if (pages.length === 0) return [];
1207
+
1208
+ // Assert all pages have the same context
1209
+ for (let idx = 0, len = pages.length - 1; idx < len; idx++) {
1210
+ const currPage = pages[idx];
1211
+ const nextPage = pages[idx + 1];
1212
+ if (currPage.node.context !== nextPage.node.context) {
1213
+ throw new PageEmbeddingMismatchedContextError();
1214
+ }
1215
+ }
1216
+
1217
+ const context = pages[0].node.context;
1218
+ const maybeCopyPage =
1219
+ context === this.context
1220
+ ? (p: PDFPageLeaf) => p
1221
+ : PDFObjectCopier.for(context, this.context).copy;
1222
+
1223
+ const embeddedPages = new Array<PDFEmbeddedPage>(pages.length);
1224
+ for (let idx = 0, len = pages.length; idx < len; idx++) {
1225
+ const page = maybeCopyPage(pages[idx].node);
1226
+ const box = boundingBoxes[idx];
1227
+ const matrix = transformationMatrices[idx];
1228
+
1229
+ const embedder = await PDFPageEmbedder.for(page, box, matrix);
1230
+
1231
+ const ref = this.context.nextRef();
1232
+ embeddedPages[idx] = PDFEmbeddedPage.of(ref, this, embedder);
1233
+ }
1234
+
1235
+ this.embeddedPages.push(...embeddedPages);
1236
+
1237
+ return embeddedPages;
1238
+ }
1239
+
1240
+ /**
1241
+ * > **NOTE:** You shouldn't need to call this method directly. The [[save]]
1242
+ * > and [[saveAsBase64]] methods will automatically ensure that all embedded
1243
+ * > assets are flushed before serializing the document.
1244
+ *
1245
+ * Flush all embedded fonts, PDF pages, and images to this document's
1246
+ * [[context]].
1247
+ *
1248
+ * @returns Resolves when the flush is complete.
1249
+ */
1250
+ async flush(): Promise<void> {
1251
+ await this.embedAll(this.fonts);
1252
+ await this.embedAll(this.images);
1253
+ await this.embedAll(this.embeddedPages);
1254
+ await this.embedAll(this.embeddedFiles);
1255
+ await this.embedAll(this.javaScripts);
1256
+ }
1257
+
1258
+ /**
1259
+ * Serialize this document to an array of bytes making up a PDF file.
1260
+ * For example:
1261
+ * ```js
1262
+ * const pdfBytes = await pdfDoc.save()
1263
+ * ```
1264
+ *
1265
+ * There are a number of things you can do with the serialized document,
1266
+ * depending on the JavaScript environment you're running in:
1267
+ * * Write it to a file in Node or React Native
1268
+ * * Download it as a Blob in the browser
1269
+ * * Render it in an `iframe`
1270
+ *
1271
+ * @param options The options to be used when saving the document.
1272
+ * @returns Resolves with the bytes of the serialized document.
1273
+ */
1274
+ async save(options: SaveOptions = {}): Promise<Uint8Array> {
1275
+ const {
1276
+ useObjectStreams = true,
1277
+ objectsPerTick = 50,
1278
+ rewrite = false,
1279
+ } = options;
1280
+
1281
+ assertIs(useObjectStreams, 'useObjectStreams', ['boolean']);
1282
+ assertIs(objectsPerTick, 'objectsPerTick', ['number']);
1283
+ assertIs(rewrite, 'rewrite', ['boolean']);
1284
+ const incrementalUpdate =
1285
+ !rewrite &&
1286
+ this.context.pdfFileDetails.originalBytes &&
1287
+ this.context.snapshot;
1288
+ if (incrementalUpdate) {
1289
+ options.addDefaultPage = false;
1290
+ options.updateFieldAppearances = false;
1291
+ }
1292
+
1293
+ await this.prepareForSave(options);
1294
+
1295
+ const Writer = useObjectStreams ? PDFStreamWriter : PDFWriter;
1296
+ if (incrementalUpdate) {
1297
+ const increment = await Writer.forContextWithSnapshot(
1298
+ this.context,
1299
+ objectsPerTick,
1300
+ this.context.snapshot!,
1301
+ ).serializeToBuffer();
1302
+ const result = new Uint8Array(
1303
+ this.context.pdfFileDetails.originalBytes!.byteLength +
1304
+ increment.byteLength,
1305
+ );
1306
+ result.set(this.context.pdfFileDetails.originalBytes!);
1307
+ result.set(
1308
+ increment,
1309
+ this.context.pdfFileDetails.originalBytes!.byteLength,
1310
+ );
1311
+ return result;
1312
+ }
1313
+ return Writer.forContext(this.context, objectsPerTick).serializeToBuffer();
1314
+ }
1315
+
1316
+ /**
1317
+ * Serialize only the changes to this document to an array of bytes making up a PDF file.
1318
+ * For example:
1319
+ * ```js
1320
+ * const snapshot = pdfDoc.takeSnapshot();
1321
+ * ...
1322
+ * const pdfBytes = await pdfDoc.saveIncremental(snapshot);
1323
+ * ```
1324
+ *
1325
+ * Similar to [[save]] function.
1326
+ * The changes are saved in an incremental way, the result buffer
1327
+ * will contain only the differences
1328
+ *
1329
+ * @param snapshot The snapshot to be used when saving the document.
1330
+ * @param options The options to be used when saving the document.
1331
+ * @returns Resolves with the bytes of the serialized document.
1332
+ */
1333
+ async saveIncremental(
1334
+ snapshot: DocumentSnapshot,
1335
+ options: IncrementalSaveOptions = {},
1336
+ ): Promise<Uint8Array> {
1337
+ const { objectsPerTick = 50 } = options;
1338
+
1339
+ assertIs(objectsPerTick, 'objectsPerTick', ['number']);
1340
+
1341
+ const saveOptions: SaveOptions = {
1342
+ ...options,
1343
+ addDefaultPage: false,
1344
+ updateFieldAppearances: false,
1345
+ };
1346
+ await this.prepareForSave(saveOptions);
1347
+
1348
+ const Writer = this.context.pdfFileDetails.useObjectStreams
1349
+ ? PDFStreamWriter
1350
+ : PDFWriter;
1351
+ return Writer.forContextWithSnapshot(
1352
+ this.context,
1353
+ objectsPerTick,
1354
+ snapshot,
1355
+ ).serializeToBuffer();
1356
+ }
1357
+
1358
+ /**
1359
+ * Serialize this document to a base64 encoded string or data URI making up a
1360
+ * PDF file. For example:
1361
+ * ```js
1362
+ * const base64String = await pdfDoc.saveAsBase64()
1363
+ * base64String // => 'JVBERi0xLjcKJYGBgYEKC...'
1364
+ *
1365
+ * const base64DataUri = await pdfDoc.saveAsBase64({ dataUri: true })
1366
+ * base64DataUri // => 'data:application/pdf;base64,JVBERi0xLjcKJYGBgYEKC...'
1367
+ * ```
1368
+ *
1369
+ * @param options The options to be used when saving the document.
1370
+ * @returns Resolves with a base64 encoded string or data URI of the
1371
+ * serialized document.
1372
+ */
1373
+ async saveAsBase64(options: Base64SaveOptions = {}): Promise<string> {
1374
+ const { dataUri = false, ...otherOptions } = options;
1375
+ assertIs(dataUri, 'dataUri', ['boolean']);
1376
+ const bytes = await this.save(otherOptions);
1377
+ const base64 = encodeToBase64(bytes);
1378
+ return dataUri ? `data:application/pdf;base64,${base64}` : base64;
1379
+ }
1380
+
1381
+ findPageForAnnotationRef(ref: PDFRef): PDFPage | undefined {
1382
+ const pages = this.getPages();
1383
+ for (let idx = 0, len = pages.length; idx < len; idx++) {
1384
+ const page = pages[idx];
1385
+ const annotations = page.node.Annots();
1386
+
1387
+ if (annotations?.indexOf(ref) !== undefined) {
1388
+ return page;
1389
+ }
1390
+ }
1391
+
1392
+ return undefined;
1393
+ }
1394
+
1395
+ takeSnapshot(): DocumentSnapshot {
1396
+ const indirectObjects: number[] = [];
1397
+
1398
+ const snapshot = new IncrementalDocumentSnapshot(
1399
+ this.context.largestObjectNumber,
1400
+ indirectObjects,
1401
+ this.context.pdfFileDetails.pdfSize,
1402
+ this.context.pdfFileDetails.prevStartXRef,
1403
+ this.context,
1404
+ );
1405
+ if (!this.context.snapshot && this.context.pdfFileDetails.originalBytes) {
1406
+ this.context.snapshot = snapshot;
1407
+ this.catalog.registerChange();
1408
+ }
1409
+ return snapshot;
1410
+ }
1411
+
1412
+ private async prepareForSave(options: SaveOptions): Promise<void> {
1413
+ const { addDefaultPage = true, updateFieldAppearances = true } = options;
1414
+
1415
+ assertIs(addDefaultPage, 'addDefaultPage', ['boolean']);
1416
+ assertIs(updateFieldAppearances, 'updateFieldAppearances', ['boolean']);
1417
+
1418
+ if (addDefaultPage && this.getPageCount() === 0) this.addPage();
1419
+
1420
+ if (updateFieldAppearances) {
1421
+ const form = this.formCache.getValue();
1422
+ if (form) form.updateFieldAppearances();
1423
+ }
1424
+
1425
+ await this.flush();
1426
+ }
1427
+
1428
+ private async embedAll(embeddables: Embeddable[]): Promise<void> {
1429
+ for (let idx = 0, len = embeddables.length; idx < len; idx++) {
1430
+ await embeddables[idx].embed();
1431
+ }
1432
+ }
1433
+
1434
+ private updateInfoDict(): void {
1435
+ const pdfLib = `pdf-lib (https://github.com/Hopding/pdf-lib)`;
1436
+ const now = new Date();
1437
+
1438
+ const info = this.getInfoDict();
1439
+
1440
+ this.setProducer(pdfLib);
1441
+ this.setModificationDate(now);
1442
+
1443
+ if (!info.get(PDFName.of('Creator'))) this.setCreator(pdfLib);
1444
+ if (!info.get(PDFName.of('CreationDate'))) this.setCreationDate(now);
1445
+ }
1446
+
1447
+ private getInfoDict(): PDFDict {
1448
+ const existingInfo = this.context.lookup(this.context.trailerInfo.Info);
1449
+ if (existingInfo instanceof PDFDict) {
1450
+ return existingInfo;
1451
+ }
1452
+
1453
+ const newInfo = this.context.obj({});
1454
+ this.context.trailerInfo.Info = this.context.register(newInfo);
1455
+
1456
+ return newInfo;
1457
+ }
1458
+
1459
+ private assertFontkit(): Fontkit {
1460
+ if (!this.fontkit) throw new FontkitNotRegisteredError();
1461
+ return this.fontkit;
1462
+ }
1463
+
1464
+ private computePages = (): PDFPage[] => {
1465
+ const pages: PDFPage[] = [];
1466
+ this.catalog.Pages().traverse((node, ref) => {
1467
+ if (node instanceof PDFPageLeaf) {
1468
+ let page = this.pageMap.get(node);
1469
+ if (!page) {
1470
+ page = PDFPage.of(node, ref, this);
1471
+ this.pageMap.set(node, page);
1472
+ }
1473
+ pages.push(page);
1474
+ }
1475
+ });
1476
+ return pages;
1477
+ };
1478
+
1479
+ private getOrCreateForm = (): PDFForm => {
1480
+ const acroForm = this.catalog.getOrCreateAcroForm();
1481
+ return PDFForm.of(acroForm, this);
1482
+ };
1483
+ }
1484
+
1485
+ /* tslint:disable-next-line only-arrow-functions */
1486
+ function assertIsLiteralOrHexString(
1487
+ pdfObject: PDFObject,
1488
+ ): asserts pdfObject is PDFHexString | PDFString {
1489
+ if (
1490
+ !(pdfObject instanceof PDFHexString) &&
1491
+ !(pdfObject instanceof PDFString)
1492
+ ) {
1493
+ throw new UnexpectedObjectTypeError([PDFHexString, PDFString], pdfObject);
1494
+ }
1495
+ }