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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/{src/api/Embeddable.ts → dist/api/Embeddable.d.ts} +1 -1
  2. package/dist/api/PDFDocument.d.ts +778 -0
  3. package/dist/api/PDFDocumentOptions.d.ts +38 -0
  4. package/dist/api/PDFEmbeddedFile.d.ts +38 -0
  5. package/dist/api/PDFEmbeddedPage.d.ts +73 -0
  6. package/dist/api/PDFFont.d.ts +94 -0
  7. package/dist/api/PDFImage.d.ts +95 -0
  8. package/dist/api/PDFJavaScript.d.ts +38 -0
  9. package/dist/api/PDFPage.d.ts +910 -0
  10. package/dist/api/PDFPageOptions.d.ts +172 -0
  11. package/dist/api/StandardFonts.d.ts +16 -0
  12. package/dist/api/colors.d.ts +34 -0
  13. package/dist/api/errors.d.ts +42 -0
  14. package/dist/api/form/PDFButton.d.ts +137 -0
  15. package/dist/api/form/PDFCheckBox.d.ts +142 -0
  16. package/dist/api/form/PDFDropdown.d.ts +402 -0
  17. package/dist/api/form/PDFField.d.ts +203 -0
  18. package/dist/api/form/PDFForm.d.ts +411 -0
  19. package/dist/api/form/PDFOptionList.d.ts +335 -0
  20. package/dist/api/form/PDFRadioGroup.d.ts +252 -0
  21. package/dist/api/form/PDFSignature.d.ts +29 -0
  22. package/dist/api/form/PDFTextField.d.ts +537 -0
  23. package/dist/api/form/appearances.d.ts +41 -0
  24. package/dist/api/image/alignment.d.ts +5 -0
  25. package/dist/api/objects.d.ts +4 -0
  26. package/dist/api/operations.d.ts +226 -0
  27. package/dist/api/operators.d.ts +90 -0
  28. package/dist/api/rotations.d.ts +38 -0
  29. package/dist/api/sizes.d.ts +52 -0
  30. package/dist/api/svg.d.ts +70 -0
  31. package/dist/api/svgPath.d.ts +2 -0
  32. package/dist/api/text/alignment.d.ts +5 -0
  33. package/dist/api/text/layout.d.ts +54 -0
  34. package/dist/core/PDFContext.d.ts +84 -0
  35. package/dist/core/PDFObjectCopier.d.ts +37 -0
  36. package/dist/core/acroform/PDFAcroButton.d.ts +21 -0
  37. package/dist/core/acroform/PDFAcroCheckBox.d.ts +13 -0
  38. package/dist/core/acroform/PDFAcroChoice.d.ts +20 -0
  39. package/dist/core/acroform/PDFAcroComboBox.d.ts +9 -0
  40. package/dist/core/acroform/PDFAcroField.d.ts +36 -0
  41. package/dist/core/acroform/PDFAcroForm.d.ts +20 -0
  42. package/dist/core/acroform/PDFAcroListBox.d.ts +9 -0
  43. package/dist/core/acroform/PDFAcroNonTerminal.d.ts +13 -0
  44. package/dist/core/acroform/PDFAcroPushButton.d.ts +9 -0
  45. package/dist/core/acroform/PDFAcroRadioButton.d.ts +13 -0
  46. package/{src/core/acroform/PDFAcroSignature.ts → dist/core/acroform/PDFAcroSignature.d.ts} +2 -4
  47. package/dist/core/acroform/PDFAcroTerminal.d.ts +16 -0
  48. package/dist/core/acroform/PDFAcroText.d.ts +22 -0
  49. package/dist/core/acroform/flags.d.ts +141 -0
  50. package/dist/core/acroform/utils.d.ts +6 -0
  51. package/dist/core/annotation/AppearanceCharacteristics.d.ts +33 -0
  52. package/dist/core/annotation/BorderStyle.d.ts +11 -0
  53. package/dist/core/annotation/PDFAnnotation.d.ts +51 -0
  54. package/dist/core/annotation/PDFWidgetAnnotation.d.ts +26 -0
  55. package/dist/core/annotation/flags.d.ts +79 -0
  56. package/dist/core/crypto.d.ts +95 -0
  57. package/dist/core/document/PDFCrossRefSection.d.ts +27 -0
  58. package/dist/core/document/PDFHeader.d.ts +10 -0
  59. package/dist/core/document/PDFTrailer.d.ts +9 -0
  60. package/dist/core/document/PDFTrailerDict.d.ts +10 -0
  61. package/dist/core/embedders/CMap.d.ts +3 -0
  62. package/dist/core/embedders/CustomFontEmbedder.d.ts +44 -0
  63. package/dist/core/embedders/CustomFontSubsetEmbedder.d.ts +20 -0
  64. package/dist/core/embedders/FileEmbedder.d.ts +33 -0
  65. package/dist/core/embedders/FontFlags.d.ts +13 -0
  66. package/dist/core/embedders/JavaScriptEmbedder.d.ts +10 -0
  67. package/dist/core/embedders/JpegEmbedder.d.ts +23 -0
  68. package/dist/core/embedders/PDFPageEmbedder.d.ts +37 -0
  69. package/dist/core/embedders/PngEmbedder.d.ts +19 -0
  70. package/dist/core/embedders/StandardFontEmbedder.d.ts +36 -0
  71. package/dist/core/errors.d.ts +94 -0
  72. package/{src/core/index.ts → dist/core/index.d.ts} +1 -17
  73. package/dist/core/interactive/ViewerPreferences.d.ts +347 -0
  74. package/dist/core/objects/PDFArray.d.ts +63 -0
  75. package/dist/core/objects/PDFBool.d.ts +13 -0
  76. package/dist/core/objects/PDFDict.d.ts +62 -0
  77. package/dist/core/objects/PDFHexString.d.ts +16 -0
  78. package/dist/core/objects/PDFInvalidObject.d.ts +11 -0
  79. package/dist/core/objects/PDFName.d.ts +41 -0
  80. package/dist/core/objects/PDFNull.d.ts +10 -0
  81. package/dist/core/objects/PDFNumber.d.ts +15 -0
  82. package/dist/core/objects/PDFObject.d.ts +8 -0
  83. package/dist/core/objects/PDFRawStream.d.ts +16 -0
  84. package/dist/core/objects/PDFRef.d.ts +13 -0
  85. package/dist/core/objects/PDFStream.d.ts +16 -0
  86. package/dist/core/objects/PDFString.d.ts +16 -0
  87. package/dist/core/operators/PDFOperator.d.ts +19 -0
  88. package/dist/core/operators/PDFOperatorNames.d.ts +76 -0
  89. package/dist/core/parser/BaseParser.d.ts +14 -0
  90. package/dist/core/parser/ByteStream.d.ts +26 -0
  91. package/dist/core/parser/PDFObjectParser.d.ts +31 -0
  92. package/dist/core/parser/PDFObjectStreamParser.d.ts +13 -0
  93. package/dist/core/parser/PDFParser.d.ts +46 -0
  94. package/dist/core/parser/PDFXRefStreamParser.d.ts +21 -0
  95. package/dist/core/streams/Ascii85Stream.d.ts +9 -0
  96. package/dist/core/streams/AsciiHexStream.d.ts +9 -0
  97. package/dist/core/streams/DecodeStream.d.ts +26 -0
  98. package/dist/core/streams/DecryptStream.d.ts +12 -0
  99. package/dist/core/streams/FlateStream.d.ts +13 -0
  100. package/dist/core/streams/LZWStream.d.ts +12 -0
  101. package/dist/core/streams/RunLengthStream.d.ts +8 -0
  102. package/dist/core/streams/Stream.d.ts +34 -0
  103. package/dist/core/streams/decode.d.ts +3 -0
  104. package/dist/core/structures/PDFCatalog.d.ts +27 -0
  105. package/dist/core/structures/PDFContentStream.d.ts +15 -0
  106. package/dist/core/structures/PDFCrossRefStream.d.ts +53 -0
  107. package/dist/core/structures/PDFFlateStream.d.ts +13 -0
  108. package/dist/core/structures/PDFObjectStream.d.ts +20 -0
  109. package/dist/core/structures/PDFPageLeaf.d.ts +54 -0
  110. package/dist/core/structures/PDFPageTree.d.ts +41 -0
  111. package/dist/core/syntax/CharCodes.d.ts +61 -0
  112. package/dist/core/syntax/Delimiters.d.ts +1 -0
  113. package/dist/core/syntax/Irregular.d.ts +1 -0
  114. package/dist/core/syntax/Keywords.d.ts +22 -0
  115. package/dist/core/syntax/Numeric.d.ts +3 -0
  116. package/dist/core/syntax/Whitespace.d.ts +1 -0
  117. package/dist/core/writers/PDFStreamWriter.d.ts +19 -0
  118. package/dist/core/writers/PDFWriter.d.ts +29 -0
  119. package/dist/index.js +19124 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/types/fontkit.d.ts +597 -0
  122. package/{src/types/index.ts → dist/types/index.d.ts} +8 -13
  123. package/{src/types/matrix.ts → dist/types/matrix.d.ts} +1 -2
  124. package/dist/utils/Cache.d.ts +10 -0
  125. package/dist/utils/arrays.d.ts +16 -0
  126. package/dist/utils/async.d.ts +5 -0
  127. package/dist/utils/base64.d.ts +10 -0
  128. package/dist/utils/elements/Arc.d.ts +22 -0
  129. package/dist/utils/elements/Circle.d.ts +14 -0
  130. package/dist/utils/elements/Ellipse.d.ts +20 -0
  131. package/dist/utils/elements/GraphElement.d.ts +6 -0
  132. package/dist/utils/elements/Line.d.ts +23 -0
  133. package/dist/utils/elements/Plot.d.ts +11 -0
  134. package/dist/utils/elements/Point.d.ts +18 -0
  135. package/dist/utils/elements/Rectangle.d.ts +21 -0
  136. package/dist/utils/elements/Segment.d.ts +19 -0
  137. package/dist/utils/errors.d.ts +1 -0
  138. package/dist/utils/intersections.d.ts +9 -0
  139. package/dist/utils/maths.d.ts +45 -0
  140. package/dist/utils/numbers.d.ts +23 -0
  141. package/dist/utils/objects.d.ts +15 -0
  142. package/dist/utils/pdfDocEncoding.d.ts +7 -0
  143. package/dist/utils/png.d.ts +17 -0
  144. package/dist/utils/rng.d.ts +13 -0
  145. package/dist/utils/strings.d.ts +25 -0
  146. package/{src/utils/unicode.ts → dist/utils/unicode.d.ts} +8 -195
  147. package/dist/utils/validators.d.ts +26 -0
  148. package/package.json +6 -1
  149. package/__tests__/api/PDFDocument.spec.ts +0 -576
  150. package/__tests__/api/PDFImage.spec.ts +0 -60
  151. package/__tests__/api/PDFPage.spec.ts +0 -151
  152. package/__tests__/api/form/PDFCheckBox.spec.ts +0 -71
  153. package/__tests__/api/form/PDFDropdown.spec.ts +0 -118
  154. package/__tests__/api/form/PDFForm.spec.ts +0 -370
  155. package/__tests__/api/form/PDFOptionList.spec.ts +0 -104
  156. package/__tests__/api/form/PDFRadioGroup.spec.ts +0 -183
  157. package/__tests__/api/form/PDFTextField.spec.ts +0 -148
  158. package/__tests__/api/svgPath.spec.ts +0 -153
  159. package/__tests__/api/text/layout.spec.ts +0 -166
  160. package/__tests__/core/PDFContext.spec.ts +0 -194
  161. package/__tests__/core/PDFObjectCopier.spec.ts +0 -421
  162. package/__tests__/core/acroform/PDFAcroField.spec.ts +0 -98
  163. package/__tests__/core/acroform/PDFAcroTerminal.spec.ts +0 -39
  164. package/__tests__/core/annotation/PDFWidgetAnnotation.spec.ts +0 -40
  165. package/__tests__/core/document/PDFCrossRefSection.spec.ts +0 -88
  166. package/__tests__/core/document/PDFHeader.spec.ts +0 -22
  167. package/__tests__/core/document/PDFTrailer.spec.ts +0 -28
  168. package/__tests__/core/document/PDFTrailerDict.spec.ts +0 -24
  169. package/__tests__/core/embedders/CMap.spec.ts +0 -47
  170. package/__tests__/core/embedders/CustomFontEmbedder.spec.ts +0 -96
  171. package/__tests__/core/embedders/CustomFontSubsetEmbedder.spec.ts +0 -62
  172. package/__tests__/core/embedders/FileEmbedder.spec.ts +0 -54
  173. package/__tests__/core/embedders/JpegEmbedder.spec.ts +0 -67
  174. package/__tests__/core/embedders/PDFPageEmbedder.spec.ts +0 -65
  175. package/__tests__/core/embedders/PngEmbedder.spec.ts +0 -87
  176. package/__tests__/core/embedders/StandardFontEmbedder.spec.ts +0 -79
  177. package/__tests__/core/embedders/data/SourceHanSerifJP-Regular.otf.cmap +0 -16096
  178. package/__tests__/core/embedders/data/Ubuntu-R.ttf.cmap +0 -1211
  179. package/__tests__/core/objects/PDFArray.spec.ts +0 -134
  180. package/__tests__/core/objects/PDFBool.spec.ts +0 -42
  181. package/__tests__/core/objects/PDFDict.spec.ts +0 -195
  182. package/__tests__/core/objects/PDFHexString.spec.ts +0 -168
  183. package/__tests__/core/objects/PDFInvalidObject.spec.ts +0 -32
  184. package/__tests__/core/objects/PDFName.spec.ts +0 -122
  185. package/__tests__/core/objects/PDFNull.spec.ts +0 -30
  186. package/__tests__/core/objects/PDFNumber.spec.ts +0 -50
  187. package/__tests__/core/objects/PDFObject.spec.ts +0 -29
  188. package/__tests__/core/objects/PDFRawStream.spec.ts +0 -45
  189. package/__tests__/core/objects/PDFRef.spec.ts +0 -60
  190. package/__tests__/core/objects/PDFString.spec.ts +0 -237
  191. package/__tests__/core/operators/PDFOperator.spec.ts +0 -77
  192. package/__tests__/core/parser/PDFObjectParser.spec.ts +0 -730
  193. package/__tests__/core/parser/PDFObjectStreamParser.spec.ts +0 -158
  194. package/__tests__/core/parser/PDFParser.spec.ts +0 -398
  195. package/__tests__/core/parser/PDFXRefStreamParser.spec.ts +0 -187
  196. package/__tests__/core/parser/data/object-stream-invalid +0 -2
  197. package/__tests__/core/parser/data/object-stream1 +0 -16
  198. package/__tests__/core/parser/data/object-stream2 +0 -10
  199. package/__tests__/core/parser/data/object-stream3 +0 -0
  200. package/__tests__/core/parser/data/object-stream4 +0 -0
  201. package/__tests__/core/parser/data/xref-stream1 +0 -0
  202. package/__tests__/core/parser/data/xref-stream2 +0 -0
  203. package/__tests__/core/parser/data/xref-stream3 +0 -0
  204. package/__tests__/core/parser/data/xref-stream4 +0 -0
  205. package/__tests__/core/streams/Ascii85Stream.spec.ts +0 -20
  206. package/__tests__/core/streams/AsciiHexStream.spec.ts +0 -20
  207. package/__tests__/core/streams/FlateStream.spec.ts +0 -20
  208. package/__tests__/core/streams/LZWStream.spec.ts +0 -20
  209. package/__tests__/core/streams/RunLengthStream.spec.ts +0 -20
  210. package/__tests__/core/streams/Stream.spec.ts +0 -128
  211. package/__tests__/core/streams/data/ascii85/1.decoded +0 -0
  212. package/__tests__/core/streams/data/ascii85/1.encoded +0 -43
  213. package/__tests__/core/streams/data/asciihex/1.decoded +0 -1
  214. package/__tests__/core/streams/data/asciihex/1.encoded +0 -1
  215. package/__tests__/core/streams/data/asciihex/2.decoded +0 -7
  216. package/__tests__/core/streams/data/asciihex/2.encoded +0 -1
  217. package/__tests__/core/streams/data/flate/1.corrupt.encoded +0 -1
  218. package/__tests__/core/streams/data/flate/1.decoded +0 -0
  219. package/__tests__/core/streams/data/flate/1.encoded +0 -2
  220. package/__tests__/core/streams/data/flate/2.decoded +0 -33
  221. package/__tests__/core/streams/data/flate/2.encoded +0 -0
  222. package/__tests__/core/streams/data/flate/3.decoded +0 -15
  223. package/__tests__/core/streams/data/flate/3.encoded +0 -0
  224. package/__tests__/core/streams/data/flate/4.decoded +0 -16
  225. package/__tests__/core/streams/data/flate/4.encoded +0 -0
  226. package/__tests__/core/streams/data/flate/5.decoded +0 -0
  227. package/__tests__/core/streams/data/flate/5.encoded +0 -0
  228. package/__tests__/core/streams/data/flate/6.decoded +0 -17
  229. package/__tests__/core/streams/data/flate/6.encoded +0 -0
  230. package/__tests__/core/streams/data/flate/7.decoded +0 -20
  231. package/__tests__/core/streams/data/flate/7.encoded +0 -1
  232. package/__tests__/core/streams/data/lzw/1.decoded +0 -0
  233. package/__tests__/core/streams/data/lzw/1.encoded +0 -0
  234. package/__tests__/core/streams/data/lzw/2.decoded +0 -0
  235. package/__tests__/core/streams/data/lzw/2.encoded +0 -0
  236. package/__tests__/core/streams/data/lzw/3.decoded +0 -14
  237. package/__tests__/core/streams/data/lzw/3.encoded +0 -2
  238. package/__tests__/core/streams/data/lzw/4.decoded +0 -14
  239. package/__tests__/core/streams/data/lzw/4.encoded +0 -2
  240. package/__tests__/core/streams/data/runlength/1.decoded +0 -1
  241. package/__tests__/core/streams/data/runlength/1.encoded +0 -1
  242. package/__tests__/core/streams/data/runlength/2.decoded +0 -1
  243. package/__tests__/core/streams/data/runlength/2.encoded +0 -1
  244. package/__tests__/core/streams/data/runlength/3.decoded +0 -0
  245. package/__tests__/core/streams/data/runlength/3.encoded +0 -0
  246. package/__tests__/core/streams/data/runlength/4.decoded +0 -1
  247. package/__tests__/core/streams/data/runlength/4.encoded +0 -1
  248. package/__tests__/core/streams/data/runlength/5.decoded +0 -1
  249. package/__tests__/core/streams/data/runlength/5.encoded +0 -1
  250. package/__tests__/core/streams/data/runlength/empty.encoded +0 -1
  251. package/__tests__/core/structures/PDFCatalog.spec.ts +0 -108
  252. package/__tests__/core/structures/PDFContentStream.spec.ts +0 -117
  253. package/__tests__/core/structures/PDFCrossRefStream.spec.ts +0 -145
  254. package/__tests__/core/structures/PDFObjectStream.spec.ts +0 -138
  255. package/__tests__/core/structures/PDFPageLeaf.spec.ts +0 -355
  256. package/__tests__/core/structures/PDFPageTree.spec.ts +0 -592
  257. package/__tests__/core/writers/PDFStreamWriter.spec.ts +0 -71
  258. package/__tests__/core/writers/PDFWriter.spec.ts +0 -144
  259. package/__tests__/core/writers/data/stream-writer-1.pdf +0 -0
  260. package/__tests__/index.test.ts +0 -12
  261. package/__tests__/utils/base64.spec.ts +0 -61
  262. package/__tests__/utils/data/simple.pdf +0 -201
  263. package/__tests__/utils/data/simple.pdf.base64 +0 -1
  264. package/__tests__/utils/pdfDocEncoding.spec.ts +0 -82
  265. package/__tests__/utils/png.spec.ts +0 -53
  266. package/__tests__/utils/rng.spec.ts +0 -14
  267. package/__tests__/utils/strings.spec.ts +0 -98
  268. package/__tests__/utils/unicode.spec.ts +0 -337
  269. package/assets/fonts/source_hans_jp/SourceHanSerifJP-Regular.otf +0 -0
  270. package/assets/fonts/ubuntu/Ubuntu-B.ttf +0 -0
  271. package/assets/fonts/ubuntu/Ubuntu-R.ttf +0 -0
  272. package/assets/images/cat_riding_unicorn.jpg +0 -0
  273. package/assets/images/cmyk_colorspace.jpg +0 -0
  274. package/assets/images/greyscale_bird.png +0 -0
  275. package/assets/images/minions_banana_alpha.png +0 -0
  276. package/assets/images/minions_banana_no_alpha.png +0 -0
  277. package/assets/images/minions_laughing.jpg +0 -0
  278. package/assets/pdfs/bixby_guide.pdf +0 -0
  279. package/assets/pdfs/encrypted_new.pdf +0 -0
  280. package/assets/pdfs/encrypted_old.pdf +0 -0
  281. package/assets/pdfs/fancy_fields.pdf +0 -0
  282. package/assets/pdfs/giraffe.pdf +0 -0
  283. package/assets/pdfs/invalid_root_ref.pdf +0 -0
  284. package/assets/pdfs/just_metadata.pdf +0 -49
  285. package/assets/pdfs/missing_endobj_keyword.pdf +0 -70
  286. package/assets/pdfs/missing_xref_trailer_dict.pdf +0 -141
  287. package/assets/pdfs/normal.pdf +0 -0
  288. package/assets/pdfs/pdf20examples/PDF 2.0 with offset start.pdf +0 -179
  289. package/assets/pdfs/stuff_following_header.pdf +0 -0
  290. package/assets/pdfs/us_constitution.pdf +0 -0
  291. package/assets/pdfs/with_comments.pdf +0 -0
  292. package/assets/pdfs/with_invalid_objects.pdf +0 -53
  293. package/assets/pdfs/with_invalid_stream_EOL.pdf +0 -0
  294. package/assets/pdfs/with_null_parent_entry.pdf +0 -0
  295. package/assets/pdfs/with_signature.pdf +0 -0
  296. package/assets/pdfs/with_update_sections.pdf +0 -0
  297. package/assets/pdfs/with_viewer_prefs.pdf +0 -0
  298. package/assets/pdfs/with_xfa_fields.pdf +0 -0
  299. package/src/api/PDFDocument.ts +0 -1389
  300. package/src/api/PDFDocumentOptions.ts +0 -45
  301. package/src/api/PDFEmbeddedFile.ts +0 -87
  302. package/src/api/PDFEmbeddedPage.ts +0 -100
  303. package/src/api/PDFFont.ts +0 -149
  304. package/src/api/PDFImage.ts +0 -143
  305. package/src/api/PDFJavaScript.ts +0 -75
  306. package/src/api/PDFPage.ts +0 -1604
  307. package/src/api/PDFPageOptions.ts +0 -175
  308. package/src/api/StandardFonts.ts +0 -16
  309. package/src/api/colors.ts +0 -109
  310. package/src/api/errors.ts +0 -110
  311. package/src/api/form/PDFButton.ts +0 -242
  312. package/src/api/form/PDFCheckBox.ts +0 -247
  313. package/src/api/form/PDFDropdown.ts +0 -637
  314. package/src/api/form/PDFField.ts +0 -491
  315. package/src/api/form/PDFForm.ts +0 -842
  316. package/src/api/form/PDFOptionList.ts +0 -555
  317. package/src/api/form/PDFRadioGroup.ts +0 -455
  318. package/src/api/form/PDFSignature.ts +0 -44
  319. package/src/api/form/PDFTextField.ts +0 -811
  320. package/src/api/form/appearances.ts +0 -655
  321. package/src/api/image/alignment.ts +0 -5
  322. package/src/api/objects.ts +0 -10
  323. package/src/api/operations.ts +0 -873
  324. package/src/api/operators.ts +0 -335
  325. package/src/api/rotations.ts +0 -84
  326. package/src/api/sizes.ts +0 -52
  327. package/src/api/svg.ts +0 -888
  328. package/src/api/svgPath.ts +0 -460
  329. package/src/api/text/alignment.ts +0 -5
  330. package/src/api/text/layout.ts +0 -328
  331. package/src/core/PDFContext.ts +0 -274
  332. package/src/core/PDFObjectCopier.ts +0 -142
  333. package/src/core/acroform/PDFAcroButton.ts +0 -104
  334. package/src/core/acroform/PDFAcroCheckBox.ts +0 -48
  335. package/src/core/acroform/PDFAcroChoice.ts +0 -143
  336. package/src/core/acroform/PDFAcroComboBox.ts +0 -21
  337. package/src/core/acroform/PDFAcroField.ts +0 -168
  338. package/src/core/acroform/PDFAcroForm.ts +0 -96
  339. package/src/core/acroform/PDFAcroListBox.ts +0 -19
  340. package/src/core/acroform/PDFAcroNonTerminal.ts +0 -33
  341. package/src/core/acroform/PDFAcroPushButton.ts +0 -21
  342. package/src/core/acroform/PDFAcroRadioButton.ts +0 -57
  343. package/src/core/acroform/PDFAcroTerminal.ts +0 -70
  344. package/src/core/acroform/PDFAcroText.ts +0 -76
  345. package/src/core/acroform/flags.ts +0 -162
  346. package/src/core/acroform/utils.ts +0 -129
  347. package/src/core/annotation/AppearanceCharacteristics.ts +0 -133
  348. package/src/core/annotation/BorderStyle.ts +0 -31
  349. package/src/core/annotation/PDFAnnotation.ts +0 -148
  350. package/src/core/annotation/PDFWidgetAnnotation.ts +0 -111
  351. package/src/core/annotation/flags.ts +0 -90
  352. package/src/core/crypto.ts +0 -1844
  353. package/src/core/document/PDFCrossRefSection.ts +0 -161
  354. package/src/core/document/PDFHeader.ts +0 -48
  355. package/src/core/document/PDFTrailer.ts +0 -48
  356. package/src/core/document/PDFTrailerDict.ts +0 -39
  357. package/src/core/embedders/CMap.ts +0 -65
  358. package/src/core/embedders/CustomFontEmbedder.ts +0 -237
  359. package/src/core/embedders/CustomFontSubsetEmbedder.ts +0 -89
  360. package/src/core/embedders/FileEmbedder.ts +0 -77
  361. package/src/core/embedders/FontFlags.ts +0 -45
  362. package/src/core/embedders/JavaScriptEmbedder.ts +0 -34
  363. package/src/core/embedders/JpegEmbedder.ts +0 -118
  364. package/src/core/embedders/PDFPageEmbedder.ts +0 -139
  365. package/src/core/embedders/PngEmbedder.ts +0 -69
  366. package/src/core/embedders/StandardFontEmbedder.ts +0 -121
  367. package/src/core/errors.ts +0 -226
  368. package/src/core/interactive/ViewerPreferences.ts +0 -565
  369. package/src/core/objects/PDFArray.ts +0 -179
  370. package/src/core/objects/PDFBool.ts +0 -53
  371. package/src/core/objects/PDFDict.ts +0 -220
  372. package/src/core/objects/PDFHexString.ts +0 -94
  373. package/src/core/objects/PDFInvalidObject.ts +0 -34
  374. package/src/core/objects/PDFName.ts +0 -152
  375. package/src/core/objects/PDFNull.ts +0 -30
  376. package/src/core/objects/PDFNumber.ts +0 -44
  377. package/src/core/objects/PDFObject.ts +0 -22
  378. package/src/core/objects/PDFRawStream.ts +0 -41
  379. package/src/core/objects/PDFRef.ts +0 -51
  380. package/src/core/objects/PDFStream.ts +0 -87
  381. package/src/core/objects/PDFString.ts +0 -118
  382. package/src/core/operators/PDFOperator.ts +0 -72
  383. package/src/core/operators/PDFOperatorNames.ts +0 -92
  384. package/src/core/parser/BaseParser.ts +0 -119
  385. package/src/core/parser/ByteStream.ts +0 -76
  386. package/src/core/parser/PDFObjectParser.ts +0 -302
  387. package/src/core/parser/PDFObjectStreamParser.ts +0 -65
  388. package/src/core/parser/PDFParser.ts +0 -363
  389. package/src/core/parser/PDFXRefStreamParser.ts +0 -129
  390. package/src/core/streams/Ascii85Stream.ts +0 -97
  391. package/src/core/streams/AsciiHexStream.ts +0 -77
  392. package/src/core/streams/DecodeStream.ts +0 -188
  393. package/src/core/streams/DecryptStream.ts +0 -49
  394. package/src/core/streams/FlateStream.ts +0 -397
  395. package/src/core/streams/LZWStream.ts +0 -157
  396. package/src/core/streams/RunLengthStream.ts +0 -55
  397. package/src/core/streams/Stream.ts +0 -126
  398. package/src/core/streams/decode.ts +0 -70
  399. package/src/core/structures/PDFCatalog.ts +0 -81
  400. package/src/core/structures/PDFContentStream.ts +0 -58
  401. package/src/core/structures/PDFCrossRefStream.ts +0 -238
  402. package/src/core/structures/PDFFlateStream.ts +0 -40
  403. package/src/core/structures/PDFObjectStream.ts +0 -91
  404. package/src/core/structures/PDFPageLeaf.ts +0 -244
  405. package/src/core/structures/PDFPageTree.ts +0 -192
  406. package/src/core/syntax/CharCodes.ts +0 -62
  407. package/src/core/syntax/Delimiters.ts +0 -14
  408. package/src/core/syntax/Irregular.ts +0 -10
  409. package/src/core/syntax/Keywords.ts +0 -57
  410. package/src/core/syntax/Numeric.ts +0 -26
  411. package/src/core/syntax/Whitespace.ts +0 -10
  412. package/src/core/writers/PDFStreamWriter.ts +0 -114
  413. package/src/core/writers/PDFWriter.ts +0 -146
  414. package/src/types/fontkit.ts +0 -643
  415. package/src/utils/Cache.ts +0 -26
  416. package/src/utils/arrays.ts +0 -153
  417. package/src/utils/async.ts +0 -8
  418. package/src/utils/base64.ts +0 -98
  419. package/src/utils/elements/Arc.ts +0 -97
  420. package/src/utils/elements/Circle.ts +0 -47
  421. package/src/utils/elements/Ellipse.ts +0 -117
  422. package/src/utils/elements/GraphElement.ts +0 -14
  423. package/src/utils/elements/Line.ts +0 -83
  424. package/src/utils/elements/Plot.ts +0 -50
  425. package/src/utils/elements/Point.ts +0 -37
  426. package/src/utils/elements/Rectangle.ts +0 -65
  427. package/src/utils/elements/Segment.ts +0 -81
  428. package/src/utils/errors.ts +0 -3
  429. package/src/utils/intersections.ts +0 -237
  430. package/src/utils/maths.ts +0 -96
  431. package/src/utils/numbers.ts +0 -55
  432. package/src/utils/objects.ts +0 -13
  433. package/src/utils/pdfDocEncoding.ts +0 -69
  434. package/src/utils/png.ts +0 -100
  435. package/src/utils/rng.ts +0 -21
  436. package/src/utils/strings.ts +0 -191
  437. package/src/utils/validators.ts +0 -192
  438. package/tsconfig.build.json +0 -14
  439. package/tsconfig.json +0 -15
  440. package/vite.config.mts +0 -39
  441. /package/{src/api/form/index.ts → dist/api/form/index.d.ts} +0 -0
  442. /package/{src/api/image/index.ts → dist/api/image/index.d.ts} +0 -0
  443. /package/{src/api/index.ts → dist/api/index.d.ts} +0 -0
  444. /package/{src/api/text/index.ts → dist/api/text/index.d.ts} +0 -0
  445. /package/{src/core/acroform/index.ts → dist/core/acroform/index.d.ts} +0 -0
  446. /package/{src/core/annotation/index.ts → dist/core/annotation/index.d.ts} +0 -0
  447. /package/{src/index.ts → dist/index.d.ts} +0 -0
  448. /package/{src/utils/elements/index.ts → dist/utils/elements/index.d.ts} +0 -0
  449. /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
@@ -1,455 +0,0 @@
1
- import PDFDocument from '../PDFDocument';
2
- import PDFPage from '../PDFPage';
3
- import PDFField, { FieldAppearanceOptions, assertFieldAppearanceOptions } from './PDFField';
4
- import {
5
- AppearanceProviderFor,
6
- normalizeAppearance,
7
- defaultRadioGroupAppearanceProvider,
8
- } from './appearances';
9
- import { rgb } from '../colors';
10
- import { degrees } from '../rotations';
11
-
12
- import {
13
- PDFName,
14
- PDFRef,
15
- PDFHexString,
16
- PDFDict,
17
- PDFWidgetAnnotation,
18
- PDFAcroRadioButton,
19
- AcroButtonFlags,
20
- } from '../../core';
21
- import { assertIs, assertOrUndefined, assertIsOneOf } from '../../utils';
22
-
23
- /**
24
- * Represents a radio group field of a [[PDFForm]].
25
- *
26
- * [[PDFRadioGroup]] fields are collections of radio buttons. The purpose of a
27
- * radio group is to enable users to select one option from a set of mutually
28
- * exclusive choices. Each choice in a radio group is represented by a radio
29
- * button. Radio buttons each have two states: `on` and `off`. At most one
30
- * radio button in a group may be in the `on` state at any time. Users can
31
- * click on a radio button to select it (and thereby automatically deselect any
32
- * other radio button that might have already been selected). Some radio
33
- * groups allow users to toggle a selected radio button `off` by clicking on
34
- * it (see [[PDFRadioGroup.isOffToggleable]]).
35
- *
36
- * Note that some radio groups allow multiple radio buttons to be in the `on`
37
- * state at the same type **if** they represent the same underlying value (see
38
- * [[PDFRadioGroup.isMutuallyExclusive]]).
39
- */
40
- export default class PDFRadioGroup extends PDFField {
41
- /**
42
- * > **NOTE:** You probably don't want to call this method directly. Instead,
43
- * > consider using the [[PDFForm.getOptionList]] method, which will create an
44
- * > instance of [[PDFOptionList]] for you.
45
- *
46
- * Create an instance of [[PDFOptionList]] from an existing acroRadioButton
47
- * and ref
48
- *
49
- * @param acroRadioButton The underlying `PDFAcroRadioButton` for this
50
- * radio group.
51
- * @param ref The unique reference for this radio group.
52
- * @param doc The document to which this radio group will belong.
53
- */
54
- static of = (acroRadioButton: PDFAcroRadioButton, ref: PDFRef, doc: PDFDocument) =>
55
- new PDFRadioGroup(acroRadioButton, ref, doc);
56
-
57
- /** The low-level PDFAcroRadioButton wrapped by this radio group. */
58
- readonly acroField: PDFAcroRadioButton;
59
-
60
- private constructor(acroRadioButton: PDFAcroRadioButton, ref: PDFRef, doc: PDFDocument) {
61
- super(acroRadioButton, ref, doc);
62
-
63
- assertIs(acroRadioButton, 'acroRadioButton', [[PDFAcroRadioButton, 'PDFAcroRadioButton']]);
64
-
65
- this.acroField = acroRadioButton;
66
- }
67
-
68
- /**
69
- * Get the list of available options for this radio group. Each option is
70
- * represented by a radio button. These radio buttons are displayed at
71
- * various locations in the document, potentially on different pages (though
72
- * typically they are stacked horizontally or vertically on the same page).
73
- * For example:
74
- * ```js
75
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
76
- * const options = radioGroup.getOptions()
77
- * console.log('Radio Group options:', options)
78
- * ```
79
- * @returns The options for this radio group.
80
- */
81
- getOptions(): string[] {
82
- const exportValues = this.acroField.getExportValues();
83
- if (exportValues) {
84
- const exportOptions = Array<string>(exportValues.length);
85
- for (let idx = 0, len = exportValues.length; idx < len; idx++) {
86
- exportOptions[idx] = exportValues[idx].decodeText();
87
- }
88
- return exportOptions;
89
- }
90
-
91
- const onValues = this.acroField.getOnValues();
92
- const onOptions = Array<string>(onValues.length);
93
- for (let idx = 0, len = onOptions.length; idx < len; idx++) {
94
- onOptions[idx] = onValues[idx].decodeText();
95
- }
96
- return onOptions;
97
- }
98
-
99
- /**
100
- * Get the selected option for this radio group. The selected option is
101
- * represented by the radio button in this group that is turned on. At most
102
- * one radio button in a group can be selected. If no buttons in this group
103
- * are selected, `undefined` is returned.
104
- * For example:
105
- * ```js
106
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
107
- * const selected = radioGroup.getSelected()
108
- * console.log('Selected radio button:', selected)
109
- * ```
110
- * @returns The selected option for this radio group.
111
- */
112
- getSelected(): string | undefined {
113
- const value = this.acroField.getValue();
114
- if (value === PDFName.of('Off')) return undefined;
115
- const exportValues = this.acroField.getExportValues();
116
- if (exportValues) {
117
- const onValues = this.acroField.getOnValues();
118
- for (let idx = 0, len = onValues.length; idx < len; idx++) {
119
- if (onValues[idx] === value) return exportValues[idx].decodeText();
120
- }
121
- }
122
- return value.decodeText();
123
- }
124
-
125
- // // TODO: Figure out why this seems to crash Acrobat. Maybe it's because we
126
- // // aren't removing the widget reference from the page's Annots?
127
- // removeOption(option: string) {
128
- // assertIs(option, 'option', ['string']);
129
- // // TODO: Assert is valid `option`!
130
-
131
- // const onValues = this.acroField.getOnValues();
132
- // const exportValues = this.acroField.getExportValues();
133
- // if (exportValues) {
134
- // for (let idx = 0, len = exportValues.length; idx < len; idx++) {
135
- // if (exportValues[idx].decodeText() === option) {
136
- // this.acroField.removeWidget(idx);
137
- // this.acroField.removeExportValue(idx);
138
- // }
139
- // }
140
- // } else {
141
- // for (let idx = 0, len = onValues.length; idx < len; idx++) {
142
- // const value = onValues[idx];
143
- // if (value.decodeText() === option) {
144
- // this.acroField.removeWidget(idx);
145
- // this.acroField.removeExportValue(idx);
146
- // }
147
- // }
148
- // }
149
- // }
150
-
151
- /**
152
- * Select an option for this radio group. This operation is analogous to a
153
- * human user clicking one of the radio buttons in this group via a PDF
154
- * reader to toggle it on. This method will update the underlying state of
155
- * the radio group to indicate which option has been selected. PDF libraries
156
- * and readers will be able to extract this value from the saved document and
157
- * determine which option was selected.
158
- *
159
- * For example:
160
- * ```js
161
- * const radioGroup = form.getRadioGroup('best.superhero.radioGroup')
162
- * radioGroup.select('One Punch Man')
163
- * ```
164
- *
165
- * This method will mark this radio group as dirty, causing its appearance
166
- * streams to be updated when either [[PDFDocument.save]] or
167
- * [[PDFForm.updateFieldAppearances]] is called. The updated appearance
168
- * streams will display a dot inside the widget of this check box field
169
- * that represents the selected option.
170
- *
171
- * @param option The option to be selected.
172
- */
173
- select(option: string) {
174
- assertIs(option, 'option', ['string']);
175
-
176
- const validOptions = this.getOptions();
177
- assertIsOneOf(option, 'option', validOptions);
178
-
179
- this.markAsDirty();
180
-
181
- const onValues = this.acroField.getOnValues();
182
- const exportValues = this.acroField.getExportValues();
183
- if (exportValues) {
184
- for (let idx = 0, len = exportValues.length; idx < len; idx++) {
185
- if (exportValues[idx].decodeText() === option) {
186
- this.acroField.setValue(onValues[idx]);
187
- }
188
- }
189
- } else {
190
- for (let idx = 0, len = onValues.length; idx < len; idx++) {
191
- const value = onValues[idx];
192
- if (value.decodeText() === option) this.acroField.setValue(value);
193
- }
194
- }
195
- }
196
-
197
- /**
198
- * Clear any selected option for this dropdown. This will result in all
199
- * radio buttons in this group being toggled off. This method will update
200
- * the underlying state of the dropdown to indicate that no radio buttons
201
- * have been selected.
202
- * For example:
203
- * ```js
204
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
205
- * radioGroup.clear()
206
- * ```
207
- * This method will mark this radio group as dirty. See
208
- * [[PDFRadioGroup.select]] for more details about what this means.
209
- */
210
- clear() {
211
- this.markAsDirty();
212
- this.acroField.setValue(PDFName.of('Off'));
213
- }
214
-
215
- /**
216
- * Returns `true` if users can click on radio buttons in this group to toggle
217
- * them off. The alternative is that once a user clicks on a radio button
218
- * to select it, the only way to deselect it is by selecting on another radio
219
- * button in the group. See [[PDFRadioGroup.enableOffToggling]] and
220
- * [[PDFRadioGroup.disableOffToggling]]. For example:
221
- * ```js
222
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
223
- * if (radioGroup.isOffToggleable()) console.log('Off toggling is enabled')
224
- * ```
225
- */
226
- isOffToggleable() {
227
- return !this.acroField.hasFlag(AcroButtonFlags.NoToggleToOff);
228
- }
229
-
230
- /**
231
- * Allow users to click on selected radio buttons in this group to toggle
232
- * them off. For example:
233
- * ```js
234
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
235
- * radioGroup.enableOffToggling()
236
- * ```
237
- * > **NOTE:** This feature is documented in the PDF specification
238
- * > (Table 226). However, most PDF readers do not respect this option and
239
- * > prevent users from toggling radio buttons off even when it is enabled.
240
- * > At the time of this writing (9/6/2020) Mac's Preview software did
241
- * > respect the option. Adobe Acrobat, Foxit Reader, and Google Chrome did
242
- * > not.
243
- */
244
- enableOffToggling() {
245
- this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff, false);
246
- }
247
-
248
- /**
249
- * Prevent users from clicking on selected radio buttons in this group to
250
- * toggle them off. Clicking on a selected radio button will have no effect.
251
- * The only way to deselect a selected radio button is to click on a
252
- * different radio button in the group. For example:
253
- * ```js
254
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
255
- * radioGroup.disableOffToggling()
256
- * ```
257
- */
258
- disableOffToggling() {
259
- this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff, true);
260
- }
261
-
262
- /**
263
- * Returns `true` if the radio buttons in this group are mutually exclusive.
264
- * This means that when the user selects a radio button, only that specific
265
- * button will be turned on. Even if other radio buttons in the group
266
- * represent the same value, they will not be enabled. The alternative to
267
- * this is that clicking a radio button will select that button along with
268
- * any other radio buttons in the group that share the same value. See
269
- * [[PDFRadioGroup.enableMutualExclusion]] and
270
- * [[PDFRadioGroup.disableMutualExclusion]].
271
- * For example:
272
- * ```js
273
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
274
- * if (radioGroup.isMutuallyExclusive()) console.log('Mutual exclusion is enabled')
275
- * ```
276
- */
277
- isMutuallyExclusive() {
278
- return !this.acroField.hasFlag(AcroButtonFlags.RadiosInUnison);
279
- }
280
-
281
- /**
282
- * When the user clicks a radio button in this group it will be selected. In
283
- * addition, any other radio buttons in this group that share the same
284
- * underlying value will also be selected. For example:
285
- * ```js
286
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
287
- * radioGroup.enableMutualExclusion()
288
- * ```
289
- * Note that this option must be enabled prior to adding options to the
290
- * radio group. It does not currently apply retroactively to existing
291
- * radio buttons in the group.
292
- */
293
- enableMutualExclusion() {
294
- this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison, false);
295
- }
296
-
297
- /**
298
- * When the user clicks a radio button in this group only it will be selected.
299
- * No other radio buttons in the group will be selected, even if they share
300
- * the same underlying value. For example:
301
- * ```js
302
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
303
- * radioGroup.disableMutualExclusion()
304
- * ```
305
- * Note that this option must be disabled prior to adding options to the
306
- * radio group. It does not currently apply retroactively to existing
307
- * radio buttons in the group.
308
- */
309
- disableMutualExclusion() {
310
- this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison, true);
311
- }
312
-
313
- /**
314
- * Add a new radio button to this group on the specified page. For example:
315
- * ```js
316
- * const page = pdfDoc.addPage()
317
- *
318
- * const form = pdfDoc.getForm()
319
- * const radioGroup = form.createRadioGroup('best.gundam')
320
- *
321
- * const options = {
322
- * x: 50,
323
- * width: 25,
324
- * height: 25,
325
- * textColor: rgb(1, 0, 0),
326
- * backgroundColor: rgb(0, 1, 0),
327
- * borderColor: rgb(0, 0, 1),
328
- * borderWidth: 2,
329
- * rotate: degrees(90),
330
- * }
331
- *
332
- * radioGroup.addOptionToPage('Exia', page, { ...options, y: 50 })
333
- * radioGroup.addOptionToPage('Dynames', page, { ...options, y: 110 })
334
- * ```
335
- * This will create a new radio button widget for this radio group field.
336
- * @param option The option that the radio button widget represents.
337
- * @param page The page to which the radio button widget should be added.
338
- * @param options The options to be used when adding the radio button widget.
339
- */
340
- addOptionToPage(option: string, page: PDFPage, options?: FieldAppearanceOptions) {
341
- assertIs(option, 'option', ['string']);
342
- assertIs(page, 'page', [[PDFPage, 'PDFPage']]);
343
- assertFieldAppearanceOptions(options);
344
-
345
- // Create a widget for this radio button
346
- const widget = this.createWidget({
347
- x: options?.x ?? 0,
348
- y: options?.y ?? 0,
349
- width: options?.width ?? 50,
350
- height: options?.height ?? 50,
351
- textColor: options?.textColor ?? rgb(0, 0, 0),
352
- backgroundColor: options?.backgroundColor ?? rgb(1, 1, 1),
353
- borderColor: options?.borderColor ?? rgb(0, 0, 0),
354
- borderWidth: options?.borderWidth ?? 1,
355
- rotate: options?.rotate ?? degrees(0),
356
- hidden: options?.hidden,
357
- page: page.ref,
358
- });
359
- const widgetRef = this.doc.context.register(widget.dict);
360
-
361
- // Add widget to this field
362
- const apStateValue = this.acroField.addWidgetWithOpt(
363
- widgetRef,
364
- PDFHexString.fromText(option),
365
- !this.isMutuallyExclusive(),
366
- );
367
-
368
- // Set appearance streams for widget
369
- widget.setAppearanceState(PDFName.of('Off'));
370
- this.updateWidgetAppearance(widget, apStateValue);
371
-
372
- // Add widget to the given page
373
- page.node.addAnnot(widgetRef);
374
- }
375
-
376
- /**
377
- * Returns `true` if any of this group's radio button widgets do not have an
378
- * appearance stream for their current state. For example:
379
- * ```js
380
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
381
- * if (radioGroup.needsAppearancesUpdate()) console.log('Needs update')
382
- * ```
383
- * @returns Whether or not this radio group needs an appearance update.
384
- */
385
- needsAppearancesUpdate(): boolean {
386
- const widgets = this.acroField.getWidgets();
387
- for (let idx = 0, len = widgets.length; idx < len; idx++) {
388
- const widget = widgets[idx];
389
- const state = widget.getAppearanceState();
390
- const normal = widget.getAppearances()?.normal;
391
-
392
- if (!(normal instanceof PDFDict)) return true;
393
- if (state && !normal.has(state)) return true;
394
- }
395
-
396
- return false;
397
- }
398
-
399
- /**
400
- * Update the appearance streams for each of this group's radio button widgets
401
- * using the default appearance provider for radio groups. For example:
402
- * ```js
403
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
404
- * radioGroup.defaultUpdateAppearances()
405
- * ```
406
- */
407
- defaultUpdateAppearances() {
408
- this.updateAppearances();
409
- }
410
-
411
- // rg.updateAppearances((field: any, widget: any) => {
412
- // assert(field === rg);
413
- // assert(widget instanceof PDFWidgetAnnotation);
414
- // return { on: [...rectangle, ...circle], off: [...rectangle, ...circle] };
415
- // });
416
-
417
- /**
418
- * Update the appearance streams for each of this group's radio button widgets
419
- * using the given appearance provider. If no `provider` is passed, the
420
- * default appearance provider for radio groups will be used. For example:
421
- * ```js
422
- * const radioGroup = form.getRadioGroup('some.radioGroup.field')
423
- * radioGroup.updateAppearances((field, widget) => {
424
- * ...
425
- * return {
426
- * normal: { on: drawRadioButton(...), off: drawRadioButton(...) },
427
- * down: { on: drawRadioButton(...), off: drawRadioButton(...) },
428
- * }
429
- * })
430
- * ```
431
- * @param provider Optionally, the appearance provider to be used for
432
- * generating the contents of the appearance streams.
433
- */
434
- updateAppearances(provider?: AppearanceProviderFor<PDFRadioGroup>) {
435
- assertOrUndefined(provider, 'provider', [Function]);
436
-
437
- const widgets = this.acroField.getWidgets();
438
- for (let idx = 0, len = widgets.length; idx < len; idx++) {
439
- const widget = widgets[idx];
440
- const onValue = widget.getOnValue();
441
- if (!onValue) continue;
442
- this.updateWidgetAppearance(widget, onValue, provider);
443
- }
444
- }
445
-
446
- private updateWidgetAppearance(
447
- widget: PDFWidgetAnnotation,
448
- onValue: PDFName,
449
- provider?: AppearanceProviderFor<PDFRadioGroup>,
450
- ) {
451
- const apProvider = provider ?? defaultRadioGroupAppearanceProvider;
452
- const appearances = normalizeAppearance(apProvider(this, widget));
453
- this.updateOnOffWidgetAppearance(widget, onValue, appearances);
454
- }
455
- }
@@ -1,44 +0,0 @@
1
- import PDFDocument from '../PDFDocument';
2
- import PDFField from './PDFField';
3
-
4
- import { PDFRef, PDFAcroSignature } from '../../core';
5
- import { assertIs } from '../../utils';
6
-
7
- /**
8
- * Represents a signature field of a [[PDFForm]].
9
- *
10
- * [[PDFSignature]] fields are digital signatures. `pdf-lib` does not
11
- * currently provide any specialized APIs for creating digital signatures or
12
- * reading the contents of existing digital signatures.
13
- */
14
- export default class PDFSignature extends PDFField {
15
- /**
16
- * > **NOTE:** You probably don't want to call this method directly. Instead,
17
- * > consider using the [[PDFForm.getSignature]] method, which will create an
18
- * > instance of [[PDFSignature]] for you.
19
- *
20
- * Create an instance of [[PDFSignature]] from an existing acroSignature and
21
- * ref
22
- *
23
- * @param acroSignature The underlying `PDFAcroSignature` for this signature.
24
- * @param ref The unique reference for this signature.
25
- * @param doc The document to which this signature will belong.
26
- */
27
- static of = (acroSignature: PDFAcroSignature, ref: PDFRef, doc: PDFDocument) =>
28
- new PDFSignature(acroSignature, ref, doc);
29
-
30
- /** The low-level PDFAcroSignature wrapped by this signature. */
31
- readonly acroField: PDFAcroSignature;
32
-
33
- private constructor(acroSignature: PDFAcroSignature, ref: PDFRef, doc: PDFDocument) {
34
- super(acroSignature, ref, doc);
35
-
36
- assertIs(acroSignature, 'acroSignature', [[PDFAcroSignature, 'PDFAcroSignature']]);
37
-
38
- this.acroField = acroSignature;
39
- }
40
-
41
- needsAppearancesUpdate() {
42
- return false;
43
- }
44
- }