pretext-pdf 1.9.0 → 2.0.13

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 (159) hide show
  1. package/CHANGELOG.md +414 -0
  2. package/dist/allowed-props.d.ts +23 -8
  3. package/dist/allowed-props.d.ts.map +1 -1
  4. package/dist/allowed-props.js +38 -6
  5. package/dist/allowed-props.js.map +1 -1
  6. package/dist/assets/index.d.ts +1 -1
  7. package/dist/assets/index.d.ts.map +1 -1
  8. package/dist/assets/index.js +1 -1
  9. package/dist/assets/index.js.map +1 -1
  10. package/dist/assets/loaders/images.d.ts.map +1 -1
  11. package/dist/assets/loaders/images.js +4 -1
  12. package/dist/assets/loaders/images.js.map +1 -1
  13. package/dist/assets/security/path-allowlist.d.ts.map +1 -1
  14. package/dist/assets/security/path-allowlist.js +10 -1
  15. package/dist/assets/security/path-allowlist.js.map +1 -1
  16. package/dist/assets/svg/resolve-content.d.ts.map +1 -1
  17. package/dist/assets/svg/resolve-content.js +4 -1
  18. package/dist/assets/svg/resolve-content.js.map +1 -1
  19. package/dist/assets/svg/sanitize.d.ts +2 -0
  20. package/dist/assets/svg/sanitize.d.ts.map +1 -1
  21. package/dist/assets/svg/sanitize.js +41 -10
  22. package/dist/assets/svg/sanitize.js.map +1 -1
  23. package/dist/builder.js +2 -2
  24. package/dist/builder.js.map +1 -1
  25. package/dist/compat/normalize.d.ts +13 -0
  26. package/dist/compat/normalize.d.ts.map +1 -0
  27. package/dist/compat/normalize.js +146 -0
  28. package/dist/compat/normalize.js.map +1 -0
  29. package/dist/compat/pdfmake-types.d.ts +91 -0
  30. package/dist/compat/pdfmake-types.d.ts.map +1 -0
  31. package/dist/compat/pdfmake-types.js +8 -0
  32. package/dist/compat/pdfmake-types.js.map +1 -0
  33. package/dist/compat/translate.d.ts +7 -0
  34. package/dist/compat/translate.d.ts.map +1 -0
  35. package/dist/compat/translate.js +205 -0
  36. package/dist/compat/translate.js.map +1 -0
  37. package/dist/compat.d.ts +6 -161
  38. package/dist/compat.d.ts.map +1 -1
  39. package/dist/compat.js +13 -404
  40. package/dist/compat.js.map +1 -1
  41. package/dist/fonts/bundled-paths.d.ts +13 -0
  42. package/dist/fonts/bundled-paths.d.ts.map +1 -0
  43. package/dist/fonts/bundled-paths.js +43 -0
  44. package/dist/fonts/bundled-paths.js.map +1 -0
  45. package/dist/fonts/collect-needed.d.ts +10 -0
  46. package/dist/fonts/collect-needed.d.ts.map +1 -0
  47. package/dist/fonts/collect-needed.js +85 -0
  48. package/dist/fonts/collect-needed.js.map +1 -0
  49. package/dist/fonts/collect-text.d.ts +9 -0
  50. package/dist/fonts/collect-text.d.ts.map +1 -0
  51. package/dist/fonts/collect-text.js +162 -0
  52. package/dist/fonts/collect-text.js.map +1 -0
  53. package/dist/fonts/load-bytes.d.ts +10 -0
  54. package/dist/fonts/load-bytes.d.ts.map +1 -0
  55. package/dist/fonts/load-bytes.js +56 -0
  56. package/dist/fonts/load-bytes.js.map +1 -0
  57. package/dist/fonts.d.ts +11 -10
  58. package/dist/fonts.d.ts.map +1 -1
  59. package/dist/fonts.js +17 -419
  60. package/dist/fonts.js.map +1 -1
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/measure-blocks/simple-blocks.js +3 -3
  66. package/dist/measure-blocks/simple-blocks.js.map +1 -1
  67. package/dist/measure-text.d.ts.map +1 -1
  68. package/dist/measure-text.js +7 -0
  69. package/dist/measure-text.js.map +1 -1
  70. package/dist/pipeline-footnotes.d.ts +2 -2
  71. package/dist/pipeline-footnotes.d.ts.map +1 -1
  72. package/dist/pipeline-footnotes.js +5 -2
  73. package/dist/pipeline-footnotes.js.map +1 -1
  74. package/dist/pipeline.d.ts.map +1 -1
  75. package/dist/pipeline.js +45 -12
  76. package/dist/pipeline.js.map +1 -1
  77. package/dist/plugin-types.d.ts +3 -3
  78. package/dist/plugin-types.d.ts.map +1 -1
  79. package/dist/render-blocks/hr.d.ts.map +1 -1
  80. package/dist/render-blocks/hr.js +2 -3
  81. package/dist/render-blocks/hr.js.map +1 -1
  82. package/dist/render-extras.d.ts +0 -2
  83. package/dist/render-extras.d.ts.map +1 -1
  84. package/dist/render-extras.js +15 -78
  85. package/dist/render-extras.js.map +1 -1
  86. package/dist/render-utils.d.ts +1 -7
  87. package/dist/render-utils.d.ts.map +1 -1
  88. package/dist/render-utils.js +18 -35
  89. package/dist/render-utils.js.map +1 -1
  90. package/dist/render.js +2 -1
  91. package/dist/render.js.map +1 -1
  92. package/dist/schema/document.d.ts +2115 -0
  93. package/dist/schema/document.d.ts.map +1 -0
  94. package/dist/schema/document.js +275 -0
  95. package/dist/schema/document.js.map +1 -0
  96. package/dist/schema/elements-block.d.ts +481 -0
  97. package/dist/schema/elements-block.d.ts.map +1 -0
  98. package/dist/schema/elements-block.js +155 -0
  99. package/dist/schema/elements-block.js.map +1 -0
  100. package/dist/schema/elements-media.d.ts +282 -0
  101. package/dist/schema/elements-media.d.ts.map +1 -0
  102. package/dist/schema/elements-media.js +83 -0
  103. package/dist/schema/elements-media.js.map +1 -0
  104. package/dist/schema/elements-table.d.ts +134 -0
  105. package/dist/schema/elements-table.d.ts.map +1 -0
  106. package/dist/schema/elements-table.js +60 -0
  107. package/dist/schema/elements-table.js.map +1 -0
  108. package/dist/schema/elements-text.d.ts +782 -0
  109. package/dist/schema/elements-text.d.ts.map +1 -0
  110. package/dist/schema/elements-text.js +260 -0
  111. package/dist/schema/elements-text.js.map +1 -0
  112. package/dist/schema/shared.d.ts +84 -0
  113. package/dist/schema/shared.d.ts.map +1 -0
  114. package/dist/schema/shared.js +29 -0
  115. package/dist/schema/shared.js.map +1 -0
  116. package/dist/schema.d.ts +10 -1869
  117. package/dist/schema.d.ts.map +1 -1
  118. package/dist/schema.js +10 -793
  119. package/dist/schema.js.map +1 -1
  120. package/dist/signing/index.d.ts +3 -0
  121. package/dist/signing/index.d.ts.map +1 -0
  122. package/dist/signing/index.js +3 -0
  123. package/dist/signing/index.js.map +1 -0
  124. package/dist/signing/placeholder.d.ts +5 -0
  125. package/dist/signing/placeholder.d.ts.map +1 -0
  126. package/dist/signing/placeholder.js +75 -0
  127. package/dist/signing/placeholder.js.map +1 -0
  128. package/dist/signing/post-process.d.ts +16 -0
  129. package/dist/signing/post-process.d.ts.map +1 -0
  130. package/dist/signing/post-process.js +125 -0
  131. package/dist/signing/post-process.js.map +1 -0
  132. package/dist/types-public/document.d.ts +106 -110
  133. package/dist/types-public/document.d.ts.map +1 -1
  134. package/dist/types-public/elements-block.d.ts +54 -35
  135. package/dist/types-public/elements-block.d.ts.map +1 -1
  136. package/dist/types-public/validation.d.ts +9 -15
  137. package/dist/types-public/validation.d.ts.map +1 -1
  138. package/dist/types.d.ts +1 -1
  139. package/dist/types.d.ts.map +1 -1
  140. package/dist/validate/document.d.ts.map +1 -1
  141. package/dist/validate/document.js +5 -1
  142. package/dist/validate/document.js.map +1 -1
  143. package/dist/validate/elements/forms-floats.d.ts +1 -1
  144. package/dist/validate/elements/forms-floats.d.ts.map +1 -1
  145. package/dist/validate/elements/forms-floats.js +44 -6
  146. package/dist/validate/elements/forms-floats.js.map +1 -1
  147. package/dist/validate/elements/media.d.ts.map +1 -1
  148. package/dist/validate/elements/media.js +14 -0
  149. package/dist/validate/elements/media.js.map +1 -1
  150. package/dist/validate/elements/structural-simple.js +4 -4
  151. package/dist/validate/elements/structural-simple.js.map +1 -1
  152. package/dist/validate/helpers.d.ts +6 -6
  153. package/dist/validate/helpers.d.ts.map +1 -1
  154. package/dist/validate/helpers.js +7 -7
  155. package/dist/validate/helpers.js.map +1 -1
  156. package/dist/validate/index.d.ts.map +1 -1
  157. package/dist/validate/index.js +4 -6
  158. package/dist/validate/index.js.map +1 -1
  159. package/package.json +7 -3
package/dist/fonts.js CHANGED
@@ -1,104 +1,46 @@
1
+ /**
2
+ * Font loading, embedding, and subsetting.
3
+ * Public exports: loadFonts (pipeline stage 2), collectTextByFont (subsetting pre-pass).
4
+ *
5
+ * Implementation split across src/fonts/:
6
+ * bundled-paths.ts — IS_NODE, __dirname, resolveInterFile, BUNDLED_INTER_*_PATHS
7
+ * load-bytes.ts — loadFontBytes (file / Uint8Array / bundled-Inter loader)
8
+ * collect-needed.ts — collectNeededFonts (document font-variant scanner)
9
+ * collect-text.ts — collectTextByFont (text-by-font map for font subsetting)
10
+ */
1
11
  import { PDFDocument } from '@cantoo/pdf-lib';
2
12
  import fontkit from '@pdf-lib/fontkit';
3
- import fs from 'fs';
4
- import path from 'path';
5
- import { fileURLToPath } from 'url';
6
- import { createRequire } from 'module';
7
13
  import { PretextPdfError } from './errors.js';
8
14
  import { buildFontKey } from './font-key.js';
9
- import { assertPathAllowed } from './assets.js';
10
- // Browser detection. The bundled-font paths below depend on Node-only APIs
11
- // (fileURLToPath, createRequire, fs). In a browser, these are guarded so that
12
- // import-time evaluation never throws and consumers must supply fonts via doc.fonts.
13
- const IS_NODE = typeof window === 'undefined' && typeof process !== 'undefined' && !!(process.versions?.node);
14
- const __dirname = IS_NODE ? path.dirname(fileURLToPath(import.meta.url)) : '';
15
- const _require = IS_NODE ? createRequire(import.meta.url) : null;
16
- /**
17
- * Font loading strategy:
18
- * - TTF files for pdf-lib embedding (fontkit handles TTF natively, woff2 has glyph corruption bugs)
19
- * - woff2 for @napi-rs/canvas measurement (canvas handles woff2 perfectly via Skia)
20
- *
21
- * TTF priority: bundled fonts/ dir first, then @fontsource woff2 as fallback
22
- *
23
- * NOTE: @fontsource/inter is resolved via createRequire to handle npm hoisting correctly.
24
- * When pretext-pdf is installed as a package, @fontsource/inter is hoisted to the
25
- * consumer's node_modules, NOT to node_modules/pretext-pdf/node_modules/@fontsource/inter.
26
- * path.join(__dirname, '..', 'node_modules', ...) would fail in that case.
27
- */
28
- function resolveInterFile(filename) {
29
- if (!_require)
30
- return null;
31
- try {
32
- const pkgJson = _require.resolve('@fontsource/inter/package.json');
33
- return path.join(path.dirname(pkgJson), 'files', filename);
34
- }
35
- catch {
36
- return null;
37
- }
38
- }
39
- /** Path to bundled Inter 400 normal font — TTF preferred for pdf-lib (Node only) */
40
- const BUNDLED_INTER_PATHS = IS_NODE ? [
41
- path.join(__dirname, '..', 'fonts', 'Inter-Regular.ttf'),
42
- resolveInterFile('inter-latin-400-normal.woff2'),
43
- resolveInterFile('inter-all-400-normal.woff2'),
44
- ].filter(Boolean) : [];
45
- /** Path to bundled Inter 700 (bold) font — TTF preferred for pdf-lib (Node only) */
46
- const BUNDLED_INTER_BOLD_PATHS = IS_NODE ? [
47
- path.join(__dirname, '..', 'fonts', 'Inter-Bold.ttf'),
48
- resolveInterFile('inter-latin-700-normal.woff2'),
49
- resolveInterFile('inter-all-700-normal.woff2'),
50
- ].filter(Boolean) : [];
51
- /** Path to bundled Inter 400 italic font */
52
- const BUNDLED_INTER_ITALIC_PATHS = IS_NODE ? [
53
- path.join(__dirname, '..', 'fonts', 'Inter-Italic.ttf'),
54
- resolveInterFile('inter-latin-400-italic.woff2'),
55
- resolveInterFile('inter-all-400-italic.woff2'),
56
- ].filter(Boolean) : [];
57
- /** Path to bundled Inter 700 italic font */
58
- const BUNDLED_INTER_BOLD_ITALIC_PATHS = IS_NODE ? [
59
- path.join(__dirname, '..', 'fonts', 'Inter-BoldItalic.ttf'),
60
- resolveInterFile('inter-latin-700-italic.woff2'),
61
- resolveInterFile('inter-all-700-italic.woff2'),
62
- ].filter(Boolean) : [];
15
+ import { collectNeededFonts } from './fonts/collect-needed.js';
16
+ import { loadFontBytes } from './fonts/load-bytes.js';
17
+ import { collectTextByFont } from './fonts/collect-text.js';
18
+ export { collectTextByFont } from './fonts/collect-text.js';
63
19
  /**
64
20
  * Stage 2: Load and embed all fonts.
65
21
  * - Scans document for all font references
66
22
  * - Loads font bytes (file system or Uint8Array)
67
23
  * - Embeds each into pdfDoc via fontkit
68
24
  * - Returns FontMap for use in measure + render stages
69
- *
70
- * NOTE: pdfDoc is already created by the caller. Fonts are embedded into it here.
71
- * The same pdfDoc is used in Stage 5 (render).
72
25
  */
73
26
  export async function loadFonts(doc, pdfDoc) {
74
27
  pdfDoc.registerFontkit(fontkit);
75
28
  const fontMap = new Map();
76
29
  const defaultFamily = doc.defaultFont ?? 'Inter';
77
- // Collect all font variants referenced in the document
78
30
  const needed = collectNeededFonts(doc);
79
- // Always ensure Inter 400 is available as the default fallback
80
31
  if (!needed.has(buildFontKey('Inter', 400, 'normal'))) {
81
- needed.set(buildFontKey('Inter', 400, 'normal'), {
82
- family: 'Inter', weight: 400, style: 'normal', src: 'bundled'
83
- });
32
+ needed.set(buildFontKey('Inter', 400, 'normal'), { family: 'Inter', weight: 400, style: 'normal', src: 'bundled' });
84
33
  }
85
34
  if (!needed.has(buildFontKey('Inter', 700, 'normal'))) {
86
- needed.set(buildFontKey('Inter', 700, 'normal'), {
87
- family: 'Inter', weight: 700, style: 'normal', src: 'bundled'
88
- });
35
+ needed.set(buildFontKey('Inter', 700, 'normal'), { family: 'Inter', weight: 700, style: 'normal', src: 'bundled' });
89
36
  }
90
- // Load all font bytes in parallel
91
37
  const loadPromises = Array.from(needed.entries()).map(async ([key, spec]) => {
92
38
  const bytes = await loadFontBytes(spec, doc.allowedFileDirs);
93
39
  return { key, bytes, spec };
94
40
  });
95
41
  const loaded = await Promise.all(loadPromises);
96
- // Embed each font into pdfDoc (must be sequential — pdf-lib limitation)
97
42
  for (const { key, bytes, spec } of loaded) {
98
43
  try {
99
- // Use fontkit's built-in subsetting for TTF fonts.
100
- // TTF magic bytes: 0x00010000 (TrueType) or 0x74727565 ('true').
101
- // woff2 starts with 0x774F4632 — fontkit has a known subsetting bug for woff2.
102
44
  const isTTF = bytes.length >= 4 && ((bytes[0] === 0x00 && bytes[1] === 0x01 && bytes[2] === 0x00 && bytes[3] === 0x00) ||
103
45
  (bytes[0] === 0x74 && bytes[1] === 0x72 && bytes[2] === 0x75 && bytes[3] === 0x65));
104
46
  const pdfFont = await pdfDoc.embedFont(bytes, { subset: isTTF });
@@ -108,9 +50,6 @@ export async function loadFonts(doc, pdfDoc) {
108
50
  throw new PretextPdfError('FONT_EMBED_FAILED', `Failed to embed font "${spec.family ?? key}": ${err instanceof Error ? err.message : String(err)}`);
109
51
  }
110
52
  }
111
- // Pre-compute font subsets by encoding all document text.
112
- // Calling pdfFont.encodeText() registers glyph IDs into the subset table
113
- // before pdfDoc.save(), producing smaller and faster-to-save PDFs.
114
53
  const textByFont = collectTextByFont(doc);
115
54
  for (const [key, text] of textByFont) {
116
55
  const pdfFont = fontMap.get(key);
@@ -123,354 +62,13 @@ export async function loadFonts(doc, pdfDoc) {
123
62
  }
124
63
  }
125
64
  }
126
- // Set default font
127
65
  const defaultKey = buildFontKey(defaultFamily, 400, 'normal');
128
66
  if (!fontMap.has(defaultKey)) {
129
- // Default font wasn't explicitly added — try Inter as fallback
130
67
  const interKey = buildFontKey('Inter', 400, 'normal');
131
68
  const interFont = fontMap.get(interKey);
132
- if (interFont) {
69
+ if (interFont)
133
70
  fontMap.set(defaultKey, interFont);
134
- }
135
71
  }
136
72
  return fontMap;
137
73
  }
138
- /**
139
- * Scan document to collect every unique font variant needed.
140
- * Returns a Map from fontKey → FontSpec-like descriptor.
141
- */
142
- function collectNeededFonts(doc) {
143
- const needed = new Map();
144
- const defaultFamily = doc.defaultFont ?? 'Inter';
145
- // Build lookup from user-provided fonts
146
- const userFonts = new Map();
147
- for (const f of doc.fonts ?? []) {
148
- const key = buildFontKey(f.family, f.weight ?? 400, f.style ?? 'normal');
149
- userFonts.set(key, f);
150
- }
151
- const addFont = (family, weight, style) => {
152
- const key = buildFontKey(family, weight, style);
153
- if (needed.has(key))
154
- return;
155
- const userFont = userFonts.get(key);
156
- if (userFont) {
157
- needed.set(key, { ...userFont, src: userFont.src });
158
- }
159
- else if (family === 'Inter') {
160
- needed.set(key, { family, weight, style, src: 'bundled' });
161
- }
162
- else {
163
- // Font variant referenced but not in doc.fonts.
164
- // validate() should have caught this — if we reach here it's a bug in the validation layer.
165
- throw new PretextPdfError('FONT_EMBED_FAILED', `Font variant "${key}" is required by the document but was not found in doc.fonts and is not a bundled variant. This is a bug — font validation should have caught this.`);
166
- }
167
- };
168
- // Default font always needed
169
- addFont(defaultFamily, 400, 'normal');
170
- // Scan content — collect every font variant referenced by every element type
171
- for (const el of doc.content) {
172
- if (el.type === 'paragraph') {
173
- const family = el.fontFamily ?? defaultFamily;
174
- const weight = el.fontWeight ?? 400;
175
- addFont(family, weight, 'normal');
176
- }
177
- else if (el.type === 'heading') {
178
- const family = el.fontFamily ?? defaultFamily;
179
- const weight = el.fontWeight ?? 700;
180
- addFont(family, weight, 'normal');
181
- }
182
- else if (el.type === 'code') {
183
- addFont(el.fontFamily, 400, 'normal');
184
- }
185
- else if (el.type === 'rich-paragraph') {
186
- for (const span of el.spans) {
187
- addFont(span.fontFamily ?? defaultFamily, span.fontWeight ?? 400, span.fontStyle ?? 'normal');
188
- }
189
- }
190
- else if (el.type === 'list') {
191
- for (const item of el.items) {
192
- if ((item.fontWeight ?? 400) === 700)
193
- addFont(defaultFamily, 700, 'normal');
194
- for (const nested of item.items ?? []) {
195
- if ((nested.fontWeight ?? 400) === 700)
196
- addFont(defaultFamily, 700, 'normal');
197
- }
198
- }
199
- }
200
- else if (el.type === 'table') {
201
- // Table cells can use bold (headers) or custom weights
202
- addFont(defaultFamily, 400, 'normal');
203
- for (const row of el.rows) {
204
- for (const cell of row.cells) {
205
- const cellFamily = cell.fontFamily ?? defaultFamily;
206
- const cellWeight = cell.fontWeight ?? (row.isHeader ? 700 : 400);
207
- addFont(cellFamily, cellWeight, 'normal');
208
- }
209
- if (row.isHeader)
210
- addFont(defaultFamily, 700, 'normal');
211
- }
212
- }
213
- else if (el.type === 'blockquote') {
214
- const family = el.fontFamily ?? defaultFamily;
215
- const weight = el.fontWeight ?? 400;
216
- const style = el.fontStyle ?? 'normal';
217
- addFont(family, weight, style);
218
- }
219
- else if (el.type === 'image' && el.floatFontFamily) {
220
- addFont(el.floatFontFamily, 400, 'normal');
221
- }
222
- else if (el.type === 'footnote-def') {
223
- const family = el.fontFamily ?? defaultFamily;
224
- addFont(family, 400, 'normal');
225
- }
226
- // spacer, image, hr, page-break use default font (already added)
227
- }
228
- // Header/footer fonts
229
- if (doc.header) {
230
- const family = doc.header.fontFamily ?? defaultFamily;
231
- addFont(family, doc.header.fontWeight ?? 400, 'normal');
232
- }
233
- if (doc.footer) {
234
- const family = doc.footer.fontFamily ?? defaultFamily;
235
- addFont(family, doc.footer.fontWeight ?? 400, 'normal');
236
- }
237
- // Watermark font (text watermark only)
238
- if (doc.watermark?.text) {
239
- const family = doc.watermark.fontFamily ?? defaultFamily;
240
- addFont(family, doc.watermark.fontWeight ?? 400, 'normal');
241
- }
242
- return needed;
243
- }
244
- /** Load font bytes from file path, Uint8Array, or bundled Inter */
245
- async function loadFontBytes(spec, allowedFileDirs) {
246
- if (spec.src instanceof Uint8Array) {
247
- return spec.src;
248
- }
249
- if (spec.src === 'bundled') {
250
- if (!IS_NODE) {
251
- throw new PretextPdfError('FONT_LOAD_FAILED', `Bundled Inter font is not available in the browser. Supply font bytes via doc.fonts: [{ family: 'Inter', weight: 400, src: <Uint8Array> }, { family: 'Inter', weight: 700, src: <Uint8Array> }]`);
252
- }
253
- const weight = spec.weight ?? 400;
254
- const style = spec.style ?? 'normal';
255
- let paths;
256
- if (style === 'italic') {
257
- paths = weight >= 600 ? BUNDLED_INTER_BOLD_ITALIC_PATHS : BUNDLED_INTER_ITALIC_PATHS;
258
- }
259
- else {
260
- paths = weight >= 600 ? BUNDLED_INTER_BOLD_PATHS : BUNDLED_INTER_PATHS;
261
- }
262
- for (const p of paths) {
263
- if (fs.existsSync(p)) {
264
- try {
265
- const buffer = fs.readFileSync(p);
266
- return new Uint8Array(buffer);
267
- }
268
- catch {
269
- // Try next
270
- }
271
- }
272
- }
273
- throw new PretextPdfError('FONT_LOAD_FAILED', `Bundled Inter font not found. Make sure @fontsource/inter is installed: npm install @fontsource/inter`);
274
- }
275
- // Browser context cannot read local file paths — only Uint8Array is supported
276
- if (!IS_NODE) {
277
- throw new PretextPdfError('FONT_LOAD_FAILED', `Font path "${spec.src}" is a string, but file paths cannot be read in the browser. Fetch the font yourself and pass the bytes as a Uint8Array in doc.fonts[].src.`);
278
- }
279
- // String path — relative paths will likely fail on different working directories
280
- if (!path.isAbsolute(spec.src)) {
281
- throw new PretextPdfError('FONT_LOAD_FAILED', `Font path "${spec.src}" is relative. Use an absolute path (e.g. path.join(__dirname, 'fonts/Roboto.ttf')) to avoid resolution issues.`);
282
- }
283
- const resolvedSrc = path.resolve(spec.src);
284
- // Path traversal guard — delegates to shared assertPathAllowed (assets/security/path-allowlist.ts)
285
- assertPathAllowed(resolvedSrc, allowedFileDirs, 'Font');
286
- if (!fs.existsSync(resolvedSrc)) {
287
- throw new PretextPdfError('FONT_LOAD_FAILED', `Font file not found: "${path.basename(spec.src)}". Check the path in doc.fonts[].src.`);
288
- }
289
- try {
290
- const buffer = fs.readFileSync(resolvedSrc);
291
- return new Uint8Array(buffer);
292
- }
293
- catch (err) {
294
- throw new PretextPdfError('FONT_LOAD_FAILED', `Failed to read font file "${path.basename(spec.src)}": ${err instanceof Error ? err.message : String(err)}`);
295
- }
296
- }
297
- /**
298
- * Walk all content elements + header/footer and collect text strings grouped by font key.
299
- * Used by font subsetting to determine which glyphs each font needs.
300
- *
301
- * Returns: Map<fontKey, concatenated text string>
302
- */
303
- export function collectTextByFont(doc) {
304
- const defaultFont = doc.defaultFont ?? 'Inter';
305
- const textSets = new Map();
306
- function addText(fontKey, text) {
307
- if (!textSets.has(fontKey))
308
- textSets.set(fontKey, new Set());
309
- textSets.get(fontKey).add(text);
310
- }
311
- for (const el of doc.content) {
312
- switch (el.type) {
313
- case 'paragraph': {
314
- const key = buildFontKey(el.fontFamily ?? defaultFont, el.fontWeight ?? 400, 'normal');
315
- addText(key, el.text);
316
- break;
317
- }
318
- case 'heading': {
319
- const key = buildFontKey(el.fontFamily ?? defaultFont, el.fontWeight ?? 700, 'normal');
320
- addText(key, el.text);
321
- break;
322
- }
323
- case 'blockquote': {
324
- const key = buildFontKey(el.fontFamily ?? defaultFont, el.fontWeight ?? 400, el.fontStyle ?? 'normal');
325
- addText(key, el.text);
326
- break;
327
- }
328
- case 'code': {
329
- const key = buildFontKey(el.fontFamily, 400, 'normal');
330
- addText(key, el.text);
331
- break;
332
- }
333
- case 'rich-paragraph': {
334
- for (const span of el.spans) {
335
- const key = buildFontKey(span.fontFamily ?? defaultFont, span.fontWeight ?? 400, span.fontStyle ?? 'normal');
336
- addText(key, span.text);
337
- }
338
- break;
339
- }
340
- case 'table': {
341
- for (const row of el.rows) {
342
- for (const cell of row.cells) {
343
- const key = buildFontKey(cell.fontFamily ?? defaultFont, cell.fontWeight ?? (row.isHeader ? 700 : 400), 'normal');
344
- addText(key, cell.text);
345
- }
346
- }
347
- break;
348
- }
349
- case 'list': {
350
- // List marker characters: bullets (•, ◦) for unordered, digits+dot for ordered
351
- const listFont = buildFontKey(defaultFont, 400, 'normal');
352
- if (el.style === 'ordered') {
353
- addText(listFont, '0123456789.');
354
- }
355
- else {
356
- addText(listFont, el.marker ?? '•');
357
- addText(listFont, '◦'); // nested unordered uses hollow bullet
358
- }
359
- const collectItems = (items) => {
360
- for (const item of items) {
361
- const key = buildFontKey(defaultFont, item.fontWeight ?? 400, 'normal');
362
- addText(key, item.text);
363
- if (item.items)
364
- collectItems(item.items);
365
- }
366
- };
367
- collectItems(el.items);
368
- break;
369
- }
370
- case 'footnote-def': {
371
- const key = buildFontKey(el.fontFamily ?? defaultFont, 400, 'normal');
372
- addText(key, el.text);
373
- break;
374
- }
375
- // Note: 'toc-entry' is intentionally not handled here. TocEntryElement is an
376
- // internal synthesized type (not in the public ContentElement union) and
377
- // never appears in user-supplied doc.content. TOC entry glyphs (digits,
378
- // leader chars) are collected separately during the measurement pass.
379
- case 'callout': {
380
- const key = buildFontKey(el.fontFamily ?? defaultFont, el.fontWeight ?? 400, 'normal');
381
- addText(key, el.content);
382
- if (el.title) {
383
- const titleKey = buildFontKey(el.fontFamily ?? defaultFont, 700, 'normal');
384
- addText(titleKey, el.title);
385
- }
386
- break;
387
- }
388
- case 'form-field': {
389
- const key = buildFontKey(defaultFont, 400, 'normal');
390
- if (el.label)
391
- addText(key, el.label);
392
- if (el.placeholder)
393
- addText(key, el.placeholder);
394
- if (typeof el.defaultValue === 'string')
395
- addText(key, el.defaultValue);
396
- if (el.options) {
397
- for (const opt of el.options)
398
- addText(key, opt.label);
399
- }
400
- break;
401
- }
402
- case 'float-group': {
403
- // Float-group contains multiple content elements — collect text from each
404
- for (const contentEl of el.content) {
405
- if (contentEl.type === 'paragraph') {
406
- const key = buildFontKey(contentEl.fontFamily ?? defaultFont, contentEl.fontWeight ?? 400, 'normal');
407
- addText(key, contentEl.text);
408
- }
409
- else if (contentEl.type === 'heading') {
410
- const key = buildFontKey(contentEl.fontFamily ?? defaultFont, contentEl.fontWeight ?? 700, 'normal');
411
- addText(key, contentEl.text);
412
- }
413
- else if (contentEl.type === 'rich-paragraph') {
414
- for (const span of contentEl.spans) {
415
- const key = buildFontKey(span.fontFamily ?? defaultFont, span.fontWeight ?? 400, span.fontStyle ?? 'normal');
416
- addText(key, span.text);
417
- }
418
- }
419
- }
420
- break;
421
- }
422
- // spacer, hr, page-break, image, chart, barcode, qr, float-group (already
423
- // handled above), svg, comment, toc-entry (internal): no text to collect.
424
- // The explicit default arm ensures newly-added element types surface
425
- // here at compile-time rather than silently skipping glyph collection.
426
- default:
427
- break;
428
- }
429
- }
430
- // Header/footer: include static text + digits for {{pageNumber}}/{{totalPages}} expansion
431
- const DIGITS = '0123456789';
432
- if (doc.header) {
433
- const key = buildFontKey(doc.header.fontFamily ?? defaultFont, doc.header.fontWeight ?? 400, 'normal');
434
- addText(key, doc.header.text + DIGITS);
435
- }
436
- if (doc.footer) {
437
- const key = buildFontKey(doc.footer.fontFamily ?? defaultFont, doc.footer.fontWeight ?? 400, 'normal');
438
- addText(key, doc.footer.text + DIGITS);
439
- }
440
- // Section-specific header/footer overrides (per-page-range)
441
- if (doc.sections) {
442
- for (const section of doc.sections) {
443
- if (section.header) {
444
- const key = buildFontKey(section.header.fontFamily ?? defaultFont, section.header.fontWeight ?? 400, 'normal');
445
- addText(key, section.header.text + DIGITS);
446
- }
447
- if (section.footer) {
448
- const key = buildFontKey(section.footer.fontFamily ?? defaultFont, section.footer.fontWeight ?? 400, 'normal');
449
- addText(key, section.footer.text + DIGITS);
450
- }
451
- }
452
- }
453
- // Watermark text (if present)
454
- if (doc.watermark?.text) {
455
- const key = buildFontKey(doc.watermark.fontFamily ?? defaultFont, doc.watermark.fontWeight ?? 400, 'normal');
456
- addText(key, doc.watermark.text);
457
- }
458
- // Signature placeholder (renders labels + user text using Inter-400-normal)
459
- if (doc.signature) {
460
- const sigKey = buildFontKey(defaultFont, 400, 'normal');
461
- addText(sigKey, 'Signed by: Signature Date');
462
- if (doc.signature.signerName)
463
- addText(sigKey, doc.signature.signerName);
464
- if (doc.signature.reason)
465
- addText(sigKey, doc.signature.reason);
466
- if (doc.signature.location)
467
- addText(sigKey, doc.signature.location);
468
- }
469
- // Concatenate all text for each font key into one string
470
- const result = new Map();
471
- for (const [key, texts] of textSets) {
472
- result.set(key, Array.from(texts).join(''));
473
- }
474
- return result;
475
- }
476
74
  //# sourceMappingURL=fonts.js.map
package/dist/fonts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { PdfDocument, FootnoteDefElement, RenderOptions } from './types.js';
2
- export type { ValidationError, ValidationResult, Logger, PdfDocument, DocumentMetadata, ContentElement, ParagraphElement, HeadingElement, SpacerElement, TableElement, ColumnDef, TableRow, TableCell, ImageElement, SvgElement, QrCodeElement, BarcodeElement, ChartElement, ListElement, ListItem, HorizontalRuleElement, PageBreakElement, CodeBlockElement, RichParagraphElement, BlockquoteElement, InlineSpan, FontSpec, HeaderFooterSpec, WatermarkSpec, EncryptionSpec, SignatureSpec, BookmarkConfig, HyphenationConfig, Margins, CommentElement, CalloutElement, AnnotationSpec, AssemblyPart, FormFieldElement, TocElement, FootnoteDefElement, FloatGroupElement, RenderOptions, } from './types.js';
2
+ export type { ValidationError, ValidationResult, Logger, PdfDocument, DocumentMetadata, ContentElement, ParagraphElement, HeadingElement, SpacerElement, TableElement, ColumnDef, TableRow, TableCell, ImageElement, SvgElement, QrCodeElement, BarcodeElement, ChartElement, ListElement, ListItem, HorizontalRuleElement, PageBreakElement, CodeBlockElement, RichParagraphElement, BlockquoteElement, InlineSpan, FontSpec, HeaderFooterSpec, WatermarkSpec, EncryptionSpec, SignatureSpec, BookmarkConfig, HyphenationConfig, Margins, CommentElement, CalloutElement, AnnotationSpec, AssemblyPart, FormFieldElement, BaseFormField, TextFormField, CheckboxFormField, RadioFormField, DropdownFormField, ButtonFormField, TocElement, FootnoteDefElement, FloatGroupElement, RenderOptions, } from './types.js';
3
3
  export { PretextPdfError, LEGACY_ERROR_CODE_MAP } from './errors.js';
4
4
  export type { ErrorCode, ErrorCategory } from './errors.js';
5
5
  export type { NamedPageSize } from './page-sizes.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAQhF,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACpE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAIhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1F,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAMhD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAO3F;AAED;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBnE;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB9F;AAID,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAI3C,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAIpE,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAQhF,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACpE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAIhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1F,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAMhD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAO3F;AAED;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBnE;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB9F;AAID,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAI3C,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAIpE,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { PDFDocument } from '@cantoo/pdf-lib';
2
2
  import { PretextPdfError } from './errors.js';
3
3
  import { runPipeline } from './pipeline.js';
4
- import { applyPostProcessing } from './post-process.js';
4
+ import { applyPostProcessing } from './signing/index.js';
5
5
  import { assertVendorIntegrity } from './version-check.js';
6
6
  export { PretextPdfError, LEGACY_ERROR_CODE_MAP } from './errors.js';
7
7
  export { createPdf } from './builder.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -70,12 +70,12 @@ export function measureFormField(element, baseFontSize, baseFont) {
70
70
  };
71
71
  }
72
72
  export function measureHr(element) {
73
- const spaceAbove = element.spaceAbove ?? element.spaceBefore ?? 12;
73
+ const spaceBefore = element.spaceBefore ?? 12;
74
74
  const thickness = element.thickness ?? 0.5;
75
- const spaceBelow = element.spaceBelow ?? element.spaceAfter ?? 12;
75
+ const spaceAfter = element.spaceAfter ?? 12;
76
76
  return {
77
77
  element: element,
78
- height: spaceAbove + thickness + spaceBelow,
78
+ height: spaceBefore + thickness + spaceAfter,
79
79
  lines: [],
80
80
  fontSize: 0,
81
81
  lineHeight: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"simple-blocks.js","sourceRoot":"","sources":["../../src/measure-blocks/simple-blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple-blocks.js","sourceRoot":"","sources":["../../src/measure-blocks/simple-blocks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"measure-text.d.ts","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,wBAAgB,aAAa,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAE7D;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnH,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAE1C,KAAK,cAAc,GAAG;IAAE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAA;AAK3D,wBAAsB,UAAU,yDAK/B;AAID,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAc7E;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAInD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAK9F;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GACnC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA2C9D;AAID;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAID;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,GAAG,GAAG,GACpB,OAAO,CAAC,MAAM,CAAC,CAajB;AAoDD,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAWxD;AAoHD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAqIjD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,GAAG,GAAG,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA0BjD"}
1
+ {"version":3,"file":"measure-text.d.ts","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,wBAAgB,aAAa,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAE7D;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnH,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAE1C,KAAK,cAAc,GAAG;IAAE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAA;AAK3D,wBAAsB,UAAU,yDAK/B;AAID,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAc7E;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAInD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAK9F;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GACnC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA2C9D;AAID;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAID;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,GAAG,GAAG,GACpB,OAAO,CAAC,MAAM,CAAC,CAajB;AAoDD,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAWxD;AAoHD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAqIjD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,GAAG,GAAG,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,cAAc,EAC/B,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAgCjD"}
@@ -455,6 +455,13 @@ export async function measureTextWithHyphenation(text, fontString, maxWidth, opt
455
455
  * If no hyphenator is available, falls back to direct layout (text wraps without hyphens).
456
456
  */
457
457
  export async function measureText(text, fontSize, fontFamily, fontWeight, maxWidth, _lineHeight, hyphenatorOpts, wordWidthCache) {
458
+ // Strip null bytes before they reach the C extension font metric layer.
459
+ // causes "Convert String to CString failed" in @cantoo/pdf-lib's
460
+ // native font measurement. PDF viewers also terminate strings at null bytes,
461
+ // so stripping is the correct semantic action.
462
+ // eslint-disable-next-line no-control-regex
463
+ if (text && text.includes(''))
464
+ text = text.replace(//g, '');
458
465
  if (!text || text.trim() === '')
459
466
  return [];
460
467
  const { prepareWithSegments, layoutWithLines } = await getPretext();