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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,158 +0,0 @@
1
- import fs from 'fs';
2
- import {
3
- PDFArray,
4
- PDFBool,
5
- PDFContext,
6
- PDFDict,
7
- PDFHexString,
8
- PDFName,
9
- PDFNull,
10
- PDFNumber,
11
- PDFObjectStreamParser,
12
- PDFRawStream,
13
- PDFRef,
14
- PDFString,
15
- ReparseError,
16
- } from '../../../src/index';
17
-
18
- const readData = (file: string) =>
19
- new Uint8Array(fs.readFileSync(`${__dirname}/data/${file}`));
20
-
21
- describe(`PDFObjectStreamParser`, () => {
22
- it(`parses simple object streams`, () => {
23
- const context = PDFContext.create();
24
- const dict = context.obj({
25
- N: 3,
26
- First: 18,
27
- });
28
- const contents = readData('object-stream1');
29
- const stream = PDFRawStream.of(dict, contents);
30
-
31
- PDFObjectStreamParser.forStream(stream).parseIntoContext();
32
-
33
- expect(context.enumerateIndirectObjects().length).toBe(3);
34
- });
35
-
36
- it(`can parse object streams containing the following PDF Object types: [
37
- PDFDictionary,
38
- PDFArray
39
- PDFName,
40
- PDFString,
41
- PDFIndirectReference,
42
- PDFNumber,
43
- PDFHexString,
44
- PDFBoolean,
45
- PDFNull
46
- ]`, () => {
47
- const context = PDFContext.create();
48
- const dict = context.obj({
49
- N: 9,
50
- First: 44,
51
- });
52
- const contents = readData('object-stream2');
53
- const stream = PDFRawStream.of(dict, contents);
54
-
55
- PDFObjectStreamParser.forStream(stream).parseIntoContext();
56
-
57
- expect(context.enumerateIndirectObjects().length).toBe(9);
58
- expect(context.lookup(PDFRef.of(1))).toBeInstanceOf(PDFDict);
59
- expect(context.lookup(PDFRef.of(2))).toBeInstanceOf(PDFArray);
60
- expect(context.lookup(PDFRef.of(3))).toBe(PDFName.of('QuxBaz'));
61
- expect(context.lookup(PDFRef.of(4))).toBeInstanceOf(PDFString);
62
- expect(context.lookup(PDFRef.of(5))).toBe(PDFRef.of(21));
63
- expect(context.lookup(PDFRef.of(6))).toBeInstanceOf(PDFNumber);
64
- expect(context.lookup(PDFRef.of(7))).toBeInstanceOf(PDFHexString);
65
- expect(context.lookup(PDFRef.of(8))).toBe(PDFBool.True);
66
- expect(context.lookup(PDFRef.of(9))).toBe(PDFNull);
67
- });
68
-
69
- it(`handles object streams with newlines separating the integer pairs`, () => {
70
- const context = PDFContext.create();
71
- const dict = context.obj({
72
- N: 182,
73
- First: 1786,
74
- });
75
- const contents = readData('object-stream3');
76
- const stream = PDFRawStream.of(dict, contents);
77
-
78
- PDFObjectStreamParser.forStream(stream).parseIntoContext();
79
-
80
- expect(context.enumerateIndirectObjects().length).toBe(182);
81
- });
82
-
83
- it(`handles encoded object streams with PDFName filters`, () => {
84
- const context = PDFContext.create();
85
- const dict = context.obj({
86
- Filter: 'FlateDecode',
87
- N: 115,
88
- First: 924,
89
- });
90
- const contents = readData('object-stream4');
91
- const stream = PDFRawStream.of(dict, contents);
92
-
93
- PDFObjectStreamParser.forStream(stream).parseIntoContext();
94
-
95
- expect(context.enumerateIndirectObjects().length).toBe(115);
96
- });
97
-
98
- it(`handles encoded object streams with PDFArray filters`, () => {
99
- const context = PDFContext.create();
100
- const dict = context.obj({
101
- Filter: ['FlateDecode'],
102
- N: 115,
103
- First: 924,
104
- });
105
- const contents = readData('object-stream4');
106
- const stream = PDFRawStream.of(dict, contents);
107
-
108
- PDFObjectStreamParser.forStream(stream).parseIntoContext();
109
-
110
- expect(context.enumerateIndirectObjects().length).toBe(115);
111
- });
112
-
113
- it(`throws an error for invalid Filters`, () => {
114
- const context = PDFContext.create();
115
- const dict = context.obj({
116
- Filter: 42,
117
- N: 115,
118
- First: 924,
119
- });
120
- const contents = readData('object-stream4');
121
- const stream = PDFRawStream.of(dict, contents);
122
-
123
- expect(() =>
124
- PDFObjectStreamParser.forStream(stream).parseIntoContext(),
125
- ).toThrow();
126
- });
127
-
128
- it(`throws an error for invalid object streams`, async () => {
129
- const context = PDFContext.create();
130
- const dict = context.obj({
131
- N: 1,
132
- First: 5,
133
- });
134
- const contents = readData('object-stream-invalid');
135
- const stream = PDFRawStream.of(dict, contents);
136
-
137
- await expect(
138
- PDFObjectStreamParser.forStream(stream).parseIntoContext(),
139
- ).rejects.toThrow();
140
- });
141
-
142
- it(`prevents reparsing`, async () => {
143
- const context = PDFContext.create();
144
- const dict = context.obj({
145
- N: 3,
146
- First: 18,
147
- });
148
- const contents = readData('object-stream1');
149
- const stream = PDFRawStream.of(dict, contents);
150
-
151
- const parser = PDFObjectStreamParser.forStream(stream);
152
-
153
- await expect(parser.parseIntoContext()).resolves.not.toThrow();
154
- await expect(parser.parseIntoContext()).rejects.toThrow(
155
- new ReparseError('PDFObjectStreamParser', 'parseIntoContext'),
156
- );
157
- });
158
- });
@@ -1,398 +0,0 @@
1
- import fs from 'fs';
2
-
3
- import {
4
- CharCodes,
5
- mergeIntoTypedArray,
6
- PDFDict,
7
- PDFHeader,
8
- PDFInvalidObject,
9
- PDFPageLeaf,
10
- PDFParser,
11
- PDFRef,
12
- PDFString,
13
- ReparseError,
14
- typedArrayFor,
15
- } from '../../../src/index';
16
-
17
- describe(`PDFParser`, () => {
18
- const origConsoleWarn = console.warn;
19
-
20
- beforeAll(() => {
21
- const ignoredWarnings = [
22
- 'Trying to parse invalid object:',
23
- 'Invalid object ref:',
24
- 'Removing parsed object: 0 0 R',
25
- ];
26
- console.warn = vi.fn((...args) => {
27
- const isIgnored = ignoredWarnings.find((iw) => args[0].includes(iw));
28
- if (!isIgnored) origConsoleWarn(...args);
29
- });
30
- });
31
-
32
- beforeEach(() => {
33
- vi.clearAllMocks();
34
- });
35
-
36
- afterAll(() => {
37
- console.warn = origConsoleWarn;
38
- });
39
-
40
- it(`throws an error when the PDF is missing a header`, async () => {
41
- const input = `
42
- I_AM_NOT_A_HEADER
43
- 1 0 obj
44
- (foobar)
45
- endobj
46
- `;
47
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
48
- await expect(parser.parseDocument()).rejects.toThrow();
49
- });
50
-
51
- it(`does not throw an error when the 'endobj' keyword is missing`, async () => {
52
- const input = `
53
- %PDF-1.7
54
- 1 0 obj
55
- (foobar)
56
- foo
57
- `;
58
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
59
- const context = await parser.parseDocument();
60
- expect(context.lookup(PDFRef.of(1))).toBeInstanceOf(PDFString);
61
- });
62
-
63
- it(`handles invalid binary comments after header`, async () => {
64
- const input = mergeIntoTypedArray(
65
- '%PDF-1.7\n',
66
- new Uint8Array([128, 1, 2, 3, 4, 5, 129, 130, 131, CharCodes.Newline]),
67
- '1 0 obj\n',
68
- ' . (foobar)\n',
69
- 'endobj',
70
- );
71
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
72
- const context = await parser.parseDocument();
73
- expect(context.enumerateIndirectObjects().length).toBe(1);
74
- });
75
-
76
- it(`handles invalid binary comments with missing newline after header`, async () => {
77
- const input = mergeIntoTypedArray(
78
- '%PDF-1.7\n',
79
- new Uint8Array([142, 1, 2, 3, 4, 5, 129, 130, 131]),
80
- '1 0 obj\n',
81
- ' . (foobar)\n',
82
- 'endobj',
83
- );
84
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
85
- const context = await parser.parseDocument();
86
- expect(context.enumerateIndirectObjects().length).toBe(1);
87
- });
88
-
89
- it(`does not stall when stuff follows the last %%EOL`, async () => {
90
- const input = `
91
- %PDF-1.7
92
- 1 0 obj
93
- (foobar)
94
- endobj
95
- startxref
96
- 127
97
- %%EOL
98
- @@@@@@@@@@@@@@@@@@
99
- `;
100
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
101
- const context = await parser.parseDocument();
102
- expect(context.enumerateIndirectObjects().length).toBe(1);
103
- });
104
-
105
- it(`handles invalid indirect objects`, async () => {
106
- const input = `
107
- %PDF-1.7
108
- 22 0 obj <</Type/Outlines/First ## 0 R/Last ** 0 R/Count 2>> endobj
109
- `;
110
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
111
- const context = await parser.parseDocument();
112
-
113
- expect(context.enumerateIndirectObjects().length).toBe(1);
114
- const object = context.lookup(PDFRef.of(22));
115
- expect(object).toBeInstanceOf(PDFInvalidObject);
116
- });
117
-
118
- it(`throws an error with invalid indirect objects when throwOnInvalidObject=true`, async () => {
119
- const input = `
120
- %PDF-1.7
121
- 22 0 obj <</Type/Outlines/First ## 0 R/Last ** 0 R/Count 2>> endobj
122
- `;
123
- const parser = PDFParser.forBytesWithOptions(
124
- typedArrayFor(input),
125
- 100,
126
- true,
127
- );
128
- await expect(parser.parseDocument()).rejects.toBeInstanceOf(Error);
129
- });
130
-
131
- it(`handles xref sections with empty subsections`, async () => {
132
- const input = `
133
- %PDF-1.7
134
- 22 0 obj
135
- (foo)
136
- endobj
137
- xref
138
- 0 0
139
- trailer
140
- << >>
141
- startxref
142
- 21
143
- %%EOF
144
- `;
145
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
146
- const context = await parser.parseDocument();
147
-
148
- expect(context.enumerateIndirectObjects().length).toBe(1);
149
- const object = context.lookup(PDFRef.of(22));
150
- expect(object).toBeInstanceOf(PDFString);
151
- });
152
-
153
- it(`can parse PDF files with comments and stuff preceding the header`, async () => {
154
- const pdfBytes = fs.readFileSync(
155
- './assets/pdfs/pdf20examples/PDF 2.0 with offset start.pdf',
156
- );
157
-
158
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
159
- const context = await parser.parseDocument();
160
-
161
- expect(context.header).toBeInstanceOf(PDFHeader);
162
- expect(context.header.toString()).toEqual('%PDF-2.0\n%');
163
- expect(context.enumerateIndirectObjects().length).toBe(8);
164
- });
165
-
166
- it(`can parse PDF files with comments stuff following the header`, async () => {
167
- const pdfBytes = fs.readFileSync(
168
- './assets/pdfs/stuff_following_header.pdf',
169
- );
170
-
171
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
172
- const context = await parser.parseDocument();
173
-
174
- expect(context.header).toBeInstanceOf(PDFHeader);
175
- expect(context.header.toString()).toEqual('%PDF-1.4\n%');
176
- expect(context.enumerateIndirectObjects().length).toBe(12);
177
- });
178
-
179
- it(`can parse PDF files with missing xref table, trailer dict, and trailer`, async () => {
180
- const pdfBytes = fs.readFileSync(
181
- './assets/pdfs/missing_xref_trailer_dict.pdf',
182
- );
183
-
184
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
185
- const context = await parser.parseDocument();
186
-
187
- expect(context.header).toBeInstanceOf(PDFHeader);
188
- expect(context.header.toString()).toEqual('%PDF-2.0\n%');
189
- expect(context.enumerateIndirectObjects().length).toBe(8);
190
- });
191
-
192
- it(`can parse PDF files without object streams or update sections`, async () => {
193
- const pdfBytes = fs.readFileSync('./assets/pdfs/normal.pdf');
194
-
195
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
196
- const context = await parser.parseDocument();
197
-
198
- expect(context.header).toBeInstanceOf(PDFHeader);
199
- expect(context.header.toString()).toEqual('%PDF-1.3\n%');
200
- expect(context.enumerateIndirectObjects().length).toBe(108);
201
- });
202
-
203
- it(`can parse PDF files with update sections`, async () => {
204
- const pdfBytes = fs.readFileSync('./assets/pdfs/with_update_sections.pdf');
205
-
206
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
207
- const context = await parser.parseDocument();
208
-
209
- expect(context.header).toBeInstanceOf(PDFHeader);
210
- expect(context.header.toString()).toEqual('%PDF-1.7\n%');
211
- expect(context.enumerateIndirectObjects().length).toBe(131);
212
- });
213
-
214
- it(`can parse PDF files with comments`, async () => {
215
- const pdfBytes = fs.readFileSync('./assets/pdfs/with_comments.pdf');
216
-
217
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
218
- const context = await parser.parseDocument();
219
-
220
- expect(context.header).toBeInstanceOf(PDFHeader);
221
- expect(context.header.toString()).toEqual('%PDF-1.7\n%');
222
- expect(context.enumerateIndirectObjects().length).toBe(143);
223
- });
224
-
225
- it(`prevents double parsing`, async () => {
226
- const pdfBytes = fs.readFileSync('./assets/pdfs/normal.pdf');
227
-
228
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
229
-
230
- await expect(parser.parseDocument()).resolves.not.toThrow();
231
- await expect(parser.parseDocument()).rejects.toThrow(
232
- new ReparseError('PDFParser', 'parseDocument'),
233
- );
234
- });
235
-
236
- it(`can parse PDF files with binary jibberish between indirect objects`, async () => {
237
- const pdfBytes = fs.readFileSync('./assets/pdfs/giraffe.pdf');
238
-
239
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
240
- const context = await parser.parseDocument();
241
-
242
- expect(context.header).toBeInstanceOf(PDFHeader);
243
- expect(context.header.toString()).toEqual('%PDF-1.6\n%');
244
- expect(context.enumerateIndirectObjects().length).toBe(17);
245
- });
246
-
247
- it(`can fix incorrect values for /Root`, async () => {
248
- const pdfBytes = fs.readFileSync('./assets/pdfs/invalid_root_ref.pdf');
249
-
250
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
251
- const context = await parser.parseDocument();
252
-
253
- expect(context.header).toBeInstanceOf(PDFHeader);
254
- expect(context.header.toString()).toEqual('%PDF-1.5\n%');
255
- expect(context.trailerInfo.Root).toBe(PDFRef.of(2, 0));
256
- expect(context.enumerateIndirectObjects().length).toBe(28);
257
- });
258
-
259
- it(`can parse files containing indirect objects missing their 'endobj' keyword`, async () => {
260
- const pdfBytes = fs.readFileSync(
261
- './assets/pdfs/missing_endobj_keyword.pdf',
262
- );
263
-
264
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
265
- const context = await parser.parseDocument();
266
-
267
- expect(context.header).toBeInstanceOf(PDFHeader);
268
- expect(context.header.toString()).toEqual('%PDF-1.3\n%');
269
- expect(context.enumerateIndirectObjects().length).toBe(7);
270
- });
271
-
272
- it(`can parse files with containing large arrays with most 'null' values`, async () => {
273
- const pdfBytes = fs.readFileSync('./assets/pdfs/bixby_guide.pdf');
274
-
275
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
276
- const context = await parser.parseDocument();
277
-
278
- expect(context.header).toBeInstanceOf(PDFHeader);
279
- expect(context.header.toString()).toEqual('%PDF-1.4\n%');
280
-
281
- const objects = context.enumerateIndirectObjects();
282
- expect(objects.length).toBe(26079);
283
- expect(
284
- objects.filter(([_ref, obj]) => obj instanceof PDFPageLeaf).length,
285
- ).toBe(176);
286
- });
287
-
288
- it(`can parse files with invalid stream EOLs: "stream \r\n`, async () => {
289
- const pdfBytes = fs.readFileSync(
290
- './assets/pdfs/with_invalid_stream_EOL.pdf',
291
- );
292
-
293
- const parser = PDFParser.forBytesWithOptions(pdfBytes);
294
- const context = await parser.parseDocument();
295
-
296
- expect(context.header).toBeInstanceOf(PDFHeader);
297
- expect(context.header.toString()).toEqual('%PDF-1.3\n%');
298
-
299
- const objects = context.enumerateIndirectObjects();
300
- expect(objects.length).toBe(11);
301
- expect(
302
- objects.filter(([_ref, obj]) => obj instanceof PDFPageLeaf).length,
303
- ).toBe(2);
304
- });
305
-
306
- it(`handles updated PDFs missing newline after %%EOF marker`, async () => {
307
- const input = `
308
- %PDF-1.7
309
- 22 0 obj
310
- (foo)
311
- endobj
312
- xref
313
- 0 0
314
- trailer
315
- << >>
316
- startxref
317
- 21
318
- %%EOF28 0 obj
319
- << /Foo /Bar >>
320
- endobj
321
- xref
322
- 0 0
323
- trailer
324
- << >>
325
- startxref
326
- 21
327
- %%EOF
328
- `;
329
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
330
- const context = await parser.parseDocument();
331
-
332
- expect(context.enumerateIndirectObjects().length).toBe(2);
333
- const object22 = context.lookup(PDFRef.of(22));
334
- expect(object22).toBeInstanceOf(PDFString);
335
- const object28 = context.lookup(PDFRef.of(28));
336
- expect(object28).toBeInstanceOf(PDFDict);
337
- });
338
-
339
- it(`handles updated PDFs with comments preceding %%EOF marker`, async () => {
340
- const input = `
341
- %PDF-1.7
342
- 22 0 obj
343
- (foo)
344
- endobj
345
- xref
346
- 0 0
347
- trailer
348
- << >>
349
- startxref
350
- 21
351
- %%EOF28 0 obj
352
- << /Foo /Bar >>
353
- endobj
354
- xref
355
- 0 0
356
- trailer
357
- << >>
358
- startxref
359
- 21 % Foo
360
- % Bar
361
- %%EOF
362
- `;
363
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
364
- const context = await parser.parseDocument();
365
-
366
- expect(context.enumerateIndirectObjects().length).toBe(2);
367
- const object22 = context.lookup(PDFRef.of(22));
368
- expect(object22).toBeInstanceOf(PDFString);
369
- const object28 = context.lookup(PDFRef.of(28));
370
- expect(object28).toBeInstanceOf(PDFDict);
371
- });
372
-
373
- it(`removes indirect objects with objectNumber=0`, async () => {
374
- const input = `
375
- %PDF-1.7
376
- 1 0 obj
377
- (foo)
378
- endobj
379
- 0 0 obj
380
- (bar)
381
- endobj
382
- 2 0 obj
383
- (baz)
384
- endobj
385
- %%EOF
386
- `;
387
- const parser = PDFParser.forBytesWithOptions(typedArrayFor(input));
388
- const context = await parser.parseDocument();
389
-
390
- expect(context.enumerateIndirectObjects().length).toBe(2);
391
- const object1 = context.lookup(PDFRef.of(1));
392
- expect(object1).toBeInstanceOf(PDFString);
393
- const object0 = context.lookup(PDFRef.of(0));
394
- expect(object0).toBe(undefined);
395
- const object2 = context.lookup(PDFRef.of(2));
396
- expect(object2).toBeInstanceOf(PDFString);
397
- });
398
- });