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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/{src/api/Embeddable.ts → dist/api/Embeddable.d.ts} +1 -1
  2. package/dist/api/PDFDocument.d.ts +778 -0
  3. package/dist/api/PDFDocumentOptions.d.ts +38 -0
  4. package/dist/api/PDFEmbeddedFile.d.ts +38 -0
  5. package/dist/api/PDFEmbeddedPage.d.ts +73 -0
  6. package/dist/api/PDFFont.d.ts +94 -0
  7. package/dist/api/PDFImage.d.ts +95 -0
  8. package/dist/api/PDFJavaScript.d.ts +38 -0
  9. package/dist/api/PDFPage.d.ts +910 -0
  10. package/dist/api/PDFPageOptions.d.ts +172 -0
  11. package/dist/api/StandardFonts.d.ts +16 -0
  12. package/dist/api/colors.d.ts +34 -0
  13. package/dist/api/errors.d.ts +42 -0
  14. package/dist/api/form/PDFButton.d.ts +137 -0
  15. package/dist/api/form/PDFCheckBox.d.ts +142 -0
  16. package/dist/api/form/PDFDropdown.d.ts +402 -0
  17. package/dist/api/form/PDFField.d.ts +203 -0
  18. package/dist/api/form/PDFForm.d.ts +411 -0
  19. package/dist/api/form/PDFOptionList.d.ts +335 -0
  20. package/dist/api/form/PDFRadioGroup.d.ts +252 -0
  21. package/dist/api/form/PDFSignature.d.ts +29 -0
  22. package/dist/api/form/PDFTextField.d.ts +537 -0
  23. package/dist/api/form/appearances.d.ts +41 -0
  24. package/dist/api/image/alignment.d.ts +5 -0
  25. package/dist/api/objects.d.ts +4 -0
  26. package/dist/api/operations.d.ts +226 -0
  27. package/dist/api/operators.d.ts +90 -0
  28. package/dist/api/rotations.d.ts +38 -0
  29. package/dist/api/sizes.d.ts +52 -0
  30. package/dist/api/svg.d.ts +70 -0
  31. package/dist/api/svgPath.d.ts +2 -0
  32. package/dist/api/text/alignment.d.ts +5 -0
  33. package/dist/api/text/layout.d.ts +54 -0
  34. package/dist/core/PDFContext.d.ts +84 -0
  35. package/dist/core/PDFObjectCopier.d.ts +37 -0
  36. package/dist/core/acroform/PDFAcroButton.d.ts +21 -0
  37. package/dist/core/acroform/PDFAcroCheckBox.d.ts +13 -0
  38. package/dist/core/acroform/PDFAcroChoice.d.ts +20 -0
  39. package/dist/core/acroform/PDFAcroComboBox.d.ts +9 -0
  40. package/dist/core/acroform/PDFAcroField.d.ts +36 -0
  41. package/dist/core/acroform/PDFAcroForm.d.ts +20 -0
  42. package/dist/core/acroform/PDFAcroListBox.d.ts +9 -0
  43. package/dist/core/acroform/PDFAcroNonTerminal.d.ts +13 -0
  44. package/dist/core/acroform/PDFAcroPushButton.d.ts +9 -0
  45. package/dist/core/acroform/PDFAcroRadioButton.d.ts +13 -0
  46. package/{src/core/acroform/PDFAcroSignature.ts → dist/core/acroform/PDFAcroSignature.d.ts} +2 -4
  47. package/dist/core/acroform/PDFAcroTerminal.d.ts +16 -0
  48. package/dist/core/acroform/PDFAcroText.d.ts +22 -0
  49. package/dist/core/acroform/flags.d.ts +141 -0
  50. package/dist/core/acroform/utils.d.ts +6 -0
  51. package/dist/core/annotation/AppearanceCharacteristics.d.ts +33 -0
  52. package/dist/core/annotation/BorderStyle.d.ts +11 -0
  53. package/dist/core/annotation/PDFAnnotation.d.ts +51 -0
  54. package/dist/core/annotation/PDFWidgetAnnotation.d.ts +26 -0
  55. package/dist/core/annotation/flags.d.ts +79 -0
  56. package/dist/core/crypto.d.ts +95 -0
  57. package/dist/core/document/PDFCrossRefSection.d.ts +27 -0
  58. package/dist/core/document/PDFHeader.d.ts +10 -0
  59. package/dist/core/document/PDFTrailer.d.ts +9 -0
  60. package/dist/core/document/PDFTrailerDict.d.ts +10 -0
  61. package/dist/core/embedders/CMap.d.ts +3 -0
  62. package/dist/core/embedders/CustomFontEmbedder.d.ts +44 -0
  63. package/dist/core/embedders/CustomFontSubsetEmbedder.d.ts +20 -0
  64. package/dist/core/embedders/FileEmbedder.d.ts +33 -0
  65. package/dist/core/embedders/FontFlags.d.ts +13 -0
  66. package/dist/core/embedders/JavaScriptEmbedder.d.ts +10 -0
  67. package/dist/core/embedders/JpegEmbedder.d.ts +23 -0
  68. package/dist/core/embedders/PDFPageEmbedder.d.ts +37 -0
  69. package/dist/core/embedders/PngEmbedder.d.ts +19 -0
  70. package/dist/core/embedders/StandardFontEmbedder.d.ts +36 -0
  71. package/dist/core/errors.d.ts +94 -0
  72. package/{src/core/index.ts → dist/core/index.d.ts} +1 -17
  73. package/dist/core/interactive/ViewerPreferences.d.ts +347 -0
  74. package/dist/core/objects/PDFArray.d.ts +63 -0
  75. package/dist/core/objects/PDFBool.d.ts +13 -0
  76. package/dist/core/objects/PDFDict.d.ts +62 -0
  77. package/dist/core/objects/PDFHexString.d.ts +16 -0
  78. package/dist/core/objects/PDFInvalidObject.d.ts +11 -0
  79. package/dist/core/objects/PDFName.d.ts +41 -0
  80. package/dist/core/objects/PDFNull.d.ts +10 -0
  81. package/dist/core/objects/PDFNumber.d.ts +15 -0
  82. package/dist/core/objects/PDFObject.d.ts +8 -0
  83. package/dist/core/objects/PDFRawStream.d.ts +16 -0
  84. package/dist/core/objects/PDFRef.d.ts +13 -0
  85. package/dist/core/objects/PDFStream.d.ts +16 -0
  86. package/dist/core/objects/PDFString.d.ts +16 -0
  87. package/dist/core/operators/PDFOperator.d.ts +19 -0
  88. package/dist/core/operators/PDFOperatorNames.d.ts +76 -0
  89. package/dist/core/parser/BaseParser.d.ts +14 -0
  90. package/dist/core/parser/ByteStream.d.ts +26 -0
  91. package/dist/core/parser/PDFObjectParser.d.ts +31 -0
  92. package/dist/core/parser/PDFObjectStreamParser.d.ts +13 -0
  93. package/dist/core/parser/PDFParser.d.ts +46 -0
  94. package/dist/core/parser/PDFXRefStreamParser.d.ts +21 -0
  95. package/dist/core/streams/Ascii85Stream.d.ts +9 -0
  96. package/dist/core/streams/AsciiHexStream.d.ts +9 -0
  97. package/dist/core/streams/DecodeStream.d.ts +26 -0
  98. package/dist/core/streams/DecryptStream.d.ts +12 -0
  99. package/dist/core/streams/FlateStream.d.ts +13 -0
  100. package/dist/core/streams/LZWStream.d.ts +12 -0
  101. package/dist/core/streams/RunLengthStream.d.ts +8 -0
  102. package/dist/core/streams/Stream.d.ts +34 -0
  103. package/dist/core/streams/decode.d.ts +3 -0
  104. package/dist/core/structures/PDFCatalog.d.ts +27 -0
  105. package/dist/core/structures/PDFContentStream.d.ts +15 -0
  106. package/dist/core/structures/PDFCrossRefStream.d.ts +53 -0
  107. package/dist/core/structures/PDFFlateStream.d.ts +13 -0
  108. package/dist/core/structures/PDFObjectStream.d.ts +20 -0
  109. package/dist/core/structures/PDFPageLeaf.d.ts +54 -0
  110. package/dist/core/structures/PDFPageTree.d.ts +41 -0
  111. package/dist/core/syntax/CharCodes.d.ts +61 -0
  112. package/dist/core/syntax/Delimiters.d.ts +1 -0
  113. package/dist/core/syntax/Irregular.d.ts +1 -0
  114. package/dist/core/syntax/Keywords.d.ts +22 -0
  115. package/dist/core/syntax/Numeric.d.ts +3 -0
  116. package/dist/core/syntax/Whitespace.d.ts +1 -0
  117. package/dist/core/writers/PDFStreamWriter.d.ts +19 -0
  118. package/dist/core/writers/PDFWriter.d.ts +29 -0
  119. package/dist/index.js +19124 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/types/fontkit.d.ts +597 -0
  122. package/{src/types/index.ts → dist/types/index.d.ts} +8 -13
  123. package/{src/types/matrix.ts → dist/types/matrix.d.ts} +1 -2
  124. package/dist/utils/Cache.d.ts +10 -0
  125. package/dist/utils/arrays.d.ts +16 -0
  126. package/dist/utils/async.d.ts +5 -0
  127. package/dist/utils/base64.d.ts +10 -0
  128. package/dist/utils/elements/Arc.d.ts +22 -0
  129. package/dist/utils/elements/Circle.d.ts +14 -0
  130. package/dist/utils/elements/Ellipse.d.ts +20 -0
  131. package/dist/utils/elements/GraphElement.d.ts +6 -0
  132. package/dist/utils/elements/Line.d.ts +23 -0
  133. package/dist/utils/elements/Plot.d.ts +11 -0
  134. package/dist/utils/elements/Point.d.ts +18 -0
  135. package/dist/utils/elements/Rectangle.d.ts +21 -0
  136. package/dist/utils/elements/Segment.d.ts +19 -0
  137. package/dist/utils/errors.d.ts +1 -0
  138. package/dist/utils/intersections.d.ts +9 -0
  139. package/dist/utils/maths.d.ts +45 -0
  140. package/dist/utils/numbers.d.ts +23 -0
  141. package/dist/utils/objects.d.ts +15 -0
  142. package/dist/utils/pdfDocEncoding.d.ts +7 -0
  143. package/dist/utils/png.d.ts +17 -0
  144. package/dist/utils/rng.d.ts +13 -0
  145. package/dist/utils/strings.d.ts +25 -0
  146. package/{src/utils/unicode.ts → dist/utils/unicode.d.ts} +8 -195
  147. package/dist/utils/validators.d.ts +26 -0
  148. package/package.json +6 -1
  149. package/__tests__/api/PDFDocument.spec.ts +0 -576
  150. package/__tests__/api/PDFImage.spec.ts +0 -60
  151. package/__tests__/api/PDFPage.spec.ts +0 -151
  152. package/__tests__/api/form/PDFCheckBox.spec.ts +0 -71
  153. package/__tests__/api/form/PDFDropdown.spec.ts +0 -118
  154. package/__tests__/api/form/PDFForm.spec.ts +0 -370
  155. package/__tests__/api/form/PDFOptionList.spec.ts +0 -104
  156. package/__tests__/api/form/PDFRadioGroup.spec.ts +0 -183
  157. package/__tests__/api/form/PDFTextField.spec.ts +0 -148
  158. package/__tests__/api/svgPath.spec.ts +0 -153
  159. package/__tests__/api/text/layout.spec.ts +0 -166
  160. package/__tests__/core/PDFContext.spec.ts +0 -194
  161. package/__tests__/core/PDFObjectCopier.spec.ts +0 -421
  162. package/__tests__/core/acroform/PDFAcroField.spec.ts +0 -98
  163. package/__tests__/core/acroform/PDFAcroTerminal.spec.ts +0 -39
  164. package/__tests__/core/annotation/PDFWidgetAnnotation.spec.ts +0 -40
  165. package/__tests__/core/document/PDFCrossRefSection.spec.ts +0 -88
  166. package/__tests__/core/document/PDFHeader.spec.ts +0 -22
  167. package/__tests__/core/document/PDFTrailer.spec.ts +0 -28
  168. package/__tests__/core/document/PDFTrailerDict.spec.ts +0 -24
  169. package/__tests__/core/embedders/CMap.spec.ts +0 -47
  170. package/__tests__/core/embedders/CustomFontEmbedder.spec.ts +0 -96
  171. package/__tests__/core/embedders/CustomFontSubsetEmbedder.spec.ts +0 -62
  172. package/__tests__/core/embedders/FileEmbedder.spec.ts +0 -54
  173. package/__tests__/core/embedders/JpegEmbedder.spec.ts +0 -67
  174. package/__tests__/core/embedders/PDFPageEmbedder.spec.ts +0 -65
  175. package/__tests__/core/embedders/PngEmbedder.spec.ts +0 -87
  176. package/__tests__/core/embedders/StandardFontEmbedder.spec.ts +0 -79
  177. package/__tests__/core/embedders/data/SourceHanSerifJP-Regular.otf.cmap +0 -16096
  178. package/__tests__/core/embedders/data/Ubuntu-R.ttf.cmap +0 -1211
  179. package/__tests__/core/objects/PDFArray.spec.ts +0 -134
  180. package/__tests__/core/objects/PDFBool.spec.ts +0 -42
  181. package/__tests__/core/objects/PDFDict.spec.ts +0 -195
  182. package/__tests__/core/objects/PDFHexString.spec.ts +0 -168
  183. package/__tests__/core/objects/PDFInvalidObject.spec.ts +0 -32
  184. package/__tests__/core/objects/PDFName.spec.ts +0 -122
  185. package/__tests__/core/objects/PDFNull.spec.ts +0 -30
  186. package/__tests__/core/objects/PDFNumber.spec.ts +0 -50
  187. package/__tests__/core/objects/PDFObject.spec.ts +0 -29
  188. package/__tests__/core/objects/PDFRawStream.spec.ts +0 -45
  189. package/__tests__/core/objects/PDFRef.spec.ts +0 -60
  190. package/__tests__/core/objects/PDFString.spec.ts +0 -237
  191. package/__tests__/core/operators/PDFOperator.spec.ts +0 -77
  192. package/__tests__/core/parser/PDFObjectParser.spec.ts +0 -730
  193. package/__tests__/core/parser/PDFObjectStreamParser.spec.ts +0 -158
  194. package/__tests__/core/parser/PDFParser.spec.ts +0 -398
  195. package/__tests__/core/parser/PDFXRefStreamParser.spec.ts +0 -187
  196. package/__tests__/core/parser/data/object-stream-invalid +0 -2
  197. package/__tests__/core/parser/data/object-stream1 +0 -16
  198. package/__tests__/core/parser/data/object-stream2 +0 -10
  199. package/__tests__/core/parser/data/object-stream3 +0 -0
  200. package/__tests__/core/parser/data/object-stream4 +0 -0
  201. package/__tests__/core/parser/data/xref-stream1 +0 -0
  202. package/__tests__/core/parser/data/xref-stream2 +0 -0
  203. package/__tests__/core/parser/data/xref-stream3 +0 -0
  204. package/__tests__/core/parser/data/xref-stream4 +0 -0
  205. package/__tests__/core/streams/Ascii85Stream.spec.ts +0 -20
  206. package/__tests__/core/streams/AsciiHexStream.spec.ts +0 -20
  207. package/__tests__/core/streams/FlateStream.spec.ts +0 -20
  208. package/__tests__/core/streams/LZWStream.spec.ts +0 -20
  209. package/__tests__/core/streams/RunLengthStream.spec.ts +0 -20
  210. package/__tests__/core/streams/Stream.spec.ts +0 -128
  211. package/__tests__/core/streams/data/ascii85/1.decoded +0 -0
  212. package/__tests__/core/streams/data/ascii85/1.encoded +0 -43
  213. package/__tests__/core/streams/data/asciihex/1.decoded +0 -1
  214. package/__tests__/core/streams/data/asciihex/1.encoded +0 -1
  215. package/__tests__/core/streams/data/asciihex/2.decoded +0 -7
  216. package/__tests__/core/streams/data/asciihex/2.encoded +0 -1
  217. package/__tests__/core/streams/data/flate/1.corrupt.encoded +0 -1
  218. package/__tests__/core/streams/data/flate/1.decoded +0 -0
  219. package/__tests__/core/streams/data/flate/1.encoded +0 -2
  220. package/__tests__/core/streams/data/flate/2.decoded +0 -33
  221. package/__tests__/core/streams/data/flate/2.encoded +0 -0
  222. package/__tests__/core/streams/data/flate/3.decoded +0 -15
  223. package/__tests__/core/streams/data/flate/3.encoded +0 -0
  224. package/__tests__/core/streams/data/flate/4.decoded +0 -16
  225. package/__tests__/core/streams/data/flate/4.encoded +0 -0
  226. package/__tests__/core/streams/data/flate/5.decoded +0 -0
  227. package/__tests__/core/streams/data/flate/5.encoded +0 -0
  228. package/__tests__/core/streams/data/flate/6.decoded +0 -17
  229. package/__tests__/core/streams/data/flate/6.encoded +0 -0
  230. package/__tests__/core/streams/data/flate/7.decoded +0 -20
  231. package/__tests__/core/streams/data/flate/7.encoded +0 -1
  232. package/__tests__/core/streams/data/lzw/1.decoded +0 -0
  233. package/__tests__/core/streams/data/lzw/1.encoded +0 -0
  234. package/__tests__/core/streams/data/lzw/2.decoded +0 -0
  235. package/__tests__/core/streams/data/lzw/2.encoded +0 -0
  236. package/__tests__/core/streams/data/lzw/3.decoded +0 -14
  237. package/__tests__/core/streams/data/lzw/3.encoded +0 -2
  238. package/__tests__/core/streams/data/lzw/4.decoded +0 -14
  239. package/__tests__/core/streams/data/lzw/4.encoded +0 -2
  240. package/__tests__/core/streams/data/runlength/1.decoded +0 -1
  241. package/__tests__/core/streams/data/runlength/1.encoded +0 -1
  242. package/__tests__/core/streams/data/runlength/2.decoded +0 -1
  243. package/__tests__/core/streams/data/runlength/2.encoded +0 -1
  244. package/__tests__/core/streams/data/runlength/3.decoded +0 -0
  245. package/__tests__/core/streams/data/runlength/3.encoded +0 -0
  246. package/__tests__/core/streams/data/runlength/4.decoded +0 -1
  247. package/__tests__/core/streams/data/runlength/4.encoded +0 -1
  248. package/__tests__/core/streams/data/runlength/5.decoded +0 -1
  249. package/__tests__/core/streams/data/runlength/5.encoded +0 -1
  250. package/__tests__/core/streams/data/runlength/empty.encoded +0 -1
  251. package/__tests__/core/structures/PDFCatalog.spec.ts +0 -108
  252. package/__tests__/core/structures/PDFContentStream.spec.ts +0 -117
  253. package/__tests__/core/structures/PDFCrossRefStream.spec.ts +0 -145
  254. package/__tests__/core/structures/PDFObjectStream.spec.ts +0 -138
  255. package/__tests__/core/structures/PDFPageLeaf.spec.ts +0 -355
  256. package/__tests__/core/structures/PDFPageTree.spec.ts +0 -592
  257. package/__tests__/core/writers/PDFStreamWriter.spec.ts +0 -71
  258. package/__tests__/core/writers/PDFWriter.spec.ts +0 -144
  259. package/__tests__/core/writers/data/stream-writer-1.pdf +0 -0
  260. package/__tests__/index.test.ts +0 -12
  261. package/__tests__/utils/base64.spec.ts +0 -61
  262. package/__tests__/utils/data/simple.pdf +0 -201
  263. package/__tests__/utils/data/simple.pdf.base64 +0 -1
  264. package/__tests__/utils/pdfDocEncoding.spec.ts +0 -82
  265. package/__tests__/utils/png.spec.ts +0 -53
  266. package/__tests__/utils/rng.spec.ts +0 -14
  267. package/__tests__/utils/strings.spec.ts +0 -98
  268. package/__tests__/utils/unicode.spec.ts +0 -337
  269. package/assets/fonts/source_hans_jp/SourceHanSerifJP-Regular.otf +0 -0
  270. package/assets/fonts/ubuntu/Ubuntu-B.ttf +0 -0
  271. package/assets/fonts/ubuntu/Ubuntu-R.ttf +0 -0
  272. package/assets/images/cat_riding_unicorn.jpg +0 -0
  273. package/assets/images/cmyk_colorspace.jpg +0 -0
  274. package/assets/images/greyscale_bird.png +0 -0
  275. package/assets/images/minions_banana_alpha.png +0 -0
  276. package/assets/images/minions_banana_no_alpha.png +0 -0
  277. package/assets/images/minions_laughing.jpg +0 -0
  278. package/assets/pdfs/bixby_guide.pdf +0 -0
  279. package/assets/pdfs/encrypted_new.pdf +0 -0
  280. package/assets/pdfs/encrypted_old.pdf +0 -0
  281. package/assets/pdfs/fancy_fields.pdf +0 -0
  282. package/assets/pdfs/giraffe.pdf +0 -0
  283. package/assets/pdfs/invalid_root_ref.pdf +0 -0
  284. package/assets/pdfs/just_metadata.pdf +0 -49
  285. package/assets/pdfs/missing_endobj_keyword.pdf +0 -70
  286. package/assets/pdfs/missing_xref_trailer_dict.pdf +0 -141
  287. package/assets/pdfs/normal.pdf +0 -0
  288. package/assets/pdfs/pdf20examples/PDF 2.0 with offset start.pdf +0 -179
  289. package/assets/pdfs/stuff_following_header.pdf +0 -0
  290. package/assets/pdfs/us_constitution.pdf +0 -0
  291. package/assets/pdfs/with_comments.pdf +0 -0
  292. package/assets/pdfs/with_invalid_objects.pdf +0 -53
  293. package/assets/pdfs/with_invalid_stream_EOL.pdf +0 -0
  294. package/assets/pdfs/with_null_parent_entry.pdf +0 -0
  295. package/assets/pdfs/with_signature.pdf +0 -0
  296. package/assets/pdfs/with_update_sections.pdf +0 -0
  297. package/assets/pdfs/with_viewer_prefs.pdf +0 -0
  298. package/assets/pdfs/with_xfa_fields.pdf +0 -0
  299. package/src/api/PDFDocument.ts +0 -1389
  300. package/src/api/PDFDocumentOptions.ts +0 -45
  301. package/src/api/PDFEmbeddedFile.ts +0 -87
  302. package/src/api/PDFEmbeddedPage.ts +0 -100
  303. package/src/api/PDFFont.ts +0 -149
  304. package/src/api/PDFImage.ts +0 -143
  305. package/src/api/PDFJavaScript.ts +0 -75
  306. package/src/api/PDFPage.ts +0 -1604
  307. package/src/api/PDFPageOptions.ts +0 -175
  308. package/src/api/StandardFonts.ts +0 -16
  309. package/src/api/colors.ts +0 -109
  310. package/src/api/errors.ts +0 -110
  311. package/src/api/form/PDFButton.ts +0 -242
  312. package/src/api/form/PDFCheckBox.ts +0 -247
  313. package/src/api/form/PDFDropdown.ts +0 -637
  314. package/src/api/form/PDFField.ts +0 -491
  315. package/src/api/form/PDFForm.ts +0 -842
  316. package/src/api/form/PDFOptionList.ts +0 -555
  317. package/src/api/form/PDFRadioGroup.ts +0 -455
  318. package/src/api/form/PDFSignature.ts +0 -44
  319. package/src/api/form/PDFTextField.ts +0 -811
  320. package/src/api/form/appearances.ts +0 -655
  321. package/src/api/image/alignment.ts +0 -5
  322. package/src/api/objects.ts +0 -10
  323. package/src/api/operations.ts +0 -873
  324. package/src/api/operators.ts +0 -335
  325. package/src/api/rotations.ts +0 -84
  326. package/src/api/sizes.ts +0 -52
  327. package/src/api/svg.ts +0 -888
  328. package/src/api/svgPath.ts +0 -460
  329. package/src/api/text/alignment.ts +0 -5
  330. package/src/api/text/layout.ts +0 -328
  331. package/src/core/PDFContext.ts +0 -274
  332. package/src/core/PDFObjectCopier.ts +0 -142
  333. package/src/core/acroform/PDFAcroButton.ts +0 -104
  334. package/src/core/acroform/PDFAcroCheckBox.ts +0 -48
  335. package/src/core/acroform/PDFAcroChoice.ts +0 -143
  336. package/src/core/acroform/PDFAcroComboBox.ts +0 -21
  337. package/src/core/acroform/PDFAcroField.ts +0 -168
  338. package/src/core/acroform/PDFAcroForm.ts +0 -96
  339. package/src/core/acroform/PDFAcroListBox.ts +0 -19
  340. package/src/core/acroform/PDFAcroNonTerminal.ts +0 -33
  341. package/src/core/acroform/PDFAcroPushButton.ts +0 -21
  342. package/src/core/acroform/PDFAcroRadioButton.ts +0 -57
  343. package/src/core/acroform/PDFAcroTerminal.ts +0 -70
  344. package/src/core/acroform/PDFAcroText.ts +0 -76
  345. package/src/core/acroform/flags.ts +0 -162
  346. package/src/core/acroform/utils.ts +0 -129
  347. package/src/core/annotation/AppearanceCharacteristics.ts +0 -133
  348. package/src/core/annotation/BorderStyle.ts +0 -31
  349. package/src/core/annotation/PDFAnnotation.ts +0 -148
  350. package/src/core/annotation/PDFWidgetAnnotation.ts +0 -111
  351. package/src/core/annotation/flags.ts +0 -90
  352. package/src/core/crypto.ts +0 -1844
  353. package/src/core/document/PDFCrossRefSection.ts +0 -161
  354. package/src/core/document/PDFHeader.ts +0 -48
  355. package/src/core/document/PDFTrailer.ts +0 -48
  356. package/src/core/document/PDFTrailerDict.ts +0 -39
  357. package/src/core/embedders/CMap.ts +0 -65
  358. package/src/core/embedders/CustomFontEmbedder.ts +0 -237
  359. package/src/core/embedders/CustomFontSubsetEmbedder.ts +0 -89
  360. package/src/core/embedders/FileEmbedder.ts +0 -77
  361. package/src/core/embedders/FontFlags.ts +0 -45
  362. package/src/core/embedders/JavaScriptEmbedder.ts +0 -34
  363. package/src/core/embedders/JpegEmbedder.ts +0 -118
  364. package/src/core/embedders/PDFPageEmbedder.ts +0 -139
  365. package/src/core/embedders/PngEmbedder.ts +0 -69
  366. package/src/core/embedders/StandardFontEmbedder.ts +0 -121
  367. package/src/core/errors.ts +0 -226
  368. package/src/core/interactive/ViewerPreferences.ts +0 -565
  369. package/src/core/objects/PDFArray.ts +0 -179
  370. package/src/core/objects/PDFBool.ts +0 -53
  371. package/src/core/objects/PDFDict.ts +0 -220
  372. package/src/core/objects/PDFHexString.ts +0 -94
  373. package/src/core/objects/PDFInvalidObject.ts +0 -34
  374. package/src/core/objects/PDFName.ts +0 -152
  375. package/src/core/objects/PDFNull.ts +0 -30
  376. package/src/core/objects/PDFNumber.ts +0 -44
  377. package/src/core/objects/PDFObject.ts +0 -22
  378. package/src/core/objects/PDFRawStream.ts +0 -41
  379. package/src/core/objects/PDFRef.ts +0 -51
  380. package/src/core/objects/PDFStream.ts +0 -87
  381. package/src/core/objects/PDFString.ts +0 -118
  382. package/src/core/operators/PDFOperator.ts +0 -72
  383. package/src/core/operators/PDFOperatorNames.ts +0 -92
  384. package/src/core/parser/BaseParser.ts +0 -119
  385. package/src/core/parser/ByteStream.ts +0 -76
  386. package/src/core/parser/PDFObjectParser.ts +0 -302
  387. package/src/core/parser/PDFObjectStreamParser.ts +0 -65
  388. package/src/core/parser/PDFParser.ts +0 -363
  389. package/src/core/parser/PDFXRefStreamParser.ts +0 -129
  390. package/src/core/streams/Ascii85Stream.ts +0 -97
  391. package/src/core/streams/AsciiHexStream.ts +0 -77
  392. package/src/core/streams/DecodeStream.ts +0 -188
  393. package/src/core/streams/DecryptStream.ts +0 -49
  394. package/src/core/streams/FlateStream.ts +0 -397
  395. package/src/core/streams/LZWStream.ts +0 -157
  396. package/src/core/streams/RunLengthStream.ts +0 -55
  397. package/src/core/streams/Stream.ts +0 -126
  398. package/src/core/streams/decode.ts +0 -70
  399. package/src/core/structures/PDFCatalog.ts +0 -81
  400. package/src/core/structures/PDFContentStream.ts +0 -58
  401. package/src/core/structures/PDFCrossRefStream.ts +0 -238
  402. package/src/core/structures/PDFFlateStream.ts +0 -40
  403. package/src/core/structures/PDFObjectStream.ts +0 -91
  404. package/src/core/structures/PDFPageLeaf.ts +0 -244
  405. package/src/core/structures/PDFPageTree.ts +0 -192
  406. package/src/core/syntax/CharCodes.ts +0 -62
  407. package/src/core/syntax/Delimiters.ts +0 -14
  408. package/src/core/syntax/Irregular.ts +0 -10
  409. package/src/core/syntax/Keywords.ts +0 -57
  410. package/src/core/syntax/Numeric.ts +0 -26
  411. package/src/core/syntax/Whitespace.ts +0 -10
  412. package/src/core/writers/PDFStreamWriter.ts +0 -114
  413. package/src/core/writers/PDFWriter.ts +0 -146
  414. package/src/types/fontkit.ts +0 -643
  415. package/src/utils/Cache.ts +0 -26
  416. package/src/utils/arrays.ts +0 -153
  417. package/src/utils/async.ts +0 -8
  418. package/src/utils/base64.ts +0 -98
  419. package/src/utils/elements/Arc.ts +0 -97
  420. package/src/utils/elements/Circle.ts +0 -47
  421. package/src/utils/elements/Ellipse.ts +0 -117
  422. package/src/utils/elements/GraphElement.ts +0 -14
  423. package/src/utils/elements/Line.ts +0 -83
  424. package/src/utils/elements/Plot.ts +0 -50
  425. package/src/utils/elements/Point.ts +0 -37
  426. package/src/utils/elements/Rectangle.ts +0 -65
  427. package/src/utils/elements/Segment.ts +0 -81
  428. package/src/utils/errors.ts +0 -3
  429. package/src/utils/intersections.ts +0 -237
  430. package/src/utils/maths.ts +0 -96
  431. package/src/utils/numbers.ts +0 -55
  432. package/src/utils/objects.ts +0 -13
  433. package/src/utils/pdfDocEncoding.ts +0 -69
  434. package/src/utils/png.ts +0 -100
  435. package/src/utils/rng.ts +0 -21
  436. package/src/utils/strings.ts +0 -191
  437. package/src/utils/validators.ts +0 -192
  438. package/tsconfig.build.json +0 -14
  439. package/tsconfig.json +0 -15
  440. package/vite.config.mts +0 -39
  441. /package/{src/api/form/index.ts → dist/api/form/index.d.ts} +0 -0
  442. /package/{src/api/image/index.ts → dist/api/image/index.d.ts} +0 -0
  443. /package/{src/api/index.ts → dist/api/index.d.ts} +0 -0
  444. /package/{src/api/text/index.ts → dist/api/text/index.d.ts} +0 -0
  445. /package/{src/core/acroform/index.ts → dist/core/acroform/index.d.ts} +0 -0
  446. /package/{src/core/annotation/index.ts → dist/core/annotation/index.d.ts} +0 -0
  447. /package/{src/index.ts → dist/index.d.ts} +0 -0
  448. /package/{src/utils/elements/index.ts → dist/utils/elements/index.d.ts} +0 -0
  449. /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
@@ -1,491 +0,0 @@
1
- import PDFDocument from '../PDFDocument';
2
- import PDFFont from '../PDFFont';
3
- import { AppearanceMapping } from './appearances';
4
- import { Color, colorToComponents, setFillingColor } from '../colors';
5
- import {
6
- Rotation,
7
- toDegrees,
8
- rotateRectangle,
9
- reduceRotation,
10
- adjustDimsForRotation,
11
- degrees,
12
- } from '../rotations';
13
-
14
- import {
15
- PDFRef,
16
- PDFWidgetAnnotation,
17
- PDFOperator,
18
- PDFName,
19
- PDFDict,
20
- MethodNotImplementedError,
21
- AcroFieldFlags,
22
- PDFAcroTerminal,
23
- AnnotationFlags,
24
- } from '../../core';
25
- import { assertIs, assertMultiple, assertOrUndefined } from '../../utils';
26
- import { ImageAlignment } from '../image';
27
- import PDFImage from '../PDFImage';
28
- import { drawImage, rotateInPlace } from '../operations';
29
-
30
- export interface FieldAppearanceOptions {
31
- x?: number;
32
- y?: number;
33
- width?: number;
34
- height?: number;
35
- textColor?: Color;
36
- backgroundColor?: Color;
37
- borderColor?: Color;
38
- borderWidth?: number;
39
- rotate?: Rotation;
40
- font?: PDFFont;
41
- hidden?: boolean;
42
- }
43
-
44
- export const assertFieldAppearanceOptions = (options?: FieldAppearanceOptions) => {
45
- assertOrUndefined(options?.x, 'options.x', ['number']);
46
- assertOrUndefined(options?.y, 'options.y', ['number']);
47
- assertOrUndefined(options?.width, 'options.width', ['number']);
48
- assertOrUndefined(options?.height, 'options.height', ['number']);
49
- assertOrUndefined(options?.textColor, 'options.textColor', [[Object, 'Color']]);
50
- assertOrUndefined(options?.backgroundColor, 'options.backgroundColor', [[Object, 'Color']]);
51
- assertOrUndefined(options?.borderColor, 'options.borderColor', [[Object, 'Color']]);
52
- assertOrUndefined(options?.borderWidth, 'options.borderWidth', ['number']);
53
- assertOrUndefined(options?.rotate, 'options.rotate', [[Object, 'Rotation']]);
54
- };
55
-
56
- /**
57
- * Represents a field of a [[PDFForm]].
58
- *
59
- * This class is effectively abstract. All fields in a [[PDFForm]] will
60
- * actually be an instance of a subclass of this class.
61
- *
62
- * Note that each field in a PDF is represented by a single field object.
63
- * However, a given field object may be rendered at multiple locations within
64
- * the document (across one or more pages). The rendering of a field is
65
- * controlled by its widgets. Each widget causes its field to be displayed at a
66
- * particular location in the document.
67
- *
68
- * Most of the time each field in a PDF has only a single widget, and thus is
69
- * only rendered once. However, if a field is rendered multiple times, it will
70
- * have multiple widgets - one for each location it is rendered.
71
- *
72
- * This abstraction of field objects and widgets is defined in the PDF
73
- * specification and dictates how PDF files store fields and where they are
74
- * to be rendered.
75
- */
76
- export default class PDFField {
77
- /** The low-level PDFAcroTerminal wrapped by this field. */
78
- readonly acroField: PDFAcroTerminal;
79
-
80
- /** The unique reference assigned to this field within the document. */
81
- readonly ref: PDFRef;
82
-
83
- /** The document to which this field belongs. */
84
- readonly doc: PDFDocument;
85
-
86
- protected constructor(acroField: PDFAcroTerminal, ref: PDFRef, doc: PDFDocument) {
87
- assertIs(acroField, 'acroField', [[PDFAcroTerminal, 'PDFAcroTerminal']]);
88
- assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);
89
- assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);
90
-
91
- this.acroField = acroField;
92
- this.ref = ref;
93
- this.doc = doc;
94
- }
95
-
96
- /**
97
- * Get the fully qualified name of this field. For example:
98
- * ```js
99
- * const fields = form.getFields()
100
- * fields.forEach(field => {
101
- * const name = field.getName()
102
- * console.log('Field name:', name)
103
- * })
104
- * ```
105
- * Note that PDF fields are structured as a tree. Each field is the
106
- * descendent of a series of ancestor nodes all the way up to the form node,
107
- * which is always the root of the tree. Each node in the tree (except for
108
- * the form node) has a partial name. Partial names can be composed of any
109
- * unicode characters except a period (`.`). The fully qualified name of a
110
- * field is composed of the partial names of all its ancestors joined
111
- * with periods. This means that splitting the fully qualified name on
112
- * periods and taking the last element of the resulting array will give you
113
- * the partial name of a specific field.
114
- * @returns The fully qualified name of this field.
115
- */
116
- getName(): string {
117
- return this.acroField.getFullyQualifiedName() ?? '';
118
- }
119
-
120
- /**
121
- * Returns `true` if this field is read only. This means that PDF readers
122
- * will not allow users to interact with the field or change its value. See
123
- * [[PDFField.enableReadOnly]] and [[PDFField.disableReadOnly]].
124
- * For example:
125
- * ```js
126
- * const field = form.getField('some.field')
127
- * if (field.isReadOnly()) console.log('Read only is enabled')
128
- * ```
129
- * @returns Whether or not this is a read only field.
130
- */
131
- isReadOnly(): boolean {
132
- return this.acroField.hasFlag(AcroFieldFlags.ReadOnly);
133
- }
134
-
135
- /**
136
- * Prevent PDF readers from allowing users to interact with this field or
137
- * change its value. The field will not respond to mouse or keyboard input.
138
- * For example:
139
- * ```js
140
- * const field = form.getField('some.field')
141
- * field.enableReadOnly()
142
- * ```
143
- * Useful for fields whose values are computed, imported from a database, or
144
- * prefilled by software before being displayed to the user.
145
- */
146
- enableReadOnly() {
147
- this.acroField.setFlagTo(AcroFieldFlags.ReadOnly, true);
148
- }
149
-
150
- /**
151
- * Allow users to interact with this field and change its value in PDF
152
- * readers via mouse and keyboard input. For example:
153
- * ```js
154
- * const field = form.getField('some.field')
155
- * field.disableReadOnly()
156
- * ```
157
- */
158
- disableReadOnly() {
159
- this.acroField.setFlagTo(AcroFieldFlags.ReadOnly, false);
160
- }
161
-
162
- /**
163
- * Returns `true` if this field must have a value when the form is submitted.
164
- * See [[PDFField.enableRequired]] and [[PDFField.disableRequired]].
165
- * For example:
166
- * ```js
167
- * const field = form.getField('some.field')
168
- * if (field.isRequired()) console.log('Field is required')
169
- * ```
170
- * @returns Whether or not this field is required.
171
- */
172
- isRequired(): boolean {
173
- return this.acroField.hasFlag(AcroFieldFlags.Required);
174
- }
175
-
176
- /**
177
- * Require this field to have a value when the form is submitted.
178
- * For example:
179
- * ```js
180
- * const field = form.getField('some.field')
181
- * field.enableRequired()
182
- * ```
183
- */
184
- enableRequired() {
185
- this.acroField.setFlagTo(AcroFieldFlags.Required, true);
186
- }
187
-
188
- /**
189
- * Do not require this field to have a value when the form is submitted.
190
- * For example:
191
- * ```js
192
- * const field = form.getField('some.field')
193
- * field.disableRequired()
194
- * ```
195
- */
196
- disableRequired() {
197
- this.acroField.setFlagTo(AcroFieldFlags.Required, false);
198
- }
199
-
200
- /**
201
- * Returns `true` if this field's value should be exported when the form is
202
- * submitted. See [[PDFField.enableExporting]] and
203
- * [[PDFField.disableExporting]].
204
- * For example:
205
- * ```js
206
- * const field = form.getField('some.field')
207
- * if (field.isExported()) console.log('Exporting is enabled')
208
- * ```
209
- * @returns Whether or not this field's value should be exported.
210
- */
211
- isExported(): boolean {
212
- return !this.acroField.hasFlag(AcroFieldFlags.NoExport);
213
- }
214
-
215
- /**
216
- * Indicate that this field's value should be exported when the form is
217
- * submitted in a PDF reader. For example:
218
- * ```js
219
- * const field = form.getField('some.field')
220
- * field.enableExporting()
221
- * ```
222
- */
223
- enableExporting() {
224
- this.acroField.setFlagTo(AcroFieldFlags.NoExport, false);
225
- }
226
-
227
- /**
228
- * Indicate that this field's value should **not** be exported when the form
229
- * is submitted in a PDF reader. For example:
230
- * ```js
231
- * const field = form.getField('some.field')
232
- * field.disableExporting()
233
- * ```
234
- */
235
- disableExporting() {
236
- this.acroField.setFlagTo(AcroFieldFlags.NoExport, true);
237
- }
238
-
239
- /** @ignore */
240
- needsAppearancesUpdate(): boolean {
241
- throw new MethodNotImplementedError(this.constructor.name, 'needsAppearancesUpdate');
242
- }
243
-
244
- /** @ignore */
245
- defaultUpdateAppearances(_font: PDFFont) {
246
- throw new MethodNotImplementedError(this.constructor.name, 'defaultUpdateAppearances');
247
- }
248
-
249
- protected markAsDirty() {
250
- this.doc.getForm().markFieldAsDirty(this.ref);
251
- }
252
-
253
- protected markAsClean() {
254
- this.doc.getForm().markFieldAsClean(this.ref);
255
- }
256
-
257
- protected isDirty(): boolean {
258
- return this.doc.getForm().fieldIsDirty(this.ref);
259
- }
260
-
261
- protected createWidget(options: {
262
- x: number;
263
- y: number;
264
- width: number;
265
- height: number;
266
- textColor?: Color;
267
- backgroundColor?: Color;
268
- borderColor?: Color;
269
- borderWidth: number;
270
- rotate: Rotation;
271
- caption?: string;
272
- hidden?: boolean;
273
- page?: PDFRef;
274
- }): PDFWidgetAnnotation {
275
- const textColor = options.textColor;
276
- const backgroundColor = options.backgroundColor;
277
- const borderColor = options.borderColor;
278
- const borderWidth = options.borderWidth;
279
- const degreesAngle = toDegrees(options.rotate);
280
- const caption = options.caption;
281
- const x = options.x;
282
- const y = options.y;
283
- const width = options.width + borderWidth;
284
- const height = options.height + borderWidth;
285
- const hidden = Boolean(options.hidden);
286
- const pageRef = options.page;
287
-
288
- assertMultiple(degreesAngle, 'degreesAngle', 90);
289
-
290
- // Create a widget for this field
291
- const widget = PDFWidgetAnnotation.create(this.doc.context, this.ref);
292
-
293
- // Set widget properties
294
- const rect = rotateRectangle({ x, y, width, height }, borderWidth, degreesAngle);
295
- widget.setRectangle(rect);
296
-
297
- if (pageRef) widget.setP(pageRef);
298
-
299
- const ac = widget.getOrCreateAppearanceCharacteristics();
300
- if (backgroundColor) {
301
- ac.setBackgroundColor(colorToComponents(backgroundColor));
302
- }
303
- ac.setRotation(degreesAngle);
304
- if (caption) ac.setCaptions({ normal: caption });
305
- if (borderColor) ac.setBorderColor(colorToComponents(borderColor));
306
-
307
- const bs = widget.getOrCreateBorderStyle();
308
- if (borderWidth !== undefined) bs.setWidth(borderWidth);
309
-
310
- widget.setFlagTo(AnnotationFlags.Print, true);
311
- widget.setFlagTo(AnnotationFlags.Hidden, hidden);
312
- widget.setFlagTo(AnnotationFlags.Invisible, false);
313
-
314
- // Set acrofield properties
315
- if (textColor) {
316
- const da = this.acroField.getDefaultAppearance() ?? '';
317
- const newDa = da + '\n' + setFillingColor(textColor).toString();
318
- this.acroField.setDefaultAppearance(newDa);
319
- }
320
-
321
- return widget;
322
- }
323
-
324
- protected updateWidgetAppearanceWithFont(
325
- widget: PDFWidgetAnnotation,
326
- font: PDFFont,
327
- { normal, rollover, down }: AppearanceMapping<PDFOperator[]>,
328
- ) {
329
- this.updateWidgetAppearances(widget, {
330
- normal: this.createAppearanceStream(widget, normal, font),
331
- rollover: rollover && this.createAppearanceStream(widget, rollover, font),
332
- down: down && this.createAppearanceStream(widget, down, font),
333
- });
334
- }
335
-
336
- protected updateOnOffWidgetAppearance(
337
- widget: PDFWidgetAnnotation,
338
- onValue: PDFName,
339
- { normal, rollover, down }: AppearanceMapping<{ on: PDFOperator[]; off: PDFOperator[] }>,
340
- ) {
341
- this.updateWidgetAppearances(widget, {
342
- normal: this.createAppearanceDict(widget, normal, onValue),
343
- rollover: rollover && this.createAppearanceDict(widget, rollover, onValue),
344
- down: down && this.createAppearanceDict(widget, down, onValue),
345
- });
346
- }
347
-
348
- protected updateWidgetAppearances(
349
- widget: PDFWidgetAnnotation,
350
- { normal, rollover, down }: AppearanceMapping<PDFRef | PDFDict>,
351
- ) {
352
- widget.setNormalAppearance(normal);
353
-
354
- if (rollover) {
355
- widget.setRolloverAppearance(rollover);
356
- } else {
357
- widget.removeRolloverAppearance();
358
- }
359
-
360
- if (down) {
361
- widget.setDownAppearance(down);
362
- } else {
363
- widget.removeDownAppearance();
364
- }
365
- }
366
-
367
- // // TODO: Do we need to do this...?
368
- // private foo(font: PDFFont, dict: PDFDict) {
369
- // if (!dict.lookup(PDFName.of('DR'))) {
370
- // dict.set(PDFName.of('DR'), dict.context.obj({}));
371
- // }
372
- // const DR = dict.lookup(PDFName.of('DR'), PDFDict);
373
-
374
- // if (!DR.lookup(PDFName.of('Font'))) {
375
- // DR.set(PDFName.of('Font'), dict.context.obj({}));
376
- // }
377
- // const Font = DR.lookup(PDFName.of('Font'), PDFDict);
378
-
379
- // Font.set(PDFName.of(font.name), font.ref);
380
- // }
381
-
382
- private createAppearanceStream(
383
- widget: PDFWidgetAnnotation,
384
- appearance: PDFOperator[],
385
- font?: PDFFont,
386
- ): PDFRef {
387
- const { context } = this.acroField.dict;
388
- const { width, height } = widget.getRectangle();
389
-
390
- // TODO: Do we need to do this...?
391
- // if (font) {
392
- // this.foo(font, widget.dict);
393
- // this.foo(font, this.doc.getForm().acroForm.dict);
394
- // }
395
- // END TODO
396
-
397
- const Resources = font && { Font: { [font.name]: font.ref } };
398
- const stream = context.formXObject(appearance, {
399
- Resources,
400
- BBox: context.obj([0, 0, width, height]),
401
- Matrix: context.obj([1, 0, 0, 1, 0, 0]),
402
- });
403
- const streamRef = context.register(stream);
404
-
405
- return streamRef;
406
- }
407
-
408
- /**
409
- * Create a FormXObject of the supplied image and add it to context.
410
- * The FormXObject size is calculated based on the widget (including
411
- * the alignment).
412
- * @param widget The widget that should display the image.
413
- * @param alignment The alignment of the image.
414
- * @param image The image that should be displayed.
415
- * @returns The ref for the FormXObject that was added to the context.
416
- */
417
- protected createImageAppearanceStream(
418
- widget: PDFWidgetAnnotation,
419
- image: PDFImage,
420
- alignment: ImageAlignment,
421
- ): PDFRef {
422
- // NOTE: This implementation doesn't handle image borders.
423
- // NOTE: Acrobat seems to resize the image (maybe even skewing its aspect
424
- // ratio) to fit perfectly within the widget's rectangle. This method
425
- // does not currently do that. Should there be an option for that?
426
-
427
- const { context } = this.acroField.dict;
428
-
429
- const rectangle = widget.getRectangle();
430
- const ap = widget.getAppearanceCharacteristics();
431
- const bs = widget.getBorderStyle();
432
-
433
- const borderWidth = bs?.getWidth() ?? 0;
434
- const rotation = reduceRotation(ap?.getRotation());
435
-
436
- const rotate = rotateInPlace({ ...rectangle, rotation });
437
-
438
- const adj = adjustDimsForRotation(rectangle, rotation);
439
- const imageDims = image.scaleToFit(adj.width - borderWidth * 2, adj.height - borderWidth * 2);
440
-
441
- // Support borders on images and maybe other properties
442
- const options = {
443
- x: borderWidth,
444
- y: borderWidth,
445
- width: imageDims.width,
446
- height: imageDims.height,
447
- //
448
- rotate: degrees(0),
449
- xSkew: degrees(0),
450
- ySkew: degrees(0),
451
- };
452
-
453
- if (alignment === ImageAlignment.Center) {
454
- options.x += (adj.width - borderWidth * 2) / 2 - imageDims.width / 2;
455
- options.y += (adj.height - borderWidth * 2) / 2 - imageDims.height / 2;
456
- } else if (alignment === ImageAlignment.Right) {
457
- options.x = adj.width - borderWidth - imageDims.width;
458
- options.y = adj.height - borderWidth - imageDims.height;
459
- }
460
-
461
- const imageName = this.doc.context.addRandomSuffix('Image', 10);
462
- const appearance = [...rotate, ...drawImage(imageName, options)];
463
- ////////////
464
-
465
- const Resources = { XObject: { [imageName]: image.ref } };
466
- const stream = context.formXObject(appearance, {
467
- Resources,
468
- BBox: context.obj([0, 0, rectangle.width, rectangle.height]),
469
- Matrix: context.obj([1, 0, 0, 1, 0, 0]),
470
- });
471
-
472
- return context.register(stream);
473
- }
474
-
475
- private createAppearanceDict(
476
- widget: PDFWidgetAnnotation,
477
- appearance: { on: PDFOperator[]; off: PDFOperator[] },
478
- onValue: PDFName,
479
- ): PDFDict {
480
- const { context } = this.acroField.dict;
481
-
482
- const onStreamRef = this.createAppearanceStream(widget, appearance.on);
483
- const offStreamRef = this.createAppearanceStream(widget, appearance.off);
484
-
485
- const appearanceDict = context.obj({});
486
- appearanceDict.set(onValue, onStreamRef);
487
- appearanceDict.set(PDFName.of('Off'), offStreamRef);
488
-
489
- return appearanceDict;
490
- }
491
- }