pretext-pdf 1.1.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/CHANGELOG.md +659 -0
  2. package/README.md +82 -7
  3. package/dist/allowed-props.d.ts +76 -0
  4. package/dist/allowed-props.d.ts.map +1 -1
  5. package/dist/allowed-props.js.map +1 -1
  6. package/dist/assets/generators/barcode.d.ts +9 -0
  7. package/dist/assets/generators/barcode.d.ts.map +1 -0
  8. package/dist/assets/generators/barcode.js +24 -0
  9. package/dist/assets/generators/barcode.js.map +1 -0
  10. package/dist/assets/generators/chart.d.ts +13 -0
  11. package/dist/assets/generators/chart.d.ts.map +1 -0
  12. package/dist/assets/generators/chart.js +32 -0
  13. package/dist/assets/generators/chart.js.map +1 -0
  14. package/dist/assets/generators/qr.d.ts +9 -0
  15. package/dist/assets/generators/qr.d.ts.map +1 -0
  16. package/dist/assets/generators/qr.js +25 -0
  17. package/dist/assets/generators/qr.js.map +1 -0
  18. package/dist/assets/index.d.ts +19 -0
  19. package/dist/assets/index.d.ts.map +1 -0
  20. package/dist/assets/index.js +19 -0
  21. package/dist/assets/index.js.map +1 -0
  22. package/dist/assets/loaders/images.d.ts +20 -0
  23. package/dist/assets/loaders/images.d.ts.map +1 -0
  24. package/dist/assets/loaders/images.js +69 -0
  25. package/dist/assets/loaders/images.js.map +1 -0
  26. package/dist/assets/loaders/orchestrator.d.ts +24 -0
  27. package/dist/assets/loaders/orchestrator.d.ts.map +1 -0
  28. package/dist/assets/loaders/orchestrator.js +109 -0
  29. package/dist/assets/loaders/orchestrator.js.map +1 -0
  30. package/dist/assets/loaders/vectors.d.ts +25 -0
  31. package/dist/assets/loaders/vectors.d.ts.map +1 -0
  32. package/dist/assets/loaders/vectors.js +118 -0
  33. package/dist/assets/loaders/vectors.js.map +1 -0
  34. package/dist/assets/loaders/watermark.d.ts +12 -0
  35. package/dist/assets/loaders/watermark.d.ts.map +1 -0
  36. package/dist/assets/loaders/watermark.js +40 -0
  37. package/dist/assets/loaders/watermark.js.map +1 -0
  38. package/dist/assets/security/fetch.d.ts +14 -0
  39. package/dist/assets/security/fetch.d.ts.map +1 -0
  40. package/dist/assets/security/fetch.js +112 -0
  41. package/dist/assets/security/fetch.js.map +1 -0
  42. package/dist/assets/security/ipv4-normalize.d.ts +28 -0
  43. package/dist/assets/security/ipv4-normalize.d.ts.map +1 -0
  44. package/dist/assets/security/ipv4-normalize.js +116 -0
  45. package/dist/assets/security/ipv4-normalize.js.map +1 -0
  46. package/dist/assets/security/path-allowlist.d.ts +12 -0
  47. package/dist/assets/security/path-allowlist.d.ts.map +1 -0
  48. package/dist/assets/security/path-allowlist.js +26 -0
  49. package/dist/assets/security/path-allowlist.js.map +1 -0
  50. package/dist/assets/security/url-validation.d.ts +22 -0
  51. package/dist/assets/security/url-validation.d.ts.map +1 -0
  52. package/dist/assets/security/url-validation.js +164 -0
  53. package/dist/assets/security/url-validation.js.map +1 -0
  54. package/dist/assets/svg/dimensions.d.ts +19 -0
  55. package/dist/assets/svg/dimensions.d.ts.map +1 -0
  56. package/dist/assets/svg/dimensions.js +43 -0
  57. package/dist/assets/svg/dimensions.js.map +1 -0
  58. package/dist/assets/svg/rasterize.d.ts +6 -0
  59. package/dist/assets/svg/rasterize.d.ts.map +1 -0
  60. package/dist/assets/svg/rasterize.js +38 -0
  61. package/dist/assets/svg/rasterize.js.map +1 -0
  62. package/dist/assets/svg/resolve-content.d.ts +16 -0
  63. package/dist/assets/svg/resolve-content.d.ts.map +1 -0
  64. package/dist/assets/svg/resolve-content.js +38 -0
  65. package/dist/assets/svg/resolve-content.js.map +1 -0
  66. package/dist/assets/svg/sanitize.d.ts +22 -0
  67. package/dist/assets/svg/sanitize.d.ts.map +1 -0
  68. package/dist/assets/svg/sanitize.js +46 -0
  69. package/dist/assets/svg/sanitize.js.map +1 -0
  70. package/dist/assets/util/redact-path.d.ts +14 -0
  71. package/dist/assets/util/redact-path.d.ts.map +1 -0
  72. package/dist/assets/util/redact-path.js +16 -0
  73. package/dist/assets/util/redact-path.js.map +1 -0
  74. package/dist/assets.d.ts +10 -27
  75. package/dist/assets.d.ts.map +1 -1
  76. package/dist/assets.js +10 -549
  77. package/dist/assets.js.map +1 -1
  78. package/dist/builder.d.ts.map +1 -1
  79. package/dist/builder.js +2 -1
  80. package/dist/builder.js.map +1 -1
  81. package/dist/cli.js +11 -1
  82. package/dist/cli.js.map +1 -1
  83. package/dist/compat.d.ts +63 -1
  84. package/dist/compat.d.ts.map +1 -1
  85. package/dist/compat.js +42 -5
  86. package/dist/compat.js.map +1 -1
  87. package/dist/errors.d.ts +2 -2
  88. package/dist/errors.d.ts.map +1 -1
  89. package/dist/errors.js +2 -2
  90. package/dist/errors.js.map +1 -1
  91. package/dist/fonts.d.ts.map +1 -1
  92. package/dist/fonts.js +8 -10
  93. package/dist/fonts.js.map +1 -1
  94. package/dist/index.d.ts +1 -1
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +7 -5
  97. package/dist/index.js.map +1 -1
  98. package/dist/layout-state.d.ts +1 -1
  99. package/dist/layout-state.d.ts.map +1 -1
  100. package/dist/layout-state.js +5 -0
  101. package/dist/layout-state.js.map +1 -1
  102. package/dist/measure-blocks/float-group.d.ts +9 -0
  103. package/dist/measure-blocks/float-group.d.ts.map +1 -0
  104. package/dist/measure-blocks/float-group.js +103 -0
  105. package/dist/measure-blocks/float-group.js.map +1 -0
  106. package/dist/measure-blocks/helpers.d.ts +44 -0
  107. package/dist/measure-blocks/helpers.d.ts.map +1 -0
  108. package/dist/measure-blocks/helpers.js +43 -0
  109. package/dist/measure-blocks/helpers.js.map +1 -0
  110. package/dist/measure-blocks/highlight.d.ts +26 -0
  111. package/dist/measure-blocks/highlight.d.ts.map +1 -0
  112. package/dist/measure-blocks/highlight.js +169 -0
  113. package/dist/measure-blocks/highlight.js.map +1 -0
  114. package/dist/measure-blocks/image.d.ts +9 -0
  115. package/dist/measure-blocks/image.d.ts.map +1 -0
  116. package/dist/measure-blocks/image.js +136 -0
  117. package/dist/measure-blocks/image.js.map +1 -0
  118. package/dist/measure-blocks/index.d.ts +24 -0
  119. package/dist/measure-blocks/index.d.ts.map +1 -0
  120. package/dist/measure-blocks/index.js +179 -0
  121. package/dist/measure-blocks/index.js.map +1 -0
  122. package/dist/measure-blocks/list.d.ts +8 -0
  123. package/dist/measure-blocks/list.d.ts.map +1 -0
  124. package/dist/measure-blocks/list.js +108 -0
  125. package/dist/measure-blocks/list.js.map +1 -0
  126. package/dist/measure-blocks/simple-blocks.d.ts +18 -0
  127. package/dist/measure-blocks/simple-blocks.d.ts.map +1 -0
  128. package/dist/measure-blocks/simple-blocks.js +121 -0
  129. package/dist/measure-blocks/simple-blocks.js.map +1 -0
  130. package/dist/measure-blocks/table/columns.d.ts +17 -0
  131. package/dist/measure-blocks/table/columns.d.ts.map +1 -0
  132. package/dist/measure-blocks/table/columns.js +83 -0
  133. package/dist/measure-blocks/table/columns.js.map +1 -0
  134. package/dist/measure-blocks/table/measure.d.ts +8 -0
  135. package/dist/measure-blocks/table/measure.d.ts.map +1 -0
  136. package/dist/measure-blocks/table/measure.js +231 -0
  137. package/dist/measure-blocks/table/measure.js.map +1 -0
  138. package/dist/measure-blocks/table/spans.d.ts +25 -0
  139. package/dist/measure-blocks/table/spans.d.ts.map +1 -0
  140. package/dist/measure-blocks/table/spans.js +55 -0
  141. package/dist/measure-blocks/table/spans.js.map +1 -0
  142. package/dist/measure-blocks/text-blocks.d.ts +17 -0
  143. package/dist/measure-blocks/text-blocks.d.ts.map +1 -0
  144. package/dist/measure-blocks/text-blocks.js +242 -0
  145. package/dist/measure-blocks/text-blocks.js.map +1 -0
  146. package/dist/measure-text.d.ts +21 -3
  147. package/dist/measure-text.d.ts.map +1 -1
  148. package/dist/measure-text.js +87 -36
  149. package/dist/measure-text.js.map +1 -1
  150. package/dist/measure.d.ts +1 -1
  151. package/dist/measure.d.ts.map +1 -1
  152. package/dist/measure.js +8 -6
  153. package/dist/measure.js.map +1 -1
  154. package/dist/node-polyfill.d.ts.map +1 -1
  155. package/dist/node-polyfill.js +9 -0
  156. package/dist/node-polyfill.js.map +1 -1
  157. package/dist/pipeline-footnotes.d.ts +1 -1
  158. package/dist/pipeline-footnotes.d.ts.map +1 -1
  159. package/dist/pipeline-toc.d.ts +1 -1
  160. package/dist/pipeline-toc.d.ts.map +1 -1
  161. package/dist/pipeline.d.ts +3 -3
  162. package/dist/pipeline.d.ts.map +1 -1
  163. package/dist/pipeline.js +4 -5
  164. package/dist/pipeline.js.map +1 -1
  165. package/dist/plugin-types.d.ts +1 -1
  166. package/dist/plugin-types.d.ts.map +1 -1
  167. package/dist/post-process.d.ts +2 -2
  168. package/dist/post-process.d.ts.map +1 -1
  169. package/dist/post-process.js +32 -9
  170. package/dist/post-process.js.map +1 -1
  171. package/dist/render-blocks/blockquote.d.ts +7 -0
  172. package/dist/render-blocks/blockquote.d.ts.map +1 -0
  173. package/dist/render-blocks/blockquote.js +87 -0
  174. package/dist/render-blocks/blockquote.js.map +1 -0
  175. package/dist/render-blocks/callout.d.ts +7 -0
  176. package/dist/render-blocks/callout.d.ts.map +1 -0
  177. package/dist/render-blocks/callout.js +84 -0
  178. package/dist/render-blocks/callout.js.map +1 -0
  179. package/dist/render-blocks/code.d.ts +7 -0
  180. package/dist/render-blocks/code.d.ts.map +1 -0
  181. package/dist/render-blocks/code.js +84 -0
  182. package/dist/render-blocks/code.js.map +1 -0
  183. package/dist/render-blocks/footnote.d.ts +11 -0
  184. package/dist/render-blocks/footnote.d.ts.map +1 -0
  185. package/dist/render-blocks/footnote.js +45 -0
  186. package/dist/render-blocks/footnote.js.map +1 -0
  187. package/dist/render-blocks/header-footer.d.ts +11 -0
  188. package/dist/render-blocks/header-footer.d.ts.map +1 -0
  189. package/dist/render-blocks/header-footer.js +56 -0
  190. package/dist/render-blocks/header-footer.js.map +1 -0
  191. package/dist/render-blocks/hr.d.ts +7 -0
  192. package/dist/render-blocks/hr.d.ts.map +1 -0
  193. package/dist/render-blocks/hr.js +24 -0
  194. package/dist/render-blocks/hr.js.map +1 -0
  195. package/dist/render-blocks/image.d.ts +9 -0
  196. package/dist/render-blocks/image.d.ts.map +1 -0
  197. package/dist/render-blocks/image.js +135 -0
  198. package/dist/render-blocks/image.js.map +1 -0
  199. package/dist/render-blocks/index.d.ts +17 -0
  200. package/dist/render-blocks/index.d.ts.map +1 -0
  201. package/dist/render-blocks/index.js +17 -0
  202. package/dist/render-blocks/index.js.map +1 -0
  203. package/dist/render-blocks/list-item.d.ts +7 -0
  204. package/dist/render-blocks/list-item.d.ts.map +1 -0
  205. package/dist/render-blocks/list-item.js +80 -0
  206. package/dist/render-blocks/list-item.js.map +1 -0
  207. package/dist/render-blocks/rich.d.ts +7 -0
  208. package/dist/render-blocks/rich.d.ts.map +1 -0
  209. package/dist/render-blocks/rich.js +160 -0
  210. package/dist/render-blocks/rich.js.map +1 -0
  211. package/dist/render-blocks/table.d.ts +7 -0
  212. package/dist/render-blocks/table.d.ts.map +1 -0
  213. package/dist/render-blocks/table.js +139 -0
  214. package/dist/render-blocks/table.js.map +1 -0
  215. package/dist/render-blocks/text.d.ts +7 -0
  216. package/dist/render-blocks/text.d.ts.map +1 -0
  217. package/dist/render-blocks/text.js +183 -0
  218. package/dist/render-blocks/text.js.map +1 -0
  219. package/dist/render-blocks/watermark.d.ts +8 -0
  220. package/dist/render-blocks/watermark.d.ts.map +1 -0
  221. package/dist/render-blocks/watermark.js +52 -0
  222. package/dist/render-blocks/watermark.js.map +1 -0
  223. package/dist/render-extras.d.ts.map +1 -1
  224. package/dist/render-extras.js +1 -2
  225. package/dist/render-extras.js.map +1 -1
  226. package/dist/render-utils.d.ts.map +1 -1
  227. package/dist/render-utils.js +10 -6
  228. package/dist/render-utils.js.map +1 -1
  229. package/dist/render.d.ts.map +1 -1
  230. package/dist/render.js +9 -3
  231. package/dist/render.js.map +1 -1
  232. package/dist/rich-text.d.ts +2 -1
  233. package/dist/rich-text.d.ts.map +1 -1
  234. package/dist/rich-text.js +0 -1
  235. package/dist/rich-text.js.map +1 -1
  236. package/dist/types-internal.d.ts +19 -3
  237. package/dist/types-internal.d.ts.map +1 -1
  238. package/dist/types-public/document.d.ts +261 -0
  239. package/dist/types-public/document.d.ts.map +1 -0
  240. package/dist/types-public/document.js +2 -0
  241. package/dist/types-public/document.js.map +1 -0
  242. package/dist/types-public/elements-block.d.ts +246 -0
  243. package/dist/types-public/elements-block.d.ts.map +1 -0
  244. package/dist/types-public/elements-block.js +8 -0
  245. package/dist/types-public/elements-block.js.map +1 -0
  246. package/dist/types-public/elements-media.d.ts +199 -0
  247. package/dist/types-public/elements-media.d.ts.map +1 -0
  248. package/dist/types-public/elements-media.js +2 -0
  249. package/dist/types-public/elements-media.js.map +1 -0
  250. package/dist/types-public/elements-text.d.ts +327 -0
  251. package/dist/types-public/elements-text.d.ts.map +1 -0
  252. package/dist/types-public/elements-text.js +2 -0
  253. package/dist/types-public/elements-text.js.map +1 -0
  254. package/dist/types-public/index.d.ts +14 -0
  255. package/dist/types-public/index.d.ts.map +1 -0
  256. package/dist/types-public/index.js +2 -0
  257. package/dist/types-public/index.js.map +1 -0
  258. package/dist/types-public/render-options.d.ts +38 -0
  259. package/dist/types-public/render-options.d.ts.map +1 -0
  260. package/dist/types-public/render-options.js +2 -0
  261. package/dist/types-public/render-options.js.map +1 -0
  262. package/dist/types-public/union.d.ts +13 -0
  263. package/dist/types-public/union.d.ts.map +1 -0
  264. package/dist/types-public/union.js +2 -0
  265. package/dist/types-public/union.js.map +1 -0
  266. package/dist/types-public/validation.d.ts +64 -0
  267. package/dist/types-public/validation.d.ts.map +1 -0
  268. package/dist/types-public/validation.js +2 -0
  269. package/dist/types-public/validation.js.map +1 -0
  270. package/dist/types-public.d.ts +5 -1081
  271. package/dist/types-public.d.ts.map +1 -1
  272. package/dist/types.d.ts +1 -1
  273. package/dist/types.d.ts.map +1 -1
  274. package/dist/validate/document.d.ts +28 -0
  275. package/dist/validate/document.d.ts.map +1 -0
  276. package/dist/validate/document.js +295 -0
  277. package/dist/validate/document.js.map +1 -0
  278. package/dist/validate/elements/forms-floats.d.ts +19 -0
  279. package/dist/validate/elements/forms-floats.d.ts.map +1 -0
  280. package/dist/validate/elements/forms-floats.js +96 -0
  281. package/dist/validate/elements/forms-floats.js.map +1 -0
  282. package/dist/validate/elements/list.d.ts +10 -0
  283. package/dist/validate/elements/list.d.ts.map +1 -0
  284. package/dist/validate/elements/list.js +66 -0
  285. package/dist/validate/elements/list.js.map +1 -0
  286. package/dist/validate/elements/media.d.ts +23 -0
  287. package/dist/validate/elements/media.d.ts.map +1 -0
  288. package/dist/validate/elements/media.js +179 -0
  289. package/dist/validate/elements/media.js.map +1 -0
  290. package/dist/validate/elements/structural-simple.d.ts +21 -0
  291. package/dist/validate/elements/structural-simple.d.ts.map +1 -0
  292. package/dist/validate/elements/structural-simple.js +63 -0
  293. package/dist/validate/elements/structural-simple.js.map +1 -0
  294. package/dist/validate/elements/structural.d.ts +12 -0
  295. package/dist/validate/elements/structural.d.ts.map +1 -0
  296. package/dist/validate/elements/structural.js +12 -0
  297. package/dist/validate/elements/structural.js.map +1 -0
  298. package/dist/validate/elements/table.d.ts +10 -0
  299. package/dist/validate/elements/table.d.ts.map +1 -0
  300. package/dist/validate/elements/table.js +165 -0
  301. package/dist/validate/elements/table.js.map +1 -0
  302. package/dist/validate/elements/text.d.ts +26 -0
  303. package/dist/validate/elements/text.d.ts.map +1 -0
  304. package/dist/validate/elements/text.js +331 -0
  305. package/dist/validate/elements/text.js.map +1 -0
  306. package/dist/validate/errors.d.ts +9 -0
  307. package/dist/validate/errors.d.ts.map +1 -0
  308. package/dist/validate/errors.js +43 -0
  309. package/dist/validate/errors.js.map +1 -0
  310. package/dist/validate/fonts.d.ts +11 -0
  311. package/dist/validate/fonts.d.ts.map +1 -0
  312. package/dist/validate/fonts.js +118 -0
  313. package/dist/validate/fonts.js.map +1 -0
  314. package/dist/validate/helpers.d.ts +76 -0
  315. package/dist/validate/helpers.d.ts.map +1 -0
  316. package/dist/validate/helpers.js +169 -0
  317. package/dist/validate/helpers.js.map +1 -0
  318. package/dist/validate/index.d.ts +37 -0
  319. package/dist/validate/index.d.ts.map +1 -0
  320. package/dist/validate/index.js +279 -0
  321. package/dist/validate/index.js.map +1 -0
  322. package/dist/validate.d.ts +6 -18
  323. package/dist/validate.d.ts.map +1 -1
  324. package/dist/validate.js +6 -1585
  325. package/dist/validate.js.map +1 -1
  326. package/dist/vendor/pretext/VERSION.d.ts +3 -0
  327. package/dist/vendor/pretext/VERSION.d.ts.map +1 -0
  328. package/dist/vendor/pretext/VERSION.js +12 -0
  329. package/dist/vendor/pretext/VERSION.js.map +1 -0
  330. package/dist/version-check.d.ts +47 -0
  331. package/dist/version-check.d.ts.map +1 -0
  332. package/dist/version-check.js +75 -0
  333. package/dist/version-check.js.map +1 -0
  334. package/package.json +26 -7
  335. package/dist/measure-blocks.d.ts +0 -26
  336. package/dist/measure-blocks.d.ts.map +0 -1
  337. package/dist/measure-blocks.js +0 -1317
  338. package/dist/measure-blocks.js.map +0 -1
  339. package/dist/render-blocks.d.ts +0 -28
  340. package/dist/render-blocks.d.ts.map +0 -1
  341. package/dist/render-blocks.js +0 -1059
  342. package/dist/render-blocks.js.map +0 -1
@@ -0,0 +1,139 @@
1
+ /**
2
+ * render-blocks/table.ts — Table rendering
3
+ */
4
+ import { PDFDocument, rgb } from '@cantoo/pdf-lib';
5
+ import { PretextPdfError } from '../errors.js';
6
+ import { toPdfY, resolveX, hexToRgb, drawTabularText, } from '../render-utils.js';
7
+ // ─── Table rendering ──────────────────────────────────────────────────────────
8
+ export function renderTable(pdfPage, pagedBlock, geo, fontMap) {
9
+ const { measuredBlock, yFromTop } = pagedBlock;
10
+ const tableData = measuredBlock.tableData;
11
+ const startRow = pagedBlock.startRow ?? 0;
12
+ const endRow = pagedBlock.endRow ?? tableData.rows.length - tableData.headerRowCount;
13
+ const { columnWidths, cellPaddingH, cellPaddingV, borderWidth, borderColor, headerBgColor } = tableData;
14
+ // Collect the rows to render for this chunk: headers (always) + body slice
15
+ const headerRows = tableData.rows.slice(0, tableData.headerRowCount);
16
+ const bodyRows = tableData.rows.slice(tableData.headerRowCount);
17
+ const chunkBodyRows = bodyRows.slice(startRow, endRow);
18
+ const chunkRows = [...headerRows, ...chunkBodyRows];
19
+ const chunkStartAbsY = yFromTop + geo.margins.top + geo.headerHeight;
20
+ const totalTableWidth = columnWidths.reduce((s, w) => s + w, 0);
21
+ const totalChunkHeight = chunkRows.reduce((s, r) => s + r.height, 0);
22
+ // ── Pass 1: Cell backgrounds ──────────────────────────────────────────────
23
+ let rowAbsY = chunkStartAbsY;
24
+ for (const row of chunkRows) {
25
+ let cellX = geo.margins.left;
26
+ for (const cell of row.cells) {
27
+ if (!cell.isSpanPlaceholder) {
28
+ const cellRenderHeight = cell.spanHeight ?? row.height;
29
+ const bgColorHex = cell.bgColor ?? (row.isHeader ? headerBgColor : undefined);
30
+ if (bgColorHex) {
31
+ const [r, g, b] = hexToRgb(bgColorHex);
32
+ pdfPage.drawRectangle({ x: cellX, y: toPdfY(rowAbsY, cellRenderHeight, geo.pageHeight), width: cell.mergedWidth, height: cellRenderHeight, color: rgb(r, g, b), borderWidth: 0 });
33
+ }
34
+ }
35
+ cellX += cell.mergedWidth;
36
+ }
37
+ rowAbsY += row.height;
38
+ }
39
+ // ── Pass 2: Grid (border-collapse model) ─────────────────────────────────
40
+ // Draw outer border + internal lines — single-thickness at every edge.
41
+ if (borderWidth > 0) {
42
+ const [br, bg, bb] = hexToRgb(borderColor);
43
+ const borderRgb = rgb(br, bg, bb);
44
+ const tableTopPdfY = toPdfY(chunkStartAbsY, totalChunkHeight, geo.pageHeight);
45
+ // Outer border rectangle (no fill)
46
+ pdfPage.drawRectangle({
47
+ x: geo.margins.left,
48
+ y: tableTopPdfY,
49
+ width: totalTableWidth,
50
+ height: totalChunkHeight,
51
+ borderColor: borderRgb,
52
+ borderWidth,
53
+ });
54
+ // Internal horizontal lines (row separators, between rows, not at edges)
55
+ // Suppressed after rows that have a spanning cell crossing into the next row
56
+ let lineAbsY = chunkStartAbsY;
57
+ for (let ri = 0; ri < chunkRows.length - 1; ri++) {
58
+ lineAbsY += chunkRows[ri].height;
59
+ if (!chunkRows[ri].hasRowspan) {
60
+ const linePdfY = geo.pageHeight - lineAbsY;
61
+ pdfPage.drawLine({
62
+ start: { x: geo.margins.left, y: linePdfY },
63
+ end: { x: geo.margins.left + totalTableWidth, y: linePdfY },
64
+ thickness: borderWidth,
65
+ color: borderRgb,
66
+ });
67
+ }
68
+ }
69
+ // Internal vertical lines (column separators, between columns, not at edges)
70
+ // Draw per-row segments: a boundary absent from a row's activeBoundaries means a merged cell
71
+ // spans it — a full-chunk line would cut through it. Per-row drawing preserves colspan correctness.
72
+ // Pre-compute X positions once; convert each row's activeBoundaries to a Set for O(1) lookup.
73
+ const colBoundaryXPositions = [];
74
+ let bx = geo.margins.left;
75
+ for (let ci = 0; ci < columnWidths.length - 1; ci++) {
76
+ bx += columnWidths[ci];
77
+ colBoundaryXPositions.push(bx);
78
+ }
79
+ const rowBoundarySets = chunkRows.map(row => new Set(row.activeBoundaries));
80
+ let vertRowAbsY = chunkStartAbsY;
81
+ for (let ri = 0; ri < chunkRows.length; ri++) {
82
+ const row = chunkRows[ri];
83
+ const rowBoundarySet = rowBoundarySets[ri];
84
+ const rowTopPdfY = geo.pageHeight - vertRowAbsY;
85
+ const rowBottomPdfY = geo.pageHeight - (vertRowAbsY + row.height);
86
+ for (let ci = 0; ci < colBoundaryXPositions.length; ci++) {
87
+ if (rowBoundarySet.has(ci)) {
88
+ pdfPage.drawLine({
89
+ start: { x: colBoundaryXPositions[ci], y: rowTopPdfY },
90
+ end: { x: colBoundaryXPositions[ci], y: rowBottomPdfY },
91
+ thickness: borderWidth,
92
+ color: borderRgb,
93
+ });
94
+ }
95
+ }
96
+ vertRowAbsY += row.height;
97
+ }
98
+ }
99
+ // ── Pass 3: Cell text ─────────────────────────────────────────────────────
100
+ rowAbsY = chunkStartAbsY;
101
+ for (const row of chunkRows) {
102
+ let cellX = geo.margins.left;
103
+ for (const cell of row.cells) {
104
+ if (!cell.isSpanPlaceholder && cell.lines.length > 0) {
105
+ const pdfFont = fontMap.get(cell.fontKey);
106
+ if (!pdfFont) {
107
+ throw new PretextPdfError('FONT_NOT_LOADED', `Table cell font "${cell.fontKey}" not found in fontMap. This is a bug — font validation should have caught this.`);
108
+ }
109
+ const fontHeight = pdfFont.heightAtSize(cell.fontSize);
110
+ const [r, g, b] = hexToRgb(cell.color);
111
+ const textAreaX = cellX + cellPaddingH;
112
+ const textAreaWidth = cell.mergedWidth - 2 * cellPaddingH;
113
+ // For rowspan cells, vertically center within the full spanHeight
114
+ const cellRenderHeight = cell.spanHeight ?? row.height;
115
+ const totalTextHeight = cell.lines.length * cell.lineHeight;
116
+ const verticalOffset = Math.max(0, (cellRenderHeight - totalTextHeight - 2 * cellPaddingV) / 2);
117
+ for (let li = 0; li < cell.lines.length; li++) {
118
+ const line = cell.lines[li];
119
+ if (line.text === '')
120
+ continue;
121
+ const lineYFromPageTop = rowAbsY + cellPaddingV + verticalOffset + li * cell.lineHeight;
122
+ const pdfY = toPdfY(lineYFromPageTop, fontHeight, geo.pageHeight);
123
+ const trimmedText = line.text.trimEnd();
124
+ const lineWidth = pdfFont.widthOfTextAtSize(trimmedText, cell.fontSize);
125
+ const x = resolveX(cell.align, textAreaX, textAreaWidth, lineWidth);
126
+ if (cell.tabularNumbers) {
127
+ drawTabularText(pdfPage, trimmedText, x, pdfY, cell.fontSize, pdfFont, rgb(r, g, b));
128
+ }
129
+ else {
130
+ pdfPage.drawText(trimmedText, { x, y: pdfY, size: cell.fontSize, font: pdfFont, color: rgb(r, g, b) });
131
+ }
132
+ }
133
+ }
134
+ cellX += cell.mergedWidth;
135
+ }
136
+ rowAbsY += row.height;
137
+ }
138
+ }
139
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/render-blocks/table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * render-blocks/text.ts — Text block (paragraph + heading) rendering
3
+ */
4
+ import { PDFDocument } from '@cantoo/pdf-lib';
5
+ import type { PagedBlock, FontMap, PageGeometry } from '../types-internal.js';
6
+ export declare function renderTextBlock(pdfPage: ReturnType<PDFDocument['addPage']>, pagedBlock: PagedBlock, geo: PageGeometry, fontMap: FontMap, pdfDoc: PDFDocument): void;
7
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/render-blocks/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAO,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EACV,UAAU,EAAE,OAAO,EAAE,YAAY,EAClC,MAAM,sBAAsB,CAAA;AAe7B,wBAAgB,eAAe,CAC7B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,GAClB,IAAI,CAyLN"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * render-blocks/text.ts — Text block (paragraph + heading) rendering
3
+ */
4
+ import { PDFDocument, rgb } from '@cantoo/pdf-lib';
5
+ import { PretextPdfError } from '../errors.js';
6
+ import { drawJustifiedLine, addLinkAnnotation, addStickyNoteAnnotation, drawTextDecoration, toPdfY, resolveX, hexToRgb, drawTabularText, } from '../render-utils.js';
7
+ // ─── Text block rendering (paragraph + heading) ───────────────────────────────
8
+ export function renderTextBlock(pdfPage, pagedBlock, geo, fontMap, pdfDoc) {
9
+ const { measuredBlock, startLine, endLine, yFromTop } = pagedBlock;
10
+ const { element } = measuredBlock;
11
+ const lines = measuredBlock.lines.slice(startLine, endLine);
12
+ if (lines.length === 0)
13
+ return;
14
+ const pdfFont = fontMap.get(measuredBlock.fontKey);
15
+ if (!pdfFont) {
16
+ throw new PretextPdfError('FONT_NOT_LOADED', `Font "${measuredBlock.fontKey}" not found in fontMap. This is a bug — font validation should have caught this.`);
17
+ }
18
+ const colorHex = (element.type === 'paragraph' || element.type === 'heading')
19
+ ? (element.color ?? '#000000')
20
+ : '#000000';
21
+ const [r, g, b] = hexToRgb(colorHex);
22
+ const alignRaw = (element.type === 'paragraph' || element.type === 'heading')
23
+ ? (element.align ?? (measuredBlock.isRTL ? 'right' : 'left'))
24
+ : 'left';
25
+ // For resolveX, treat 'justify' as 'left' (justify is handled by drawJustifiedLine)
26
+ const align = alignRaw === 'justify' ? 'left' : alignRaw;
27
+ const fontHeight = pdfFont.heightAtSize(measuredBlock.fontSize);
28
+ // Narrowed reference for paragraph/heading-only fields (smallCaps, tabularNumbers, letterSpacing, annotation)
29
+ const textElement = (element.type === 'paragraph' || element.type === 'heading') ? element : null;
30
+ // Draw background color for paragraph and heading (if set)
31
+ if ((element.type === 'paragraph' || element.type === 'heading') && element.bgColor) {
32
+ const columnData = measuredBlock.columnData;
33
+ const chunkHeight = columnData
34
+ ? columnData.linesPerColumn * measuredBlock.lineHeight
35
+ : lines.length * measuredBlock.lineHeight;
36
+ const boxAbsY = yFromTop + geo.margins.top + geo.headerHeight;
37
+ const boxPdfY = toPdfY(boxAbsY, chunkHeight, geo.pageHeight);
38
+ const [bgR, bgG, bgB] = hexToRgb(element.bgColor);
39
+ pdfPage.drawRectangle({
40
+ x: geo.margins.left,
41
+ y: boxPdfY,
42
+ width: geo.contentWidth,
43
+ height: chunkHeight,
44
+ color: rgb(bgR, bgG, bgB),
45
+ borderWidth: 0,
46
+ });
47
+ }
48
+ // Multi-column layout — mirrors single-column features (smallCaps, letterSpacing, justify, decoration)
49
+ const columnData = measuredBlock.columnData;
50
+ if (columnData) {
51
+ const { columnGap, columnWidth, linesPerColumn } = columnData;
52
+ const hasSmallCaps = textElement?.smallCaps === true;
53
+ const mcFontSize = hasSmallCaps ? measuredBlock.fontSize * 0.8 : measuredBlock.fontSize;
54
+ const hasTabular = textElement?.tabularNumbers === true;
55
+ const letterSpacing = (textElement?.letterSpacing ?? 0) > 0 ? textElement.letterSpacing : 0;
56
+ for (let i = 0; i < lines.length; i++) {
57
+ const line = lines[i];
58
+ if (line.text === '')
59
+ continue;
60
+ const colIdx = Math.floor(i / linesPerColumn);
61
+ const lineInCol = i % linesPerColumn;
62
+ const lineYFromTop = yFromTop + (lineInCol * measuredBlock.lineHeight);
63
+ const absoluteYFromTop = lineYFromTop + geo.margins.top + geo.headerHeight;
64
+ const pdfY = toPdfY(absoluteYFromTop, fontHeight, geo.pageHeight);
65
+ const colX = geo.margins.left + colIdx * (columnWidth + columnGap);
66
+ let trimmedText = line.text.trimEnd();
67
+ if (hasSmallCaps)
68
+ trimmedText = trimmedText.toUpperCase();
69
+ // Last line of each column should not be force-justified (left-align instead)
70
+ const isLastLineInCol = lineInCol === linesPerColumn - 1 || i === lines.length - 1;
71
+ let drawX;
72
+ if (alignRaw === 'justify' && letterSpacing === 0 && !hasTabular) {
73
+ drawJustifiedLine(pdfPage, trimmedText, isLastLineInCol, colX, pdfY, columnWidth, mcFontSize, pdfFont, rgb(r, g, b));
74
+ drawX = colX;
75
+ }
76
+ else if (letterSpacing > 0) {
77
+ const alignWidth = pdfFont.widthOfTextAtSize(trimmedText, mcFontSize) + letterSpacing * (trimmedText.length - 1);
78
+ drawX = resolveX(align, colX, columnWidth, alignWidth);
79
+ let cx = drawX;
80
+ for (const ch of trimmedText) {
81
+ pdfPage.drawText(ch, { x: cx, y: pdfY, size: mcFontSize, font: pdfFont, color: rgb(r, g, b) });
82
+ cx += pdfFont.widthOfTextAtSize(ch, mcFontSize) + letterSpacing;
83
+ }
84
+ }
85
+ else if (hasTabular) {
86
+ const alignWidth = pdfFont.widthOfTextAtSize(trimmedText, mcFontSize);
87
+ drawX = resolveX(align, colX, columnWidth, alignWidth);
88
+ drawTabularText(pdfPage, trimmedText, drawX, pdfY, mcFontSize, pdfFont, rgb(r, g, b));
89
+ }
90
+ else {
91
+ const alignWidth = pdfFont.widthOfTextAtSize(trimmedText, mcFontSize);
92
+ drawX = resolveX(align, colX, columnWidth, alignWidth);
93
+ pdfPage.drawText(trimmedText, { x: drawX, y: pdfY, size: mcFontSize, font: pdfFont, color: rgb(r, g, b) });
94
+ }
95
+ // Text decoration (underline, strikethrough)
96
+ if ((element.type === 'paragraph' || element.type === 'heading') && (element.underline || element.strikethrough)) {
97
+ const lineWidth = pdfFont.widthOfTextAtSize(trimmedText, mcFontSize) + (letterSpacing > 0 ? letterSpacing * (trimmedText.length - 1) : 0);
98
+ drawTextDecoration(pdfPage, drawX, lineWidth, pdfY, mcFontSize, pdfFont, [r, g, b], { underline: element.underline ?? false, strikethrough: element.strikethrough ?? false });
99
+ }
100
+ // Hyperlink annotation
101
+ if ((element.type === 'paragraph' || element.type === 'heading') && element.url) {
102
+ const lineWidth = pdfFont.widthOfTextAtSize(trimmedText, mcFontSize) + (letterSpacing > 0 ? letterSpacing * (trimmedText.length - 1) : 0);
103
+ addLinkAnnotation(pdfDoc, pdfPage, drawX, pdfY, lineWidth, mcFontSize, element.url);
104
+ }
105
+ }
106
+ // Sticky note annotation (once per block, not per line)
107
+ if (textElement?.annotation) {
108
+ const ann = textElement.annotation;
109
+ const absY = yFromTop + geo.margins.top + geo.headerHeight;
110
+ const annotPdfY = geo.pageHeight - absY;
111
+ addStickyNoteAnnotation(pdfDoc, pdfPage, geo.margins.left, annotPdfY, ann.contents, ann.author, ann.color, ann.open);
112
+ }
113
+ return; // skip standard single-column path
114
+ }
115
+ // Single-column layout (standard path)
116
+ for (let i = 0; i < lines.length; i++) {
117
+ const line = lines[i];
118
+ if (line.text === '')
119
+ continue; // empty lines from \n\n — occupy space, draw nothing
120
+ const lineYFromTop = yFromTop + (i * measuredBlock.lineHeight);
121
+ const absoluteYFromTop = lineYFromTop + geo.margins.top + geo.headerHeight;
122
+ const pdfY = toPdfY(absoluteYFromTop, fontHeight, geo.pageHeight);
123
+ let trimmedText = line.text.trimEnd();
124
+ const isLastLine = i === lines.length - 1;
125
+ // smallCaps — uppercase text at 80% font size
126
+ const hasSmallCaps = textElement?.smallCaps === true;
127
+ const effectiveFontSize = hasSmallCaps ? measuredBlock.fontSize * 0.8 : measuredBlock.fontSize;
128
+ if (hasSmallCaps)
129
+ trimmedText = trimmedText.toUpperCase();
130
+ const hasTabular = textElement?.tabularNumbers === true;
131
+ // letterSpacing — draw char by char
132
+ const letterSpacing = (textElement?.letterSpacing ?? 0) > 0
133
+ ? textElement.letterSpacing
134
+ : 0;
135
+ let drawX;
136
+ if (alignRaw === 'justify' && letterSpacing === 0 && !hasTabular) {
137
+ drawJustifiedLine(pdfPage, trimmedText, isLastLine, geo.margins.left, pdfY, geo.contentWidth, effectiveFontSize, pdfFont, rgb(r, g, b));
138
+ drawX = geo.margins.left; // used for decoration below
139
+ }
140
+ else if (letterSpacing > 0) {
141
+ const alignWidth = pdfFont.widthOfTextAtSize(trimmedText, effectiveFontSize) + letterSpacing * (trimmedText.length - 1);
142
+ drawX = resolveX(align, geo.margins.left, geo.contentWidth, alignWidth);
143
+ let cx = drawX;
144
+ for (const ch of trimmedText) {
145
+ pdfPage.drawText(ch, { x: cx, y: pdfY, size: effectiveFontSize, font: pdfFont, color: rgb(r, g, b) });
146
+ cx += pdfFont.widthOfTextAtSize(ch, effectiveFontSize) + letterSpacing;
147
+ }
148
+ }
149
+ else if (hasTabular) {
150
+ const alignWidth = pdfFont.widthOfTextAtSize(trimmedText, effectiveFontSize);
151
+ drawX = resolveX(align, geo.margins.left, geo.contentWidth, alignWidth);
152
+ drawTabularText(pdfPage, trimmedText, drawX, pdfY, effectiveFontSize, pdfFont, rgb(r, g, b));
153
+ }
154
+ else {
155
+ const alignWidth = pdfFont.widthOfTextAtSize(trimmedText, effectiveFontSize);
156
+ drawX = resolveX(align, geo.margins.left, geo.contentWidth, alignWidth);
157
+ pdfPage.drawText(trimmedText, {
158
+ x: drawX,
159
+ y: pdfY,
160
+ size: effectiveFontSize,
161
+ font: pdfFont,
162
+ color: rgb(r, g, b),
163
+ });
164
+ }
165
+ if ((element.type === 'paragraph' || element.type === 'heading') && (element.underline || element.strikethrough)) {
166
+ const lineWidth = pdfFont.widthOfTextAtSize(trimmedText, effectiveFontSize) + (letterSpacing > 0 ? letterSpacing * (trimmedText.length - 1) : 0);
167
+ drawTextDecoration(pdfPage, drawX, lineWidth, pdfY, effectiveFontSize, pdfFont, [r, g, b], { underline: element.underline ?? false, strikethrough: element.strikethrough ?? false });
168
+ }
169
+ // Clickable link annotation on paragraph/heading
170
+ if ((element.type === 'paragraph' || element.type === 'heading') && element.url) {
171
+ const lineWidth = pdfFont.widthOfTextAtSize(trimmedText, effectiveFontSize) + (letterSpacing > 0 ? letterSpacing * (trimmedText.length - 1) : 0);
172
+ addLinkAnnotation(pdfDoc, pdfPage, drawX, pdfY, lineWidth, effectiveFontSize, element.url);
173
+ }
174
+ }
175
+ // Annotation on paragraph/heading — attach sticky note at top of block
176
+ if (textElement?.annotation) {
177
+ const ann = textElement.annotation;
178
+ const absY = yFromTop + geo.margins.top + geo.headerHeight;
179
+ const annotPdfY = geo.pageHeight - absY;
180
+ addStickyNoteAnnotation(pdfDoc, pdfPage, geo.margins.left, annotPdfY, ann.contents, ann.author, ann.color, ann.open);
181
+ }
182
+ }
183
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/render-blocks/text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * render-blocks/watermark.ts — Watermark rendering
3
+ */
4
+ import { PDFDocument } from '@cantoo/pdf-lib';
5
+ import type { PdfDocument } from '../types.js';
6
+ import type { FontMap, ImageMap, PageGeometry } from '../types-internal.js';
7
+ export declare function renderWatermark(pdfPage: ReturnType<PDFDocument['addPage']>, doc: PdfDocument, fontMap: FontMap, imageMap: ImageMap, geo: PageGeometry): void;
8
+ //# sourceMappingURL=watermark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watermark.d.ts","sourceRoot":"","sources":["../../src/render-blocks/watermark.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAgB,MAAM,iBAAiB,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EACV,OAAO,EAAE,QAAQ,EAAE,YAAY,EAChC,MAAM,sBAAsB,CAAA;AAQ7B,wBAAgB,eAAe,CAC7B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,YAAY,GAChB,IAAI,CA+CN"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * render-blocks/watermark.ts — Watermark rendering
3
+ */
4
+ import { PDFDocument, rgb, degrees } from '@cantoo/pdf-lib';
5
+ import { PretextPdfError } from '../errors.js';
6
+ import { hexToRgb, } from '../render-utils.js';
7
+ // ─── Watermark rendering ──────────────────────────────────────────────────
8
+ export function renderWatermark(pdfPage, doc, fontMap, imageMap, geo) {
9
+ const wm = doc.watermark;
10
+ if (!wm)
11
+ return;
12
+ const opacity = wm.opacity ?? 0.3;
13
+ const rotation = wm.rotation ?? -45;
14
+ const { pageWidth, pageHeight } = geo;
15
+ if (wm.text) {
16
+ const fontKey = `${wm.fontFamily ?? doc.defaultFont ?? 'Inter'}-${wm.fontWeight ?? 400}-normal`;
17
+ const pdfFont = fontMap.get(fontKey);
18
+ if (!pdfFont) {
19
+ throw new PretextPdfError('FONT_NOT_LOADED', `Watermark font "${fontKey}" not found in fontMap. This is a bug.`);
20
+ }
21
+ // Auto-compute font size to span ~60% of page diagonal
22
+ const fontSize = wm.fontSize ?? (() => {
23
+ const diagonal = Math.sqrt(pageWidth ** 2 + pageHeight ** 2);
24
+ const widthAt100 = pdfFont.widthOfTextAtSize(wm.text, 100);
25
+ return Math.min(120, (diagonal * 0.6 / widthAt100) * 100);
26
+ })();
27
+ const [r, g, b] = hexToRgb(wm.color ?? '#CCCCCC');
28
+ pdfPage.drawText(wm.text, {
29
+ x: pageWidth / 2,
30
+ y: pageHeight / 2,
31
+ size: fontSize,
32
+ font: pdfFont,
33
+ color: rgb(r, g, b),
34
+ rotate: degrees(rotation),
35
+ opacity,
36
+ });
37
+ }
38
+ if (wm.image) {
39
+ const pdfImage = imageMap.get('watermark');
40
+ if (!pdfImage)
41
+ return;
42
+ const margin = 40;
43
+ pdfPage.drawImage(pdfImage, {
44
+ x: margin,
45
+ y: margin,
46
+ width: pageWidth - margin * 2,
47
+ height: pageHeight - margin * 2,
48
+ opacity,
49
+ });
50
+ }
51
+ }
52
+ //# sourceMappingURL=watermark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watermark.js","sourceRoot":"","sources":["../../src/render-blocks/watermark.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAK3D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EACL,QAAQ,GACT,MAAM,oBAAoB,CAAA;AAE3B,6EAA6E;AAE7E,MAAM,UAAU,eAAe,CAC7B,OAA2C,EAC3C,GAAgB,EAChB,OAAgB,EAChB,QAAkB,EAClB,GAAiB;IAEjB,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,CAAA;IACxB,IAAI,CAAC,EAAE;QAAE,OAAM;IAEf,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,IAAI,GAAG,CAAA;IACjC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAA;IACnC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;IAErC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,IAAI,GAAG,SAAS,CAAA;QAC/F,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CAAC,iBAAiB,EACzC,mBAAmB,OAAO,wCAAwC,CAAC,CAAA;QACvE,CAAC;QAED,uDAAuD;QACvD,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,CAAA;YAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAA;QAC3D,CAAC,CAAC,EAAE,CAAA;QAEJ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;QACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;YACxB,CAAC,EAAE,SAAS,GAAG,CAAC;YAChB,CAAC,EAAE,UAAU,GAAG,CAAC;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACnB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;YACzB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC1C,IAAI,CAAC,QAAQ;YAAE,OAAM;QACrB,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC1B,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,MAAM;YACT,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,CAAC;YAC7B,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,CAAC;YAC/B,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-extras.d.ts","sourceRoot":"","sources":["../src/render-extras.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAqD,MAAM,iBAAiB,CAAA;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAM/F;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,cAAc,EAAE,OAAO,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,GAC5D,IAAI,CAmFN;AAID,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,OAAO,GACf,IAAI,CAkDN;AAID,4CAA4C;AAC5C,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,MAAM,GACf,IAAI,CAmGN;AAID,qEAAqE;AACrE,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,OAAO,YAAY,EAAE,aAAa,EACvC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,qBAAqB,EAAE,OAAO,EAC9C,GAAG,EAAE,OAAO,qBAAqB,EAAE,YAAY,GAC9C,IAAI,CA2EN"}
1
+ {"version":3,"file":"render-extras.d.ts","sourceRoot":"","sources":["../src/render-extras.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAA4C,MAAM,iBAAiB,CAAA;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAM/F;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,cAAc,EAAE,OAAO,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,GAC5D,IAAI,CAmFN;AAID,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,OAAO,GACf,IAAI,CAiDN;AAID,4CAA4C;AAC5C,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,MAAM,GACf,IAAI,CAmGN;AAID,qEAAqE;AACrE,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,OAAO,YAAY,EAAE,aAAa,EACvC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,qBAAqB,EAAE,OAAO,EAC9C,GAAG,EAAE,OAAO,qBAAqB,EAAE,YAAY,GAC9C,IAAI,CA2EN"}
@@ -2,7 +2,7 @@
2
2
  * render-extras.ts — PDF structure rendering (bookmarks, TOC, forms, signatures)
3
3
  * These are meta-layer concerns distinct from content block rendering.
4
4
  */
5
- import { PDFName, PDFNull, PDFString, rgb } from '@cantoo/pdf-lib';
5
+ import { PDFDocument, PDFName, PDFNull, PDFRef, PDFString, rgb } from '@cantoo/pdf-lib';
6
6
  import { PretextPdfError } from './errors.js';
7
7
  import { toPdfY, hexToRgb } from './render-utils.js';
8
8
  // ─── Outline / Bookmarks ──────────────────────────────────────────────────────
@@ -97,7 +97,6 @@ export function buildOutlineTree(pdfDoc, headings, bookmarkConfig) {
97
97
  // ─── TOC Entry Rendering ────────────────────────────────────────────
98
98
  export function renderTocEntry(pdfPage, pagedBlock, geo, fontMap) {
99
99
  const { measuredBlock, startLine, endLine, yFromTop } = pagedBlock;
100
- const element = measuredBlock.element;
101
100
  const tocData = measuredBlock.tocEntryData;
102
101
  const lines = measuredBlock.lines.slice(startLine, endLine);
103
102
  if (lines.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"render-extras.js","sourceRoot":"","sources":["../src/render-extras.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-extras.js","sourceRoot":"","sources":["../src/render-extras.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-utils.d.ts","sourceRoot":"","sources":["../src/render-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-utils.d.ts","sourceRoot":"","sources":["../src/render-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAoB,MAAM,EAAa,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAKhG;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,EACnB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,GAC5B,IAAI,CAwBN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,IAAI,CAiCN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,IAAI,CAsBN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,OAAO,GACb,IAAI,CAwBN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GACzD,IAAI,CAwCN;AAID;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,GAC5B,IAAI,CAkBN;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED,0DAA0D;AAC1D,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,EAClC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAChB,MAAM,CASR;AAED,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,MAAM,CAAA;AAEtC,8EAA8E;AAC9E,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,MAAM,CAMR;AAED;yFACyF;AACzF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQjF"}
@@ -2,7 +2,7 @@
2
2
  * render-utils.ts — Pure utility functions for PDF rendering
3
3
  * No element-type knowledge. Used by all render modules.
4
4
  */
5
- import { PDFName, PDFNull, PDFString, rgb } from '@cantoo/pdf-lib';
5
+ import { PDFDocument, PDFFont, PDFName, PDFNull, PDFRef, PDFString, rgb } from '@cantoo/pdf-lib';
6
6
  import { PretextPdfError } from './errors.js';
7
7
  const SAFE_URL_SCHEME = /^(https?|mailto|ftp|#)/i;
8
8
  /**
@@ -57,7 +57,8 @@ export function addLinkAnnotation(pdfDoc, pdfPage, x, pdfY, width, fontSize, url
57
57
  }));
58
58
  const existingAnnots = pdfPage.node.get(PDFName.of('Annots'));
59
59
  if (existingAnnots) {
60
- const annots = pdfDoc.context.lookup(existingAnnots); // pdf-lib: PDFArray has no public push() type
60
+ // PDFArray.push() is now typed via augmentation (pdf-lib-augment.d.ts)
61
+ const annots = pdfDoc.context.lookup(existingAnnots);
61
62
  annots.push(linkAnnot);
62
63
  }
63
64
  else {
@@ -81,7 +82,8 @@ export function addGoToAnnotation(pdfDoc, pdfPage, x, pdfY, width, fontSize, des
81
82
  }));
82
83
  const existingAnnots = pdfPage.node.get(PDFName.of('Annots'));
83
84
  if (existingAnnots) {
84
- const annots = pdfDoc.context.lookup(existingAnnots); // pdf-lib: PDFArray has no public push() type
85
+ // PDFArray.push() is now typed via augmentation (pdf-lib-augment.d.ts)
86
+ const annots = pdfDoc.context.lookup(existingAnnots);
85
87
  annots.push(goToAnnot);
86
88
  }
87
89
  else {
@@ -105,7 +107,8 @@ export function addStickyNoteAnnotation(pdfDoc, pdfPage, x, pdfY, contents, auth
105
107
  }));
106
108
  const existingAnnots = pdfPage.node.get(PDFName.of('Annots'));
107
109
  if (existingAnnots) {
108
- const annots = pdfDoc.context.lookup(existingAnnots); // pdf-lib: PDFArray has no public push() type
110
+ // PDFArray.push() is now typed via augmentation (pdf-lib-augment.d.ts)
111
+ const annots = pdfDoc.context.lookup(existingAnnots);
109
112
  annots.push(annotRef);
110
113
  }
111
114
  else {
@@ -119,8 +122,9 @@ export function addStickyNoteAnnotation(pdfDoc, pdfPage, x, pdfY, contents, auth
119
122
  export function drawTextDecoration(pdfPage, x, width, pdfY, fontSize, pdfFont, color, decoration) {
120
123
  if (!decoration.underline && !decoration.strikethrough)
121
124
  return;
122
- // Prefer font-designed metrics via fontkit embedder; fall back to height math
123
- const embedder = pdfFont.embedder; // pdf-lib internal: no public embedder property
125
+ // Prefer font-designed metrics via fontkit embedder; fall back to height math.
126
+ // embedder is private in pdf-lib; accessing it via private field access
127
+ const embedder = pdfFont.embedder;
124
128
  const fkFont = embedder?.font; // fontkit Font object (undefined for standard fonts)
125
129
  const scale = embedder?.scale ?? 1;
126
130
  const ascentPt = pdfFont.heightAtSize(fontSize, { descender: false });