@laminapdf/sdk 0.0.0-stage → 0.2.0-alpha.3

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 (478) hide show
  1. package/README.md +243 -2
  2. package/dist/api.d.ts +26 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +12 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/builder.d.ts +335 -0
  7. package/dist/builder.d.ts.map +1 -0
  8. package/dist/builder.js +574 -0
  9. package/dist/builder.js.map +1 -0
  10. package/dist/defined.d.ts +5 -0
  11. package/dist/defined.d.ts.map +1 -0
  12. package/dist/defined.js +7 -0
  13. package/dist/defined.js.map +1 -0
  14. package/dist/document.d.ts +267 -0
  15. package/dist/document.d.ts.map +1 -0
  16. package/dist/document.js +472 -0
  17. package/dist/document.js.map +1 -0
  18. package/dist/entry/node.d.ts +30 -0
  19. package/dist/entry/node.d.ts.map +1 -0
  20. package/dist/entry/node.js +37 -0
  21. package/dist/entry/node.js.map +1 -0
  22. package/dist/entry/workerd.d.ts +30 -0
  23. package/dist/entry/workerd.d.ts.map +1 -0
  24. package/dist/entry/workerd.js +37 -0
  25. package/dist/entry/workerd.js.map +1 -0
  26. package/dist/errors.d.ts +102 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +131 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/explain.d.ts +20 -0
  31. package/dist/explain.d.ts.map +1 -0
  32. package/dist/explain.js +14 -0
  33. package/dist/explain.js.map +1 -0
  34. package/dist/extract.d.ts +57 -0
  35. package/dist/extract.d.ts.map +1 -0
  36. package/dist/extract.js +5 -0
  37. package/dist/extract.js.map +1 -0
  38. package/dist/font.d.ts +73 -0
  39. package/dist/font.d.ts.map +1 -0
  40. package/dist/font.js +133 -0
  41. package/dist/font.js.map +1 -0
  42. package/dist/generated/builder-enums.d.ts +29 -0
  43. package/dist/generated/builder-enums.d.ts.map +1 -0
  44. package/dist/generated/builder-enums.js +80 -0
  45. package/dist/generated/builder-enums.js.map +1 -0
  46. package/dist/generated/codes.d.ts +109 -0
  47. package/dist/generated/codes.d.ts.map +1 -0
  48. package/dist/generated/codes.js +508 -0
  49. package/dist/generated/codes.js.map +1 -0
  50. package/dist/generated/explain.d.ts +6 -0
  51. package/dist/generated/explain.d.ts.map +1 -0
  52. package/dist/generated/explain.js +155 -0
  53. package/dist/generated/explain.js.map +1 -0
  54. package/dist/generated/extract.d.ts +235 -0
  55. package/dist/generated/extract.d.ts.map +1 -0
  56. package/dist/generated/extract.js +4 -0
  57. package/dist/generated/extract.js.map +1 -0
  58. package/dist/index.d.ts +30 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +37 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/init.d.ts +88 -0
  63. package/dist/init.d.ts.map +1 -0
  64. package/dist/init.js +139 -0
  65. package/dist/init.js.map +1 -0
  66. package/dist/internal/handle.d.ts +58 -0
  67. package/dist/internal/handle.d.ts.map +1 -0
  68. package/dist/internal/handle.js +113 -0
  69. package/dist/internal/handle.js.map +1 -0
  70. package/dist/internal/instance.d.ts +56 -0
  71. package/dist/internal/instance.d.ts.map +1 -0
  72. package/dist/internal/instance.js +125 -0
  73. package/dist/internal/instance.js.map +1 -0
  74. package/dist/loader/fetch.d.ts +3 -0
  75. package/dist/loader/fetch.d.ts.map +1 -0
  76. package/dist/loader/fetch.js +2 -0
  77. package/dist/loader/fetch.js.map +1 -0
  78. package/dist/loader/node.d.ts +3 -0
  79. package/dist/loader/node.d.ts.map +1 -0
  80. package/dist/loader/node.js +9 -0
  81. package/dist/loader/node.js.map +1 -0
  82. package/dist/loader/workerd.d.ts +3 -0
  83. package/dist/loader/workerd.d.ts.map +1 -0
  84. package/dist/loader/workerd.js +15 -0
  85. package/dist/loader/workerd.js.map +1 -0
  86. package/dist/matrix.d.ts +16 -0
  87. package/dist/matrix.d.ts.map +1 -0
  88. package/dist/matrix.js +36 -0
  89. package/dist/matrix.js.map +1 -0
  90. package/dist/path.d.ts +34 -0
  91. package/dist/path.d.ts.map +1 -0
  92. package/dist/path.js +49 -0
  93. package/dist/path.js.map +1 -0
  94. package/dist/source/http.d.ts +36 -0
  95. package/dist/source/http.d.ts.map +1 -0
  96. package/dist/source/http.js +211 -0
  97. package/dist/source/http.js.map +1 -0
  98. package/dist/source/range.d.ts +75 -0
  99. package/dist/source/range.d.ts.map +1 -0
  100. package/dist/source/range.js +100 -0
  101. package/dist/source/range.js.map +1 -0
  102. package/dist/text.d.ts +90 -0
  103. package/dist/text.d.ts.map +1 -0
  104. package/dist/text.js +127 -0
  105. package/dist/text.js.map +1 -0
  106. package/dist/transaction.d.ts +36 -0
  107. package/dist/transaction.d.ts.map +1 -0
  108. package/dist/transaction.js +47 -0
  109. package/dist/transaction.js.map +1 -0
  110. package/dist/types.d.ts +79 -0
  111. package/dist/types.d.ts.map +1 -0
  112. package/dist/types.js +2 -0
  113. package/dist/types.js.map +1 -0
  114. package/dist/version.d.ts +3 -0
  115. package/dist/version.d.ts.map +1 -0
  116. package/dist/version.js +6 -0
  117. package/dist/version.js.map +1 -0
  118. package/dist/worker/client.d.ts +88 -0
  119. package/dist/worker/client.d.ts.map +1 -0
  120. package/dist/worker/client.js +407 -0
  121. package/dist/worker/client.js.map +1 -0
  122. package/dist/worker/emitter.d.ts +12 -0
  123. package/dist/worker/emitter.d.ts.map +1 -0
  124. package/dist/worker/emitter.js +34 -0
  125. package/dist/worker/emitter.js.map +1 -0
  126. package/dist/worker/entry.d.ts +2 -0
  127. package/dist/worker/entry.d.ts.map +1 -0
  128. package/dist/worker/entry.js +4 -0
  129. package/dist/worker/entry.js.map +1 -0
  130. package/dist/worker/index.d.ts +7 -0
  131. package/dist/worker/index.d.ts.map +1 -0
  132. package/dist/worker/index.js +4 -0
  133. package/dist/worker/index.js.map +1 -0
  134. package/dist/worker/protocol.d.ts +82 -0
  135. package/dist/worker/protocol.d.ts.map +1 -0
  136. package/dist/worker/protocol.js +11 -0
  137. package/dist/worker/protocol.js.map +1 -0
  138. package/dist/worker/server.d.ts +51 -0
  139. package/dist/worker/server.d.ts.map +1 -0
  140. package/dist/worker/server.js +493 -0
  141. package/dist/worker/server.js.map +1 -0
  142. package/dist/worker/support.d.ts +43 -0
  143. package/dist/worker/support.d.ts.map +1 -0
  144. package/dist/worker/support.js +26 -0
  145. package/dist/worker/support.js.map +1 -0
  146. package/dist/worker/transfer.d.ts +3 -0
  147. package/dist/worker/transfer.d.ts.map +1 -0
  148. package/dist/worker/transfer.js +13 -0
  149. package/dist/worker/transfer.js.map +1 -0
  150. package/dist/worker/types.d.ts +50 -0
  151. package/dist/worker/types.d.ts.map +1 -0
  152. package/dist/worker/types.js +2 -0
  153. package/dist/worker/types.js.map +1 -0
  154. package/docs/AGENTS.md +14 -0
  155. package/docs/api/README.md +147 -0
  156. package/docs/api/classes/Builder.md +467 -0
  157. package/docs/api/classes/Document.md +742 -0
  158. package/docs/api/classes/Font.md +74 -0
  159. package/docs/api/classes/Image.md +140 -0
  160. package/docs/api/classes/LaminaPdfError.md +189 -0
  161. package/docs/api/classes/Page.md +178 -0
  162. package/docs/api/classes/PageRef.md +253 -0
  163. package/docs/api/classes/PageText.md +129 -0
  164. package/docs/api/classes/PageTextRun.md +167 -0
  165. package/docs/api/classes/PendingPath.md +97 -0
  166. package/docs/api/classes/SaveJob.md +205 -0
  167. package/docs/api/classes/Surface.md +326 -0
  168. package/docs/api/classes/Transaction.md +111 -0
  169. package/docs/api/functions/callbackSource.md +33 -0
  170. package/docs/api/functions/httpRangeSource.md +48 -0
  171. package/docs/api/functions/init.md +36 -0
  172. package/docs/api/functions/isExtractLoaded.md +21 -0
  173. package/docs/api/functions/isInitialized.md +19 -0
  174. package/docs/api/functions/isLaminaPdfError.md +41 -0
  175. package/docs/api/functions/isTextLoaded.md +19 -0
  176. package/docs/api/functions/loadExtract.md +28 -0
  177. package/docs/api/functions/loadText.md +28 -0
  178. package/docs/api/functions/onLeak.md +29 -0
  179. package/docs/api/functions/reset.md +22 -0
  180. package/docs/api/functions/wasmMemory.md +22 -0
  181. package/docs/api/interfaces/BuilderOptions.md +108 -0
  182. package/docs/api/interfaces/ByteRange.md +29 -0
  183. package/docs/api/interfaces/ChunkOptions.md +37 -0
  184. package/docs/api/interfaces/Diagnostic.md +67 -0
  185. package/docs/api/interfaces/ExtractOptions.md +92 -0
  186. package/docs/api/interfaces/ExtractResult.md +37 -0
  187. package/docs/api/interfaces/FontInfo.md +37 -0
  188. package/docs/api/interfaces/HttpRangeOptions.md +78 -0
  189. package/docs/api/interfaces/InitOptions.md +40 -0
  190. package/docs/api/interfaces/Leak.md +21 -0
  191. package/docs/api/interfaces/Location.md +53 -0
  192. package/docs/api/interfaces/OpLog.md +25 -0
  193. package/docs/api/interfaces/OpenOptions.md +37 -0
  194. package/docs/api/interfaces/PageTextOptions.md +21 -0
  195. package/docs/api/interfaces/PathBuilder.md +195 -0
  196. package/docs/api/interfaces/QuadPoint.md +25 -0
  197. package/docs/api/interfaces/RangeOptions.md +54 -0
  198. package/docs/api/interfaces/RangeSource.md +59 -0
  199. package/docs/api/interfaces/StrokeStyle.md +61 -0
  200. package/docs/api/interfaces/TagSpec.md +69 -0
  201. package/docs/api/interfaces/TextBoxOptions.md +93 -0
  202. package/docs/api/interfaces/TextGlyph.md +29 -0
  203. package/docs/api/interfaces/TextOptions.md +101 -0
  204. package/docs/api/interfaces/WasmMemory.md +37 -0
  205. package/docs/api/type-aliases/AfRelationship.md +15 -0
  206. package/docs/api/type-aliases/Align.md +15 -0
  207. package/docs/api/type-aliases/ArtifactKind.md +15 -0
  208. package/docs/api/type-aliases/AttachmentOptions.md +15 -0
  209. package/docs/api/type-aliases/BlendMode.md +15 -0
  210. package/docs/api/type-aliases/BoxRect.md +15 -0
  211. package/docs/api/type-aliases/BuildOptions.md +15 -0
  212. package/docs/api/type-aliases/Cell.md +71 -0
  213. package/docs/api/type-aliases/Chunk.md +79 -0
  214. package/docs/api/type-aliases/Color.md +16 -0
  215. package/docs/api/type-aliases/Coordinates.md +55 -0
  216. package/docs/api/type-aliases/Direction.md +15 -0
  217. package/docs/api/type-aliases/DocumentInfo.md +15 -0
  218. package/docs/api/type-aliases/DropReason.md +15 -0
  219. package/docs/api/type-aliases/Dropped.md +59 -0
  220. package/docs/api/type-aliases/Edited.md +15 -0
  221. package/docs/api/type-aliases/ErrorCode.md +15 -0
  222. package/docs/api/type-aliases/ErrorKind.md +15 -0
  223. package/docs/api/type-aliases/ExtractFormat.md +15 -0
  224. package/docs/api/type-aliases/ExtractedBlock.md +82 -0
  225. package/docs/api/type-aliases/ExtractedPage.md +65 -0
  226. package/docs/api/type-aliases/ExtractedSource.md +48 -0
  227. package/docs/api/type-aliases/Extraction.md +22 -0
  228. package/docs/api/type-aliases/FillRule.md +15 -0
  229. package/docs/api/type-aliases/Fit.md +15 -0
  230. package/docs/api/type-aliases/Flags.md +15 -0
  231. package/docs/api/type-aliases/Generator.md +41 -0
  232. package/docs/api/type-aliases/GlyphQuad.md +15 -0
  233. package/docs/api/type-aliases/InfoPatch.md +15 -0
  234. package/docs/api/type-aliases/LaminaPdfWarning.md +16 -0
  235. package/docs/api/type-aliases/LimitName.md +15 -0
  236. package/docs/api/type-aliases/Limits.md +15 -0
  237. package/docs/api/type-aliases/LineBox.md +15 -0
  238. package/docs/api/type-aliases/LineCap.md +15 -0
  239. package/docs/api/type-aliases/LineJoin.md +15 -0
  240. package/docs/api/type-aliases/LinkTarget.md +15 -0
  241. package/docs/api/type-aliases/Metadata.md +15 -0
  242. package/docs/api/type-aliases/Op.md +15 -0
  243. package/docs/api/type-aliases/OutlineEntry.md +15 -0
  244. package/docs/api/type-aliases/Overflow.md +15 -0
  245. package/docs/api/type-aliases/PageInfo.md +15 -0
  246. package/docs/api/type-aliases/PageLabel.md +15 -0
  247. package/docs/api/type-aliases/PageSizeName.md +15 -0
  248. package/docs/api/type-aliases/Point.md +15 -0
  249. package/docs/api/type-aliases/Profile.md +15 -0
  250. package/docs/api/type-aliases/Progress.md +15 -0
  251. package/docs/api/type-aliases/ReadingOrder.md +15 -0
  252. package/docs/api/type-aliases/Rect.md +15 -0
  253. package/docs/api/type-aliases/Region.md +31 -0
  254. package/docs/api/type-aliases/RenderMode.md +15 -0
  255. package/docs/api/type-aliases/Rotation.md +15 -0
  256. package/docs/api/type-aliases/SaveOptions.md +15 -0
  257. package/docs/api/type-aliases/SaveReport.md +15 -0
  258. package/docs/api/type-aliases/Span.md +63 -0
  259. package/docs/api/type-aliases/SplitOn.md +15 -0
  260. package/docs/api/type-aliases/Standard14.md +15 -0
  261. package/docs/api/type-aliases/StructRef.md +41 -0
  262. package/docs/api/type-aliases/StructSource.md +17 -0
  263. package/docs/api/type-aliases/TableDetector.md +15 -0
  264. package/docs/api/type-aliases/TableMode.md +15 -0
  265. package/docs/api/type-aliases/TableScope.md +15 -0
  266. package/docs/api/type-aliases/Tag.md +15 -0
  267. package/docs/api/type-aliases/TagName.md +15 -0
  268. package/docs/api/type-aliases/TextLayout.md +15 -0
  269. package/docs/api/type-aliases/TextRange.md +33 -0
  270. package/docs/api/type-aliases/TextRunInfo.md +15 -0
  271. package/docs/api/type-aliases/Transform.md +15 -0
  272. package/docs/api/type-aliases/UndoOutcome.md +15 -0
  273. package/docs/api/type-aliases/ViewerPreferences.md +15 -0
  274. package/docs/api/type-aliases/WarningCode.md +15 -0
  275. package/docs/api/type-aliases/WasmSource.md +16 -0
  276. package/docs/api/variables/Matrix.md +99 -0
  277. package/docs/api/variables/PAGE_SIZES.md +15 -0
  278. package/docs/api/variables/TAG_NAMES.md +15 -0
  279. package/docs/errors/README.md +156 -0
  280. package/docs/errors/aes-padding-invalid.md +34 -0
  281. package/docs/errors/already-initialized.md +34 -0
  282. package/docs/errors/binary-output-to-terminal.md +35 -0
  283. package/docs/errors/builder-finished.md +35 -0
  284. package/docs/errors/cancelled.md +35 -0
  285. package/docs/errors/cmap-invalid.md +42 -0
  286. package/docs/errors/collection-index.md +33 -0
  287. package/docs/errors/color-components.md +33 -0
  288. package/docs/errors/content-bad-operands.md +36 -0
  289. package/docs/errors/content-path-unpainted.md +36 -0
  290. package/docs/errors/content-resource-missing.md +37 -0
  291. package/docs/errors/content-syntax.md +36 -0
  292. package/docs/errors/content-unbalanced-bt.md +36 -0
  293. package/docs/errors/content-unbalanced-marked.md +36 -0
  294. package/docs/errors/content-unbalanced-q.md +36 -0
  295. package/docs/errors/content-unknown-operator.md +37 -0
  296. package/docs/errors/data-pending.md +34 -0
  297. package/docs/errors/decompress.md +34 -0
  298. package/docs/errors/device-color-without-output-intent.md +33 -0
  299. package/docs/errors/direct-page.md +34 -0
  300. package/docs/errors/disposed.md +34 -0
  301. package/docs/errors/document-changed.md +34 -0
  302. package/docs/errors/embedded-file-forbidden.md +35 -0
  303. package/docs/errors/embedded-file-without-mime-type.md +36 -0
  304. package/docs/errors/encoding-full.md +34 -0
  305. package/docs/errors/encrypted-base.md +33 -0
  306. package/docs/errors/extract-limit-blocks.md +35 -0
  307. package/docs/errors/extract-module-not-loaded.md +37 -0
  308. package/docs/errors/extract-reading-order-ambiguous.md +32 -0
  309. package/docs/errors/extract-struct-tree-ignored.md +32 -0
  310. package/docs/errors/extract-table-ambiguous.md +32 -0
  311. package/docs/errors/extract-table-limit.md +35 -0
  312. package/docs/errors/extract-untagged-content.md +32 -0
  313. package/docs/errors/fetch-failed.md +34 -0
  314. package/docs/errors/flate-truncated.md +34 -0
  315. package/docs/errors/font-invalid.md +36 -0
  316. package/docs/errors/font-mismatch.md +34 -0
  317. package/docs/errors/font-not-embeddable.md +34 -0
  318. package/docs/errors/font-not-embedded.md +35 -0
  319. package/docs/errors/font-not-shapable.md +33 -0
  320. package/docs/errors/glyph-out-of-range.md +34 -0
  321. package/docs/errors/glyph-without-unicode.md +35 -0
  322. package/docs/errors/heading-level-skipped.md +36 -0
  323. package/docs/errors/image-data-length.md +33 -0
  324. package/docs/errors/image-too-large.md +32 -0
  325. package/docs/errors/inline-image-unterminated.md +36 -0
  326. package/docs/errors/input-unreadable.md +37 -0
  327. package/docs/errors/instance-reset.md +34 -0
  328. package/docs/errors/invalid-argument.md +33 -0
  329. package/docs/errors/invalid-axis-value.md +32 -0
  330. package/docs/errors/invalid-box.md +34 -0
  331. package/docs/errors/invalid-color.md +32 -0
  332. package/docs/errors/invalid-command-line.md +44 -0
  333. package/docs/errors/invalid-date.md +34 -0
  334. package/docs/errors/invalid-entry.md +34 -0
  335. package/docs/errors/invalid-feature.md +32 -0
  336. package/docs/errors/invalid-font.md +32 -0
  337. package/docs/errors/invalid-geometry.md +32 -0
  338. package/docs/errors/invalid-icc-profile.md +32 -0
  339. package/docs/errors/invalid-image.md +33 -0
  340. package/docs/errors/invalid-op-log.md +33 -0
  341. package/docs/errors/invalid-page-label.md +34 -0
  342. package/docs/errors/invalid-page-labels.md +32 -0
  343. package/docs/errors/invalid-page-range.md +37 -0
  344. package/docs/errors/invalid-rotate.md +34 -0
  345. package/docs/errors/invalid-structure-nesting.md +38 -0
  346. package/docs/errors/invalid-structure.md +34 -0
  347. package/docs/errors/invalid-text-range.md +33 -0
  348. package/docs/errors/job-finished.md +34 -0
  349. package/docs/errors/limit-exceeded.md +38 -0
  350. package/docs/errors/link-without-contents.md +33 -0
  351. package/docs/errors/link-without-structure.md +37 -0
  352. package/docs/errors/missing-alt-text.md +33 -0
  353. package/docs/errors/missing-glyph.md +33 -0
  354. package/docs/errors/missing-header.md +37 -0
  355. package/docs/errors/missing-lang.md +32 -0
  356. package/docs/errors/missing-root.md +34 -0
  357. package/docs/errors/missing-title.md +32 -0
  358. package/docs/errors/name-tree-node-skipped.md +34 -0
  359. package/docs/errors/nested-transaction.md +34 -0
  360. package/docs/errors/no-pending-save.md +32 -0
  361. package/docs/errors/no-transaction.md +33 -0
  362. package/docs/errors/not-initialized.md +35 -0
  363. package/docs/errors/not-pdf.md +33 -0
  364. package/docs/errors/not-rebased.md +35 -0
  365. package/docs/errors/object-number-out-of-range.md +38 -0
  366. package/docs/errors/objstm-index-mismatch.md +36 -0
  367. package/docs/errors/out-of-memory.md +38 -0
  368. package/docs/errors/outline-cycle.md +34 -0
  369. package/docs/errors/outline-item-skipped.md +34 -0
  370. package/docs/errors/output-unwritable.md +37 -0
  371. package/docs/errors/overwrite-refused.md +36 -0
  372. package/docs/errors/page-count-mismatch.md +34 -0
  373. package/docs/errors/page-index-out-of-range.md +34 -0
  374. package/docs/errors/page-tree-node-skipped.md +35 -0
  375. package/docs/errors/password-required.md +36 -0
  376. package/docs/errors/path-outside-roots.md +32 -0
  377. package/docs/errors/perms-mismatch.md +34 -0
  378. package/docs/errors/profile-version-conflict.md +35 -0
  379. package/docs/errors/reference-cycle.md +35 -0
  380. package/docs/errors/render-backend-unavailable.md +32 -0
  381. package/docs/errors/render-failed.md +33 -0
  382. package/docs/errors/render-too-large.md +36 -0
  383. package/docs/errors/repaired-base.md +34 -0
  384. package/docs/errors/requires-rewrite.md +38 -0
  385. package/docs/errors/saved-not-rebased.md +34 -0
  386. package/docs/errors/sink-not-empty.md +33 -0
  387. package/docs/errors/sink.md +31 -0
  388. package/docs/errors/source-budget-exceeded.md +34 -0
  389. package/docs/errors/source-changed.md +33 -0
  390. package/docs/errors/source.md +30 -0
  391. package/docs/errors/stale-generation.md +34 -0
  392. package/docs/errors/stream-length-recovered.md +37 -0
  393. package/docs/errors/strict.md +34 -0
  394. package/docs/errors/subset-failed.md +31 -0
  395. package/docs/errors/syntax.md +34 -0
  396. package/docs/errors/text-module-not-loaded.md +36 -0
  397. package/docs/errors/text-overflow.md +34 -0
  398. package/docs/errors/tounicode-conflict.md +32 -0
  399. package/docs/errors/type.md +34 -0
  400. package/docs/errors/unexpected-eof.md +34 -0
  401. package/docs/errors/unknown-axis.md +33 -0
  402. package/docs/errors/unknown-code.md +36 -0
  403. package/docs/errors/unknown-destination.md +33 -0
  404. package/docs/errors/unknown-font.md +33 -0
  405. package/docs/errors/unknown-option.md +33 -0
  406. package/docs/errors/unknown-page.md +34 -0
  407. package/docs/errors/unmapped-glyph.md +36 -0
  408. package/docs/errors/unnumbered-heading-misused.md +34 -0
  409. package/docs/errors/unset-object.md +30 -0
  410. package/docs/errors/unsupported-filter.md +34 -0
  411. package/docs/errors/unsupported-image.md +33 -0
  412. package/docs/errors/unsupported-layout-option.md +33 -0
  413. package/docs/errors/unsupported-security-handler.md +34 -0
  414. package/docs/errors/unsupported-version.md +32 -0
  415. package/docs/errors/untagged-content.md +35 -0
  416. package/docs/errors/warnings-truncated.md +35 -0
  417. package/docs/errors/wasm-trap.md +37 -0
  418. package/docs/errors/whole-font-rebuilt.md +30 -0
  419. package/docs/errors/worker-crashed.md +33 -0
  420. package/docs/errors/worker-failed.md +32 -0
  421. package/docs/errors/worker-version-mismatch.md +34 -0
  422. package/docs/errors/would-invalidate-signatures.md +38 -0
  423. package/docs/errors/wrong-document.md +33 -0
  424. package/docs/errors/wrong-password.md +34 -0
  425. package/docs/errors/xobject-cycle.md +36 -0
  426. package/docs/errors/xref-repaired.md +36 -0
  427. package/docs/errors/xrefstm-ignored.md +34 -0
  428. package/docs/llms.txt +88 -0
  429. package/docs/pages/concepts/dependencies.md +44 -0
  430. package/docs/pages/concepts/errors-and-warnings.md +64 -0
  431. package/docs/pages/concepts/how-lamina-thinks.md +86 -0
  432. package/docs/pages/concepts/pages-and-coordinates.md +67 -0
  433. package/docs/pages/guides/accessible-pdfs.md +260 -0
  434. package/docs/pages/guides/archival-pdfs.md +429 -0
  435. package/docs/pages/guides/edit-a-pdf.md +137 -0
  436. package/docs/pages/guides/fonts-and-text.md +202 -0
  437. package/docs/pages/guides/images-and-vectors.md +219 -0
  438. package/docs/pages/guides/keep-the-page-responsive.md +81 -0
  439. package/docs/pages/guides/links-outlines-and-metadata.md +222 -0
  440. package/docs/pages/guides/password-protected-files.md +70 -0
  441. package/docs/pages/guides/save-a-pdf.md +144 -0
  442. package/docs/pages/guides/untrusted-files.md +80 -0
  443. package/docs/pages/index.md +33 -0
  444. package/docs/pages/install.md +75 -0
  445. package/docs/pages/quick-start/browser.md +67 -0
  446. package/docs/pages/quick-start/bun.md +60 -0
  447. package/docs/pages/quick-start/deno.md +58 -0
  448. package/docs/pages/quick-start/node.md +61 -0
  449. package/docs/pages/quick-start/rust.md +58 -0
  450. package/docs/pages/quick-start/workers.md +139 -0
  451. package/docs/pages/recipes/cloudflare-worker.md +115 -0
  452. package/docs/pages/recipes/extract-markdown.md +114 -0
  453. package/docs/pages/recipes/generate-then-edit.md +135 -0
  454. package/docs/pages/recipes/hello.md +94 -0
  455. package/docs/pages/recipes/images-and-vectors.md +209 -0
  456. package/docs/pages/recipes/invoice.md +226 -0
  457. package/docs/pages/recipes/links-and-outlines.md +215 -0
  458. package/docs/pages/recipes/multilingual.md +189 -0
  459. package/docs/pages/recipes/open-untrusted.md +65 -0
  460. package/docs/pages/recipes/pdf-a-archive.md +205 -0
  461. package/docs/pages/recipes/pdf-a3-invoice-with-xml.md +222 -0
  462. package/docs/pages/recipes/pdf-ua-report.md +237 -0
  463. package/docs/pages/recipes/report.md +125 -0
  464. package/docs/pages/recipes/web-worker-client.md +64 -0
  465. package/docs/pages/recipes.md +47 -0
  466. package/docs/pages/reference/changelog.md +86 -0
  467. package/docs/pages/reference/codes.md +14 -0
  468. package/docs/pages/reference/glossary.md +108 -0
  469. package/docs/pages/reference/rust.md +36 -0
  470. package/docs/pages/reference/stability.md +59 -0
  471. package/docs/pages/start/coding-agents.md +45 -0
  472. package/docs/pages/start/first-pdf.md +77 -0
  473. package/docs/pages/troubleshooting.md +74 -0
  474. package/docs/renames.json +86 -0
  475. package/docs/schemas/error.schema.json +305 -0
  476. package/docs/schemas/renames.schema.json +29 -0
  477. package/package.json +93 -3
  478. package/schemas/error.schema.json +305 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../src/worker/transfer.ts"],"names":[],"mappings":"AAEA,sGAAsG;AACtG,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,EAAE,CAOnD"}
@@ -0,0 +1,13 @@
1
+ // Which buffers a message between the page and the worker can move instead of copying.
2
+ /** The buffer of `value` if transferring it moves exactly `value` (not a larger or shared buffer). */
3
+ export function whole(value) {
4
+ if (value instanceof ArrayBuffer)
5
+ return [value];
6
+ if (!ArrayBuffer.isView(value))
7
+ return [];
8
+ const { buffer } = value;
9
+ return buffer instanceof ArrayBuffer && value.byteOffset === 0 && value.byteLength === buffer.byteLength
10
+ ? [buffer]
11
+ : [];
12
+ }
13
+ //# sourceMappingURL=transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/worker/transfer.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,sGAAsG;AACtG,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,IAAI,KAAK,YAAY,WAAW;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,OAAO,MAAM,YAAY,WAAW,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;QACtG,CAAC,CAAC,CAAC,MAAM,CAAC;QACV,CAAC,CAAC,EAAE,CAAC;AACT,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { Document, PageRef } from "../document.js";
2
+ import type { ExtractFormat, ExtractOptions, ExtractResult } from "../extract.js";
3
+ import type { Progress } from "../types.js";
4
+ import type { RemotableDocumentMember, RemotablePageMember } from "./support.js";
5
+ /** Per-call options of the worker client. */
6
+ export interface CallOptions {
7
+ /** Aborting it rejects the call (`cancelled`) and stops it in the worker (see the README). */
8
+ readonly signal?: AbortSignal;
9
+ /** Progress of a stepped call (`save`), sent as events, at most every 50 ms. */
10
+ readonly onProgress?: (progress: Progress) => void;
11
+ /**
12
+ * Transfer the input buffer to the worker instead of copying it: faster for large files, but
13
+ * the caller's buffer is detached (empty) afterwards. Default `false` (copy). Only a buffer
14
+ * the input covers whole moves: a subarray or a `SharedArrayBuffer` view is copied.
15
+ */
16
+ readonly transfer?: boolean;
17
+ }
18
+ /**
19
+ * Options of an extension call (`client.request`, for packages that extend the worker, such as
20
+ * `@laminapdf/viewer`): the worker runs the highest `priority` first, and runs calls with the same
21
+ * `key` once (each caller still gets its own answer).
22
+ */
23
+ export interface RequestOptions extends CallOptions {
24
+ readonly priority?: number;
25
+ readonly key?: string;
26
+ }
27
+ /** `R` as the page receives it. */
28
+ export type RemoteResult<R> = R extends PageRef ? RemotePage : R;
29
+ /** A member of `T` as a remote method. */
30
+ export type RemoteMember<T> = T extends (...args: infer A) => infer R ? (...args: [...A, options?: CallOptions]) => Promise<RemoteResult<R>> : (options?: CallOptions) => Promise<RemoteResult<T>>;
31
+ /** A document in the worker. Close it (or `await using`) to free it there. */
32
+ export type RemoteDocument = {
33
+ readonly [K in Exclude<RemotableDocumentMember, "extract">]: RemoteMember<Document[K]>;
34
+ } & {
35
+ /**
36
+ * {@link Document.extract} in the worker, typed by `format` like the sync one (a mapped type
37
+ * would lose the generic). It runs to the end: an aborted `signal` rejects the call, and the
38
+ * worker finishes the extraction before its next call.
39
+ */
40
+ extract<F extends ExtractFormat>(options: ExtractOptions<F>, call?: CallOptions): Promise<ExtractResult[F]>;
41
+ /** Frees the document in the worker; a second call, or one after the worker stopped, does nothing. */
42
+ close(): Promise<void>;
43
+ /** `close()`, for `await using`. */
44
+ [Symbol.asyncDispose](): Promise<void>;
45
+ };
46
+ /** A page of a document in the worker (freed with its document). */
47
+ export type RemotePage = {
48
+ readonly [K in RemotablePageMember]: RemoteMember<PageRef[K]>;
49
+ };
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/worker/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEjF,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,mCAAmC;AACnC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC;AAEjE,0CAA0C;AAC1C,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACjE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACpE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAExD,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CACvF,GAAG;IACF;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5G,sGAAsG;IACtG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,oCAAoC;IACpC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,CAAC,IAAI,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/worker/types.ts"],"names":[],"mappings":""}
package/docs/AGENTS.md ADDED
@@ -0,0 +1,14 @@
1
+ ---
2
+ version: "0.2.0-alpha.3"
3
+ ---
4
+
5
+ ## Lamina PDF
6
+
7
+ This project uses Lamina PDF (`@laminapdf/sdk` in TypeScript, the `laminapdf` crate in Rust) to create, read, edit and save PDF files.
8
+
9
+ - **Read the installed docs first.** They match the installed version: `node_modules/@laminapdf/sdk/docs/llms.txt` lists every page, and `docs/api/` holds the API reference. In Rust they are in the `laminapdf` crate's `docs/` folder. Online: https://docs.laminapdf.com/llms.txt (the latest version).
10
+ - **Call `await init()` once before anything else.** After it every call is synchronous. Fonts and text need `await init({ text: true })`; reading text needs the extract or text module (`await init({ extract: true })` or `{ text: true }`). Rust needs no setup.
11
+ - **Positions are points from the top-left corner** of the page as it is displayed, with y going down. A text position is its baseline. Page numbers in the API start at 0 (`page(0)` is the first page).
12
+ - **Branch on an error's `code`, never its message.** Every error is a `LaminaPdfError` with a stable `code` (such as `wrong-password`) and a `hint`; `docs/errors/<code>.md` explains each one. Warnings, which say what Lamina PDF repaired in a damaged file, use the same codes.
13
+ - **Free what you open.** A `Document` or `Builder` holds WebAssembly memory: declare it with `using`, or call `free()` when you are done.
14
+ - **Check `docs/renames.json`** when a name in older code or an older answer doesn't exist: it says what each renamed item is called now.
@@ -0,0 +1,147 @@
1
+ ---
2
+ version: "0.2.0-alpha.3"
3
+ ---
4
+
5
+ **@laminapdf/sdk**
6
+
7
+ ***
8
+
9
+ # @laminapdf/sdk
10
+
11
+ ## Classes
12
+
13
+ - [Builder](classes/Builder.md)
14
+ - [Document](classes/Document.md)
15
+ - [Font](classes/Font.md)
16
+ - [Image](classes/Image.md)
17
+ - [LaminaPdfError](classes/LaminaPdfError.md)
18
+ - [Page](classes/Page.md)
19
+ - [PageRef](classes/PageRef.md)
20
+ - [PageText](classes/PageText.md)
21
+ - [PageTextRun](classes/PageTextRun.md)
22
+ - [PendingPath](classes/PendingPath.md)
23
+ - [SaveJob](classes/SaveJob.md)
24
+ - [Surface](classes/Surface.md)
25
+ - [Transaction](classes/Transaction.md)
26
+
27
+ ## Interfaces
28
+
29
+ - [BuilderOptions](interfaces/BuilderOptions.md)
30
+ - [ByteRange](interfaces/ByteRange.md)
31
+ - [ChunkOptions](interfaces/ChunkOptions.md)
32
+ - [Diagnostic](interfaces/Diagnostic.md)
33
+ - [ExtractOptions](interfaces/ExtractOptions.md)
34
+ - [ExtractResult](interfaces/ExtractResult.md)
35
+ - [FontInfo](interfaces/FontInfo.md)
36
+ - [HttpRangeOptions](interfaces/HttpRangeOptions.md)
37
+ - [InitOptions](interfaces/InitOptions.md)
38
+ - [Leak](interfaces/Leak.md)
39
+ - [Location](interfaces/Location.md)
40
+ - [OpenOptions](interfaces/OpenOptions.md)
41
+ - [OpLog](interfaces/OpLog.md)
42
+ - [PageTextOptions](interfaces/PageTextOptions.md)
43
+ - [PathBuilder](interfaces/PathBuilder.md)
44
+ - [QuadPoint](interfaces/QuadPoint.md)
45
+ - [RangeOptions](interfaces/RangeOptions.md)
46
+ - [RangeSource](interfaces/RangeSource.md)
47
+ - [StrokeStyle](interfaces/StrokeStyle.md)
48
+ - [TagSpec](interfaces/TagSpec.md)
49
+ - [TextBoxOptions](interfaces/TextBoxOptions.md)
50
+ - [TextGlyph](interfaces/TextGlyph.md)
51
+ - [TextOptions](interfaces/TextOptions.md)
52
+ - [WasmMemory](interfaces/WasmMemory.md)
53
+
54
+ ## Type Aliases
55
+
56
+ - [AfRelationship](type-aliases/AfRelationship.md)
57
+ - [Align](type-aliases/Align.md)
58
+ - [ArtifactKind](type-aliases/ArtifactKind.md)
59
+ - [AttachmentOptions](type-aliases/AttachmentOptions.md)
60
+ - [BlendMode](type-aliases/BlendMode.md)
61
+ - [BoxRect](type-aliases/BoxRect.md)
62
+ - [BuildOptions](type-aliases/BuildOptions.md)
63
+ - [Cell](type-aliases/Cell.md)
64
+ - [Chunk](type-aliases/Chunk.md)
65
+ - [Color](type-aliases/Color.md)
66
+ - [Coordinates](type-aliases/Coordinates.md)
67
+ - [Direction](type-aliases/Direction.md)
68
+ - [DocumentInfo](type-aliases/DocumentInfo.md)
69
+ - [Dropped](type-aliases/Dropped.md)
70
+ - [DropReason](type-aliases/DropReason.md)
71
+ - [Edited](type-aliases/Edited.md)
72
+ - [ErrorCode](type-aliases/ErrorCode.md)
73
+ - [ErrorKind](type-aliases/ErrorKind.md)
74
+ - [ExtractedBlock](type-aliases/ExtractedBlock.md)
75
+ - [ExtractedPage](type-aliases/ExtractedPage.md)
76
+ - [ExtractedSource](type-aliases/ExtractedSource.md)
77
+ - [ExtractFormat](type-aliases/ExtractFormat.md)
78
+ - [Extraction](type-aliases/Extraction.md)
79
+ - [FillRule](type-aliases/FillRule.md)
80
+ - [Fit](type-aliases/Fit.md)
81
+ - [Flags](type-aliases/Flags.md)
82
+ - [Generator](type-aliases/Generator.md)
83
+ - [GlyphQuad](type-aliases/GlyphQuad.md)
84
+ - [InfoPatch](type-aliases/InfoPatch.md)
85
+ - [LaminaPdfWarning](type-aliases/LaminaPdfWarning.md)
86
+ - [LimitName](type-aliases/LimitName.md)
87
+ - [Limits](type-aliases/Limits.md)
88
+ - [LineBox](type-aliases/LineBox.md)
89
+ - [LineCap](type-aliases/LineCap.md)
90
+ - [LineJoin](type-aliases/LineJoin.md)
91
+ - [LinkTarget](type-aliases/LinkTarget.md)
92
+ - [Metadata](type-aliases/Metadata.md)
93
+ - [Op](type-aliases/Op.md)
94
+ - [OutlineEntry](type-aliases/OutlineEntry.md)
95
+ - [Overflow](type-aliases/Overflow.md)
96
+ - [PageInfo](type-aliases/PageInfo.md)
97
+ - [PageLabel](type-aliases/PageLabel.md)
98
+ - [PageSizeName](type-aliases/PageSizeName.md)
99
+ - [Point](type-aliases/Point.md)
100
+ - [Profile](type-aliases/Profile.md)
101
+ - [Progress](type-aliases/Progress.md)
102
+ - [ReadingOrder](type-aliases/ReadingOrder.md)
103
+ - [Rect](type-aliases/Rect.md)
104
+ - [Region](type-aliases/Region.md)
105
+ - [RenderMode](type-aliases/RenderMode.md)
106
+ - [Rotation](type-aliases/Rotation.md)
107
+ - [SaveOptions](type-aliases/SaveOptions.md)
108
+ - [SaveReport](type-aliases/SaveReport.md)
109
+ - [Span](type-aliases/Span.md)
110
+ - [SplitOn](type-aliases/SplitOn.md)
111
+ - [Standard14](type-aliases/Standard14.md)
112
+ - [StructRef](type-aliases/StructRef.md)
113
+ - [StructSource](type-aliases/StructSource.md)
114
+ - [TableDetector](type-aliases/TableDetector.md)
115
+ - [TableMode](type-aliases/TableMode.md)
116
+ - [TableScope](type-aliases/TableScope.md)
117
+ - [Tag](type-aliases/Tag.md)
118
+ - [TagName](type-aliases/TagName.md)
119
+ - [TextLayout](type-aliases/TextLayout.md)
120
+ - [TextRange](type-aliases/TextRange.md)
121
+ - [TextRunInfo](type-aliases/TextRunInfo.md)
122
+ - [Transform](type-aliases/Transform.md)
123
+ - [UndoOutcome](type-aliases/UndoOutcome.md)
124
+ - [ViewerPreferences](type-aliases/ViewerPreferences.md)
125
+ - [WarningCode](type-aliases/WarningCode.md)
126
+ - [WasmSource](type-aliases/WasmSource.md)
127
+
128
+ ## Variables
129
+
130
+ - [Matrix](variables/Matrix.md)
131
+ - [PAGE\_SIZES](variables/PAGE_SIZES.md)
132
+ - [TAG\_NAMES](variables/TAG_NAMES.md)
133
+
134
+ ## Functions
135
+
136
+ - [callbackSource](functions/callbackSource.md)
137
+ - [httpRangeSource](functions/httpRangeSource.md)
138
+ - [init](functions/init.md)
139
+ - [isExtractLoaded](functions/isExtractLoaded.md)
140
+ - [isInitialized](functions/isInitialized.md)
141
+ - [isLaminaPdfError](functions/isLaminaPdfError.md)
142
+ - [isTextLoaded](functions/isTextLoaded.md)
143
+ - [loadExtract](functions/loadExtract.md)
144
+ - [loadText](functions/loadText.md)
145
+ - [onLeak](functions/onLeak.md)
146
+ - [reset](functions/reset.md)
147
+ - [wasmMemory](functions/wasmMemory.md)
@@ -0,0 +1,467 @@
1
+ ---
2
+ version: "0.2.0-alpha.3"
3
+ ---
4
+
5
+ [**@laminapdf/sdk**](../README.md)
6
+
7
+ ***
8
+
9
+ [@laminapdf/sdk](../README.md) / Builder
10
+
11
+ # Class: Builder
12
+
13
+ Builds a new document: pages, navigation and metadata; [Builder.finish](#finish) returns a
14
+ [Document](Document.md) to save. Created in the text module when it is loaded (or `text: true`),
15
+ else in the reading module (text, extract, then base; vector and image pages only). `finish()`
16
+ frees its WebAssembly memory; to drop it unfinished, use `using` or [Builder.free](#free).
17
+
18
+ ## Example
19
+
20
+ ```ts
21
+ await init({ text: true });
22
+ const b = new Builder({ producer: "my app" });
23
+ const page = b.page("A4");
24
+ page.surface().text("Hello, world!", { font: Font.standard("Helvetica"), size: 24, at: [72, 96] });
25
+ page.finish();
26
+ const bytes = b.finish().save();
27
+ ```
28
+
29
+ ## Extends
30
+
31
+ - `Handle`\<`BaseGlue`\>
32
+
33
+ ## Constructors
34
+
35
+ ### Constructor
36
+
37
+ > **new Builder**(`options?`): `Builder`
38
+
39
+ #### Parameters
40
+
41
+ ##### options?
42
+
43
+ [`BuilderOptions`](../interfaces/BuilderOptions.md) = `{}`
44
+
45
+ version, file ID, producer, creation date, compression, tagging,
46
+ conformance `profiles`; `text`.
47
+
48
+ #### Returns
49
+
50
+ `Builder`
51
+
52
+ #### Throws
53
+
54
+ [LaminaPdfError](LaminaPdfError.md) `not-initialized`, `text-module-not-loaded`; `unknown-option`.
55
+
56
+ #### Overrides
57
+
58
+ `Handle<BaseGlue>.constructor`
59
+
60
+ ## Accessors
61
+
62
+ ### hasText
63
+
64
+ #### Get Signature
65
+
66
+ > **get** **hasText**(): `boolean`
67
+
68
+ Whether this builder draws in the text module (fonts and text).
69
+
70
+ ##### Returns
71
+
72
+ `boolean`
73
+
74
+ ***
75
+
76
+ ### instance
77
+
78
+ #### Get Signature
79
+
80
+ > **get** `protected` **instance**(): `Instance`\<`G`\>
81
+
82
+ The instance this handle lives in (for the handles it makes).
83
+
84
+ ##### Returns
85
+
86
+ `Instance`\<`G`\>
87
+
88
+ #### Inherited from
89
+
90
+ `Handle.instance`
91
+
92
+ ***
93
+
94
+ ### isFreed
95
+
96
+ #### Get Signature
97
+
98
+ > **get** `protected` **isFreed**(): `boolean`
99
+
100
+ Whether `free()` ran on this handle or its parent.
101
+
102
+ ##### Returns
103
+
104
+ `boolean`
105
+
106
+ #### Inherited from
107
+
108
+ `Handle.isFreed`
109
+
110
+ ***
111
+
112
+ ### owned
113
+
114
+ #### Get Signature
115
+
116
+ > **get** `protected` **owned**(): `boolean`
117
+
118
+ Whether the handle's raw objects can be freed: its instance is current and hasn't trapped.
119
+
120
+ ##### Returns
121
+
122
+ `boolean`
123
+
124
+ #### Inherited from
125
+
126
+ `Handle.owned`
127
+
128
+ ## Methods
129
+
130
+ ### \[dispose\]()
131
+
132
+ > **\[dispose\]**(): `void`
133
+
134
+ Frees the handle at the end of a `using` block (an alias of `free()`).
135
+
136
+ #### Returns
137
+
138
+ `void`
139
+
140
+ #### Inherited from
141
+
142
+ `Handle.[dispose]`
143
+
144
+ ***
145
+
146
+ ### assertLive()
147
+
148
+ > `protected` **assertLive**(): `void`
149
+
150
+ #### Returns
151
+
152
+ `void`
153
+
154
+ #### Throws
155
+
156
+ [LaminaPdfError](LaminaPdfError.md) `disposed` after `free()` (here or on the parent);
157
+ `instance-reset` when the instance was replaced (a trapped one is replaced first).
158
+
159
+ #### Inherited from
160
+
161
+ `Handle.assertLive`
162
+
163
+ ***
164
+
165
+ ### attach()
166
+
167
+ > **attach**(`name`, `bytes`, `mime`, `options?`): `this`
168
+
169
+ Attaches a file: PDF/A-3b's associated files, such as an e-invoice's XML. The same name
170
+ again replaces the file. PDF/A-2b and PDF/A-2u refuse attachments at [Builder.finish](#finish),
171
+ and every PDF/A profile refuses one without a MIME type there.
172
+
173
+ #### Parameters
174
+
175
+ ##### name
176
+
177
+ `string`
178
+
179
+ the file name viewers show.
180
+
181
+ ##### bytes
182
+
183
+ `Uint8Array`
184
+
185
+ the file's contents.
186
+
187
+ ##### mime
188
+
189
+ `string`
190
+
191
+ its MIME type, such as `text/xml`.
192
+
193
+ ##### options?
194
+
195
+ `AttachmentInit`
196
+
197
+ how the file relates to the document (`relationship`, default
198
+ `unspecified`), its `description` and `modDate`.
199
+
200
+ #### Returns
201
+
202
+ `this`
203
+
204
+ #### Throws
205
+
206
+ [LaminaPdfError](LaminaPdfError.md) `invalid-argument` for a `modDate` that isn't a PDF date,
207
+ `unknown-option` for an unknown key, `builder-finished` after [Builder.finish](#finish).
208
+
209
+ ***
210
+
211
+ ### call()
212
+
213
+ > `protected` **call**\<`T`\>(`f`): `T`
214
+
215
+ Runs `f` (calls into the glue) on this live handle; see Instance.call.
216
+
217
+ #### Type Parameters
218
+
219
+ ##### T
220
+
221
+ `T`
222
+
223
+ #### Parameters
224
+
225
+ ##### f
226
+
227
+ (`glue`) => `T`
228
+
229
+ #### Returns
230
+
231
+ `T`
232
+
233
+ #### Inherited from
234
+
235
+ `Handle.call`
236
+
237
+ ***
238
+
239
+ ### destination()
240
+
241
+ > **destination**(`name`, `index`, `fit?`): `this`
242
+
243
+ Defines the named destination `name`: page `index`, shown as `fit` (default: the page).
244
+
245
+ #### Parameters
246
+
247
+ ##### name
248
+
249
+ `string`
250
+
251
+ ##### index
252
+
253
+ `number`
254
+
255
+ ##### fit?
256
+
257
+ `FitInit`
258
+
259
+ #### Returns
260
+
261
+ `this`
262
+
263
+ ***
264
+
265
+ ### finish()
266
+
267
+ > **finish**(): [`Document`](Document.md)
268
+
269
+ Writes fonts, links, the page tree, outline and metadata; the builder (and its unfinished
270
+ pages) take no more calls afterwards.
271
+
272
+ #### Returns
273
+
274
+ [`Document`](Document.md)
275
+
276
+ the new document (unsaved; its save is a full rewrite).
277
+
278
+ #### Throws
279
+
280
+ [LaminaPdfError](LaminaPdfError.md) `page-index-out-of-range`, `unknown-destination`,
281
+ `invalid-page-labels`, `invalid-geometry`, `subset-failed`, `builder-finished`; under a
282
+ profile (`profiles` in the options), the first rule the document breaks, with that rule's
283
+ code (the error reference lists them, from `profile-version-conflict` on).
284
+
285
+ ***
286
+
287
+ ### font()
288
+
289
+ > **font**(`font`): [`FontInfo`](../interfaces/FontInfo.md)
290
+
291
+ Registers `font` with this builder (otherwise it is registered at first use).
292
+
293
+ #### Parameters
294
+
295
+ ##### font
296
+
297
+ [`Font`](Font.md)
298
+
299
+ #### Returns
300
+
301
+ [`FontInfo`](../interfaces/FontInfo.md)
302
+
303
+ #### Throws
304
+
305
+ [LaminaPdfError](LaminaPdfError.md) `text-module-not-loaded`, `invalid-font`, `font-not-embeddable`.
306
+
307
+ ***
308
+
309
+ ### free()
310
+
311
+ > **free**(): `void`
312
+
313
+ Frees the handle's memory now; without it, the garbage collector frees it later. A second
314
+ call does nothing, and any other call afterwards throws `disposed`. Prefer `using`, which
315
+ calls this at the end of the block.
316
+
317
+ #### Returns
318
+
319
+ `void`
320
+
321
+ #### Inherited from
322
+
323
+ `Handle.free`
324
+
325
+ ***
326
+
327
+ ### lang()
328
+
329
+ > **lang**(`tag`): `this`
330
+
331
+ The natural language (`/Lang`), a BCP 47 tag.
332
+
333
+ #### Parameters
334
+
335
+ ##### tag
336
+
337
+ `string`
338
+
339
+ #### Returns
340
+
341
+ `this`
342
+
343
+ ***
344
+
345
+ ### metadata()
346
+
347
+ > **metadata**(`metadata`): `this`
348
+
349
+ The metadata, written as the Info dictionary and an XMP packet.
350
+
351
+ #### Parameters
352
+
353
+ ##### metadata
354
+
355
+ `MetadataInit`
356
+
357
+ #### Returns
358
+
359
+ `this`
360
+
361
+ ***
362
+
363
+ ### outline()
364
+
365
+ > **outline**(`entries`): `string`[]
366
+
367
+ Adds outline (bookmark) items with their children.
368
+
369
+ #### Parameters
370
+
371
+ ##### entries
372
+
373
+ readonly `OutlineEntryInit`[]
374
+
375
+ #### Returns
376
+
377
+ `string`[]
378
+
379
+ their IDs, in pre-order.
380
+
381
+ ***
382
+
383
+ ### page()
384
+
385
+ > **page**(`size?`): [`Page`](Page.md)
386
+
387
+ A new page of a named size or `[width, height]` in points.
388
+
389
+ #### Parameters
390
+
391
+ ##### size?
392
+
393
+ [`PageSizeName`](../type-aliases/PageSizeName.md) \| readonly \[`number`, `number`\] = `"A4"`
394
+
395
+ #### Returns
396
+
397
+ [`Page`](Page.md)
398
+
399
+ ***
400
+
401
+ ### pageLabels()
402
+
403
+ > **pageLabels**(`ranges`): `this`
404
+
405
+ The page labels (`i, ii, 1, 2…`), ranges by first page; checked at finish.
406
+
407
+ #### Parameters
408
+
409
+ ##### ranges
410
+
411
+ readonly `PageLabelInit`[]
412
+
413
+ #### Returns
414
+
415
+ `this`
416
+
417
+ ***
418
+
419
+ ### release()
420
+
421
+ > `protected` **release**(): `void`
422
+
423
+ Frees the WebAssembly side; called at most once, and only while [owned](#owned).
424
+
425
+ #### Returns
426
+
427
+ `void`
428
+
429
+ #### Overrides
430
+
431
+ `Handle.release`
432
+
433
+ ***
434
+
435
+ ### viewerPreferences()
436
+
437
+ > **viewerPreferences**(`preferences`): `this`
438
+
439
+ How viewers present the document when it opens.
440
+
441
+ #### Parameters
442
+
443
+ ##### preferences
444
+
445
+ `ViewerPreferencesInit`
446
+
447
+ #### Returns
448
+
449
+ `this`
450
+
451
+ ***
452
+
453
+ ### create()
454
+
455
+ > `static` **create**(`options?`): `Builder`
456
+
457
+ As `new Builder(options)`.
458
+
459
+ #### Parameters
460
+
461
+ ##### options?
462
+
463
+ [`BuilderOptions`](../interfaces/BuilderOptions.md)
464
+
465
+ #### Returns
466
+
467
+ `Builder`