pretext-pdf 2.0.2 → 2.0.14
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.
- package/CHANGELOG.md +239 -0
- package/dist/assets/loaders/images.d.ts.map +1 -1
- package/dist/assets/loaders/images.js +4 -1
- package/dist/assets/loaders/images.js.map +1 -1
- package/dist/assets/security/path-allowlist.d.ts.map +1 -1
- package/dist/assets/security/path-allowlist.js +10 -1
- package/dist/assets/security/path-allowlist.js.map +1 -1
- package/dist/assets/svg/resolve-content.d.ts.map +1 -1
- package/dist/assets/svg/resolve-content.js +4 -1
- package/dist/assets/svg/resolve-content.js.map +1 -1
- package/dist/builder.js +1 -1
- package/dist/builder.js.map +1 -1
- package/dist/compat/normalize.d.ts +13 -0
- package/dist/compat/normalize.d.ts.map +1 -0
- package/dist/compat/normalize.js +146 -0
- package/dist/compat/normalize.js.map +1 -0
- package/dist/compat/pdfmake-types.d.ts +91 -0
- package/dist/compat/pdfmake-types.d.ts.map +1 -0
- package/dist/compat/pdfmake-types.js +8 -0
- package/dist/compat/pdfmake-types.js.map +1 -0
- package/dist/compat/translate.d.ts +7 -0
- package/dist/compat/translate.d.ts.map +1 -0
- package/dist/compat/translate.js +205 -0
- package/dist/compat/translate.js.map +1 -0
- package/dist/compat.d.ts +6 -161
- package/dist/compat.d.ts.map +1 -1
- package/dist/compat.js +13 -404
- package/dist/compat.js.map +1 -1
- package/dist/fonts/bundled-paths.d.ts +13 -0
- package/dist/fonts/bundled-paths.d.ts.map +1 -0
- package/dist/fonts/bundled-paths.js +43 -0
- package/dist/fonts/bundled-paths.js.map +1 -0
- package/dist/fonts/collect-needed.d.ts +10 -0
- package/dist/fonts/collect-needed.d.ts.map +1 -0
- package/dist/fonts/collect-needed.js +85 -0
- package/dist/fonts/collect-needed.js.map +1 -0
- package/dist/fonts/collect-text.d.ts +9 -0
- package/dist/fonts/collect-text.d.ts.map +1 -0
- package/dist/fonts/collect-text.js +162 -0
- package/dist/fonts/collect-text.js.map +1 -0
- package/dist/fonts/load-bytes.d.ts +10 -0
- package/dist/fonts/load-bytes.d.ts.map +1 -0
- package/dist/fonts/load-bytes.js +56 -0
- package/dist/fonts/load-bytes.js.map +1 -0
- package/dist/fonts.d.ts +11 -10
- package/dist/fonts.d.ts.map +1 -1
- package/dist/fonts.js +17 -421
- package/dist/fonts.js.map +1 -1
- package/dist/pipeline-footnotes.d.ts +2 -2
- package/dist/pipeline-footnotes.d.ts.map +1 -1
- package/dist/pipeline-footnotes.js +5 -2
- package/dist/pipeline-footnotes.js.map +1 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +9 -5
- package/dist/pipeline.js.map +1 -1
- package/dist/render-utils.d.ts +1 -7
- package/dist/render-utils.d.ts.map +1 -1
- package/dist/render-utils.js +9 -30
- package/dist/render-utils.js.map +1 -1
- package/dist/schema/document.d.ts +2115 -0
- package/dist/schema/document.d.ts.map +1 -0
- package/dist/schema/document.js +275 -0
- package/dist/schema/document.js.map +1 -0
- package/dist/schema/elements-block.d.ts +481 -0
- package/dist/schema/elements-block.d.ts.map +1 -0
- package/dist/schema/elements-block.js +155 -0
- package/dist/schema/elements-block.js.map +1 -0
- package/dist/schema/elements-media.d.ts +282 -0
- package/dist/schema/elements-media.d.ts.map +1 -0
- package/dist/schema/elements-media.js +83 -0
- package/dist/schema/elements-media.js.map +1 -0
- package/dist/schema/elements-table.d.ts +134 -0
- package/dist/schema/elements-table.d.ts.map +1 -0
- package/dist/schema/elements-table.js +60 -0
- package/dist/schema/elements-table.js.map +1 -0
- package/dist/schema/elements-text.d.ts +782 -0
- package/dist/schema/elements-text.d.ts.map +1 -0
- package/dist/schema/elements-text.js +260 -0
- package/dist/schema/elements-text.js.map +1 -0
- package/dist/schema/shared.d.ts +84 -0
- package/dist/schema/shared.d.ts.map +1 -0
- package/dist/schema/shared.js +29 -0
- package/dist/schema/shared.js.map +1 -0
- package/dist/schema.d.ts +10 -2116
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +10 -852
- package/dist/schema.js.map +1 -1
- package/dist/types-public/document.d.ts +99 -101
- package/dist/types-public/document.d.ts.map +1 -1
- package/dist/validate/document.d.ts.map +1 -1
- package/dist/validate/document.js +5 -1
- package/dist/validate/document.js.map +1 -1
- package/dist/validate/elements/media.d.ts.map +1 -1
- package/dist/validate/elements/media.js +14 -0
- package/dist/validate/elements/media.js.map +1 -1
- package/dist/validate/helpers.d.ts +6 -6
- package/dist/validate/helpers.d.ts.map +1 -1
- package/dist/validate/helpers.js +7 -7
- package/dist/validate/helpers.js.map +1 -1
- package/dist/vendor/pretext/VERSION.d.ts +2 -2
- package/dist/vendor/pretext/VERSION.js +2 -2
- package/dist/vendor/pretext/layout.d.ts.map +1 -1
- package/dist/vendor/pretext/layout.js +90 -15
- package/dist/vendor/pretext/layout.js.map +1 -1
- package/dist/vendor/pretext/line-text.d.ts.map +1 -1
- package/dist/vendor/pretext/line-text.js +4 -5
- package/dist/vendor/pretext/line-text.js.map +1 -1
- package/dist/vendor/pretext/measurement.d.ts +2 -1
- package/dist/vendor/pretext/measurement.d.ts.map +1 -1
- package/dist/vendor/pretext/measurement.js +14 -18
- package/dist/vendor/pretext/measurement.js.map +1 -1
- package/dist/vendor/pretext/rich-inline.d.ts.map +1 -1
- package/dist/vendor/pretext/rich-inline.js +31 -42
- package/dist/vendor/pretext/rich-inline.js.map +1 -1
- package/package.json +1 -1
package/dist/compat.js
CHANGED
|
@@ -1,33 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
subheader: 2, h2: 2,
|
|
5
|
-
h3: 3,
|
|
6
|
-
h4: 4,
|
|
7
|
-
};
|
|
1
|
+
import { DEFAULT_HEADING_MAP, } from './compat/pdfmake-types.js';
|
|
2
|
+
import { translateNode } from './compat/translate.js';
|
|
3
|
+
import { normalizePageSize, normalizeMargins, normalizeHeaderFooter } from './compat/normalize.js';
|
|
8
4
|
/**
|
|
9
5
|
* Translate a pdfmake document descriptor into a pretext-pdf {@link PdfDocument}.
|
|
10
6
|
* The result can be passed straight to `render()` from the main entry point.
|
|
11
7
|
*
|
|
12
|
-
* @remarks
|
|
13
|
-
* **defaultStyle handling.** pdfmake's `defaultStyle` field (note: singular —
|
|
14
|
-
* the plural `styles` field is the named-style map) maps onto two
|
|
15
|
-
* document-level pretext-pdf properties:
|
|
16
|
-
*
|
|
17
|
-
* - `defaultStyle.font` → `PdfDocument.defaultFont`
|
|
18
|
-
* - `defaultStyle.fontSize` → `PdfDocument.defaultFontSize`
|
|
19
|
-
*
|
|
20
|
-
* Other `defaultStyle` properties (`bold`, `italics`, `color`, `alignment`)
|
|
21
|
-
* still flow into per-node style merging via `mergeStyles()`, so a document
|
|
22
|
-
* with `defaultStyle: { color: '#444' }` produces nodes whose effective text
|
|
23
|
-
* color is `#444` unless overridden. See {@link PdfmakeStyle} for the full
|
|
24
|
-
* list of supported and silently-dropped properties.
|
|
25
|
-
*
|
|
26
8
|
* @public
|
|
27
9
|
*/
|
|
28
10
|
export function fromPdfmake(doc, options = {}) {
|
|
29
11
|
const headingMap = options.headingMap ?? DEFAULT_HEADING_MAP;
|
|
30
|
-
const
|
|
12
|
+
const _warnedFeatures = new Set();
|
|
13
|
+
const onUnsupported = options.onUnsupported ?? ((f) => {
|
|
14
|
+
if (!_warnedFeatures.has(f)) {
|
|
15
|
+
_warnedFeatures.add(f);
|
|
16
|
+
console.warn(`[pretext-pdf/compat] Unsupported pdfmake feature skipped: ${f}`);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
31
19
|
const styles = doc.styles ?? {};
|
|
32
20
|
const defaultStyle = doc.defaultStyle ?? {};
|
|
33
21
|
const ctx = { styles, defaultStyle, headingMap, onUnsupported };
|
|
@@ -38,8 +26,9 @@ export function fromPdfmake(doc, options = {}) {
|
|
|
38
26
|
for (const el of els)
|
|
39
27
|
content.push(el);
|
|
40
28
|
}
|
|
29
|
+
// Use Mutable<> to allow incremental property assignment during construction.
|
|
30
|
+
// The cast to PdfDocument at the return site enforces the full interface contract.
|
|
41
31
|
const result = { content };
|
|
42
|
-
// pageSize
|
|
43
32
|
if (doc.pageSize !== undefined) {
|
|
44
33
|
if (typeof doc.pageSize === 'string') {
|
|
45
34
|
const normalized = normalizePageSize(doc.pageSize);
|
|
@@ -54,28 +43,23 @@ export function fromPdfmake(doc, options = {}) {
|
|
|
54
43
|
}
|
|
55
44
|
}
|
|
56
45
|
else if (doc.pageOrientation === 'landscape') {
|
|
57
|
-
// Default A4 swapped to landscape
|
|
58
46
|
result.pageSize = [842, 595];
|
|
59
47
|
}
|
|
60
|
-
// pageMargins ([left, top, right, bottom] OR [horizontal, vertical] OR scalar)
|
|
61
48
|
if (doc.pageMargins !== undefined) {
|
|
62
49
|
const m = normalizeMargins(doc.pageMargins);
|
|
63
50
|
if (m)
|
|
64
51
|
result.margins = m;
|
|
65
52
|
}
|
|
66
|
-
// defaultStyle → defaultFont / defaultFontSize
|
|
67
53
|
if (defaultStyle.font)
|
|
68
54
|
result.defaultFont = defaultStyle.font;
|
|
69
55
|
if (typeof defaultStyle.fontSize === 'number')
|
|
70
56
|
result.defaultFontSize = defaultStyle.fontSize;
|
|
71
|
-
// header / footer — only string-form supported
|
|
72
57
|
const header = normalizeHeaderFooter(doc.header, onUnsupported, 'header');
|
|
73
58
|
if (header)
|
|
74
59
|
result.header = header;
|
|
75
60
|
const footer = normalizeHeaderFooter(doc.footer, onUnsupported, 'footer');
|
|
76
61
|
if (footer)
|
|
77
62
|
result.footer = footer;
|
|
78
|
-
// info → metadata
|
|
79
63
|
if (doc.info) {
|
|
80
64
|
const m = {};
|
|
81
65
|
if (doc.info.title)
|
|
@@ -89,384 +73,9 @@ export function fromPdfmake(doc, options = {}) {
|
|
|
89
73
|
if (Object.keys(m).length > 0)
|
|
90
74
|
result.metadata = m;
|
|
91
75
|
}
|
|
92
|
-
// Forward allowedFileDirs for security: deny-by-default file:// access
|
|
93
76
|
if (doc.allowedFileDirs !== undefined) {
|
|
94
|
-
result.allowedFileDirs = doc.allowedFileDirs;
|
|
77
|
+
result.allowedFileDirs = [...doc.allowedFileDirs];
|
|
95
78
|
}
|
|
96
79
|
return result;
|
|
97
80
|
}
|
|
98
|
-
function translateNode(node, ctx) {
|
|
99
|
-
if (typeof node === 'string') {
|
|
100
|
-
return [{ type: 'paragraph', text: node }];
|
|
101
|
-
}
|
|
102
|
-
if (!node || typeof node !== 'object')
|
|
103
|
-
return [];
|
|
104
|
-
// Stack: recurse and inline.
|
|
105
|
-
if (node.stack) {
|
|
106
|
-
const out = [];
|
|
107
|
-
for (const child of node.stack) {
|
|
108
|
-
for (const el of translateNode(child, ctx))
|
|
109
|
-
out.push(el);
|
|
110
|
-
}
|
|
111
|
-
return out;
|
|
112
|
-
}
|
|
113
|
-
// Page break (before or after) becomes a sibling page-break element.
|
|
114
|
-
if (node.pageBreak === 'before') {
|
|
115
|
-
const inner = translateNodeInner(node, ctx);
|
|
116
|
-
return [{ type: 'page-break' }, ...inner];
|
|
117
|
-
}
|
|
118
|
-
if (node.pageBreak === 'after') {
|
|
119
|
-
const inner = translateNodeInner(node, ctx);
|
|
120
|
-
return [...inner, { type: 'page-break' }];
|
|
121
|
-
}
|
|
122
|
-
return translateNodeInner(node, ctx);
|
|
123
|
-
}
|
|
124
|
-
/** Translate a single pdfmake object node, ignoring stack/pageBreak (handled above). */
|
|
125
|
-
function translateNodeInner(node, ctx) {
|
|
126
|
-
// Lists
|
|
127
|
-
if (node.ul) {
|
|
128
|
-
return [{
|
|
129
|
-
type: 'list',
|
|
130
|
-
style: 'unordered',
|
|
131
|
-
items: node.ul.map(item => pdfmakeNodeToListItem(item, ctx)),
|
|
132
|
-
}];
|
|
133
|
-
}
|
|
134
|
-
if (node.ol) {
|
|
135
|
-
return [{
|
|
136
|
-
type: 'list',
|
|
137
|
-
style: 'ordered',
|
|
138
|
-
items: node.ol.map(item => pdfmakeNodeToListItem(item, ctx)),
|
|
139
|
-
}];
|
|
140
|
-
}
|
|
141
|
-
// Table
|
|
142
|
-
if (node.table) {
|
|
143
|
-
return [translateTable(node.table, ctx)];
|
|
144
|
-
}
|
|
145
|
-
// Image — strip dangerous schemes before forwarding to pretext-pdf.
|
|
146
|
-
// file://, data:, and javascript: are not safe to forward when allowedFileDirs
|
|
147
|
-
// is not set; strip them and warn rather than pass potentially dangerous URLs.
|
|
148
|
-
if (typeof node.image === 'string') {
|
|
149
|
-
const imgSrc = node.image;
|
|
150
|
-
const lc = imgSrc.trim().toLowerCase();
|
|
151
|
-
const BLOCKED_SCHEMES = ['file://', 'data:', 'javascript:', 'vbscript:', 'blob:', 'about:'];
|
|
152
|
-
if (BLOCKED_SCHEMES.some(s => lc.startsWith(s))) {
|
|
153
|
-
// Scheme is not safe to forward — return empty to skip the image
|
|
154
|
-
return [];
|
|
155
|
-
}
|
|
156
|
-
const img = { type: 'image', src: imgSrc };
|
|
157
|
-
if (typeof node.width === 'number')
|
|
158
|
-
img.width = node.width;
|
|
159
|
-
if (typeof node.height === 'number')
|
|
160
|
-
img.height = node.height;
|
|
161
|
-
return [img];
|
|
162
|
-
}
|
|
163
|
-
// QR code
|
|
164
|
-
if (typeof node.qr === 'string') {
|
|
165
|
-
const qr = { type: 'qr-code', data: node.qr };
|
|
166
|
-
if (typeof node.fit === 'number')
|
|
167
|
-
qr.size = node.fit;
|
|
168
|
-
else if (Array.isArray(node.fit) && typeof node.fit[0] === 'number')
|
|
169
|
-
qr.size = node.fit[0];
|
|
170
|
-
return [qr];
|
|
171
|
-
}
|
|
172
|
-
// Columns — pretext-pdf doesn't render multi-column at the document layout
|
|
173
|
-
// level (only paragraph.columns for text columns), so we flatten and warn
|
|
174
|
-
// once. Existing pdfmake docs that use columns mostly do so for layout
|
|
175
|
-
// tweaks that aren't load-bearing.
|
|
176
|
-
if (node.columns) {
|
|
177
|
-
ctx.onUnsupported('columns (flattened into a stack of children)');
|
|
178
|
-
const out = [];
|
|
179
|
-
for (const child of node.columns) {
|
|
180
|
-
for (const el of translateNode(child, ctx))
|
|
181
|
-
out.push(el);
|
|
182
|
-
}
|
|
183
|
-
return out;
|
|
184
|
-
}
|
|
185
|
-
if (node.canvas) {
|
|
186
|
-
ctx.onUnsupported('canvas (skipped)');
|
|
187
|
-
return [];
|
|
188
|
-
}
|
|
189
|
-
// Text node — paragraph, rich-paragraph, or heading depending on style/structure
|
|
190
|
-
if (node.text !== undefined) {
|
|
191
|
-
return [translateTextNode(node, ctx)];
|
|
192
|
-
}
|
|
193
|
-
return [];
|
|
194
|
-
}
|
|
195
|
-
// ─── Text / heading translation ───────────────────────────────────────────────
|
|
196
|
-
function translateTextNode(node, ctx) {
|
|
197
|
-
const styleNames = normalizeStyleNames(node.style);
|
|
198
|
-
const merged = mergeStyles(ctx, styleNames, node);
|
|
199
|
-
// Heading detection: first matching style name in headingMap wins.
|
|
200
|
-
let headingLevel;
|
|
201
|
-
for (const name of styleNames) {
|
|
202
|
-
if (ctx.headingMap[name] !== undefined) {
|
|
203
|
-
headingLevel = ctx.headingMap[name];
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
// Flatten the text payload into either a single string or an array of spans.
|
|
208
|
-
const flatText = typeof node.text === 'string' ? node.text : null;
|
|
209
|
-
const childArray = Array.isArray(node.text) ? node.text : (node.text && typeof node.text === 'object' ? [node.text] : []);
|
|
210
|
-
if (headingLevel !== undefined) {
|
|
211
|
-
const heading = {
|
|
212
|
-
type: 'heading',
|
|
213
|
-
level: headingLevel,
|
|
214
|
-
text: flatText ?? extractFlatText(childArray, ctx),
|
|
215
|
-
};
|
|
216
|
-
if (merged.fontSize !== undefined)
|
|
217
|
-
heading.fontSize = merged.fontSize;
|
|
218
|
-
if (merged.color)
|
|
219
|
-
heading.color = merged.color;
|
|
220
|
-
const headingAlign = pdfmakeAlignToPretext(merged.alignment);
|
|
221
|
-
if (headingAlign)
|
|
222
|
-
heading.align = headingAlign;
|
|
223
|
-
if (merged.font)
|
|
224
|
-
heading.fontFamily = merged.font;
|
|
225
|
-
return heading;
|
|
226
|
-
}
|
|
227
|
-
// Plain paragraph: text is a single string and no nested span styling needed.
|
|
228
|
-
if (flatText !== null) {
|
|
229
|
-
const para = { type: 'paragraph', text: flatText };
|
|
230
|
-
applyStyleToParagraph(para, merged);
|
|
231
|
-
return para;
|
|
232
|
-
}
|
|
233
|
-
// Rich paragraph: text is an array of (potentially styled) child nodes.
|
|
234
|
-
const spans = [];
|
|
235
|
-
for (const child of childArray)
|
|
236
|
-
collectSpans(child, ctx, merged, spans);
|
|
237
|
-
// If every span is identical-style and just text, downgrade to paragraph.
|
|
238
|
-
if (spans.length === 1 && !spans[0].fontWeight && !spans[0].fontStyle && !spans[0].color && !spans[0].href && !spans[0].fontSize) {
|
|
239
|
-
const para = { type: 'paragraph', text: spans[0].text };
|
|
240
|
-
applyStyleToParagraph(para, merged);
|
|
241
|
-
return para;
|
|
242
|
-
}
|
|
243
|
-
const rich = { type: 'rich-paragraph', spans };
|
|
244
|
-
if (merged.fontSize !== undefined)
|
|
245
|
-
rich.fontSize = merged.fontSize;
|
|
246
|
-
const richAlign = pdfmakeAlignToPretext(merged.alignment);
|
|
247
|
-
if (richAlign)
|
|
248
|
-
rich.align = richAlign;
|
|
249
|
-
return rich;
|
|
250
|
-
}
|
|
251
|
-
function applyStyleToParagraph(para, s) {
|
|
252
|
-
if (s.fontSize !== undefined)
|
|
253
|
-
para.fontSize = s.fontSize;
|
|
254
|
-
if (s.color)
|
|
255
|
-
para.color = s.color;
|
|
256
|
-
if (s.bold)
|
|
257
|
-
para.fontWeight = 700;
|
|
258
|
-
const paraAlign = pdfmakeAlignToPretext(s.alignment);
|
|
259
|
-
if (paraAlign)
|
|
260
|
-
para.align = paraAlign;
|
|
261
|
-
if (s.font)
|
|
262
|
-
para.fontFamily = s.font;
|
|
263
|
-
}
|
|
264
|
-
function collectSpans(child, ctx, parent, out) {
|
|
265
|
-
if (typeof child === 'string') {
|
|
266
|
-
const span = { text: child };
|
|
267
|
-
if (parent.bold)
|
|
268
|
-
span.fontWeight = 700;
|
|
269
|
-
if (parent.italics)
|
|
270
|
-
span.fontStyle = 'italic';
|
|
271
|
-
if (parent.color)
|
|
272
|
-
span.color = parent.color;
|
|
273
|
-
if (parent.fontSize !== undefined)
|
|
274
|
-
span.fontSize = parent.fontSize;
|
|
275
|
-
if (parent.font)
|
|
276
|
-
span.fontFamily = parent.font;
|
|
277
|
-
out.push(span);
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
if (!child || typeof child !== 'object')
|
|
281
|
-
return;
|
|
282
|
-
const styleNames = normalizeStyleNames(child.style);
|
|
283
|
-
const merged = mergeStyles(ctx, styleNames, child, parent);
|
|
284
|
-
// Recurse into nested arrays
|
|
285
|
-
if (Array.isArray(child.text)) {
|
|
286
|
-
for (const grand of child.text)
|
|
287
|
-
collectSpans(grand, ctx, merged, out);
|
|
288
|
-
return;
|
|
289
|
-
}
|
|
290
|
-
if (typeof child.text === 'string') {
|
|
291
|
-
const span = { text: child.text };
|
|
292
|
-
if (merged.bold)
|
|
293
|
-
span.fontWeight = 700;
|
|
294
|
-
if (merged.italics)
|
|
295
|
-
span.fontStyle = 'italic';
|
|
296
|
-
if (merged.color)
|
|
297
|
-
span.color = merged.color;
|
|
298
|
-
if (merged.fontSize !== undefined)
|
|
299
|
-
span.fontSize = merged.fontSize;
|
|
300
|
-
if (merged.font)
|
|
301
|
-
span.fontFamily = merged.font;
|
|
302
|
-
if (typeof child.link === 'string')
|
|
303
|
-
span.href = child.link;
|
|
304
|
-
out.push(span);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
function extractFlatText(children, ctx) {
|
|
308
|
-
const buf = [];
|
|
309
|
-
for (const c of children) {
|
|
310
|
-
if (typeof c === 'string') {
|
|
311
|
-
buf.push(c);
|
|
312
|
-
continue;
|
|
313
|
-
}
|
|
314
|
-
if (typeof c.text === 'string') {
|
|
315
|
-
buf.push(c.text);
|
|
316
|
-
continue;
|
|
317
|
-
}
|
|
318
|
-
if (Array.isArray(c.text))
|
|
319
|
-
buf.push(extractFlatText(c.text, ctx));
|
|
320
|
-
}
|
|
321
|
-
return buf.join('');
|
|
322
|
-
}
|
|
323
|
-
// ─── Table ────────────────────────────────────────────────────────────────────
|
|
324
|
-
function translateTable(t, ctx) {
|
|
325
|
-
const colCount = t.body[0]?.length ?? 0;
|
|
326
|
-
const widths = t.widths ?? new Array(colCount).fill('*');
|
|
327
|
-
const columns = widths.map((w) => {
|
|
328
|
-
if (typeof w === 'number')
|
|
329
|
-
return { width: w };
|
|
330
|
-
if (w === '*')
|
|
331
|
-
return { width: '1*' };
|
|
332
|
-
if (w === 'auto')
|
|
333
|
-
return { width: 'auto' };
|
|
334
|
-
if (typeof w === 'string' && /^\d*\.?\d+\*$/.test(w))
|
|
335
|
-
return { width: w };
|
|
336
|
-
return { width: '1*' };
|
|
337
|
-
});
|
|
338
|
-
const headerRows = t.headerRows ?? 0;
|
|
339
|
-
const rows = t.body.map((row, idx) => {
|
|
340
|
-
const isHeader = idx < headerRows;
|
|
341
|
-
const cells = row.map(cell => {
|
|
342
|
-
if (typeof cell === 'string')
|
|
343
|
-
return { text: cell, ...(isHeader ? { fontWeight: 700 } : {}) };
|
|
344
|
-
if (cell && typeof cell === 'object') {
|
|
345
|
-
const styleNames = normalizeStyleNames(cell.style);
|
|
346
|
-
const merged = mergeStyles(ctx, styleNames, cell);
|
|
347
|
-
const text = typeof cell.text === 'string' ? cell.text : (Array.isArray(cell.text) ? extractFlatText(cell.text, ctx) : '');
|
|
348
|
-
const tcell = { text };
|
|
349
|
-
if (merged.bold || isHeader)
|
|
350
|
-
tcell.fontWeight = 700;
|
|
351
|
-
if (merged.color)
|
|
352
|
-
tcell.color = merged.color;
|
|
353
|
-
if (merged.alignment && merged.alignment !== 'justify')
|
|
354
|
-
tcell.align = merged.alignment;
|
|
355
|
-
if (merged.fontSize !== undefined)
|
|
356
|
-
tcell.fontSize = merged.fontSize;
|
|
357
|
-
return tcell;
|
|
358
|
-
}
|
|
359
|
-
return { text: '' };
|
|
360
|
-
});
|
|
361
|
-
return isHeader ? { isHeader: true, cells } : { cells };
|
|
362
|
-
});
|
|
363
|
-
return { type: 'table', columns, rows };
|
|
364
|
-
}
|
|
365
|
-
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
366
|
-
function pdfmakeAlignToPretext(a) {
|
|
367
|
-
if (a === 'left' || a === 'center' || a === 'right' || a === 'justify')
|
|
368
|
-
return a;
|
|
369
|
-
return undefined;
|
|
370
|
-
}
|
|
371
|
-
function normalizeStyleNames(s) {
|
|
372
|
-
if (!s)
|
|
373
|
-
return [];
|
|
374
|
-
return Array.isArray(s) ? s : [s];
|
|
375
|
-
}
|
|
376
|
-
function mergeStyles(ctx, styleNames, node, parent) {
|
|
377
|
-
const merged = { ...ctx.defaultStyle, ...(parent ?? {}) };
|
|
378
|
-
for (const name of styleNames) {
|
|
379
|
-
const s = ctx.styles[name];
|
|
380
|
-
if (s)
|
|
381
|
-
copySafeStyleProperties(merged, s);
|
|
382
|
-
}
|
|
383
|
-
// Inline node-level overrides win
|
|
384
|
-
if (node.bold !== undefined)
|
|
385
|
-
merged.bold = node.bold;
|
|
386
|
-
if (node.italics !== undefined)
|
|
387
|
-
merged.italics = node.italics;
|
|
388
|
-
if (node.color !== undefined)
|
|
389
|
-
merged.color = node.color;
|
|
390
|
-
if (node.fontSize !== undefined)
|
|
391
|
-
merged.fontSize = node.fontSize;
|
|
392
|
-
if (node.alignment !== undefined)
|
|
393
|
-
merged.alignment = node.alignment;
|
|
394
|
-
if (node.font !== undefined)
|
|
395
|
-
merged.font = node.font;
|
|
396
|
-
return merged;
|
|
397
|
-
}
|
|
398
|
-
/** Copy only known-safe style properties, preventing prototype pollution.
|
|
399
|
-
* Uses Object.hasOwn to skip inherited properties (including __proto__-polluted
|
|
400
|
-
* values), and casts through Record<string,unknown> to avoid `as any` at the
|
|
401
|
-
* assignment site — TypeScript enforces that keys must exist on PdfmakeStyle. */
|
|
402
|
-
function copySafeStyleProperties(target, source) {
|
|
403
|
-
if (typeof source !== 'object' || source === null)
|
|
404
|
-
return;
|
|
405
|
-
const src = source;
|
|
406
|
-
const safeKeys = ['fontSize', 'bold', 'italics', 'color', 'alignment', 'font'];
|
|
407
|
-
for (const key of safeKeys) {
|
|
408
|
-
if (Object.hasOwn(src, key) && src[key] !== undefined) {
|
|
409
|
-
target[key] = src[key];
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
function pdfmakeNodeToListItem(node, ctx) {
|
|
414
|
-
if (typeof node === 'string')
|
|
415
|
-
return { text: node };
|
|
416
|
-
if (node && typeof node === 'object') {
|
|
417
|
-
if (node.ul || node.ol) {
|
|
418
|
-
// Nested list — pdfmake nests via { ul: [...] } as a child item.
|
|
419
|
-
const items = (node.ul ?? node.ol ?? []).map(i => pdfmakeNodeToListItem(i, ctx));
|
|
420
|
-
return { text: '', items };
|
|
421
|
-
}
|
|
422
|
-
if (typeof node.text === 'string')
|
|
423
|
-
return { text: node.text };
|
|
424
|
-
if (Array.isArray(node.text))
|
|
425
|
-
return { text: extractFlatText(node.text, ctx) };
|
|
426
|
-
}
|
|
427
|
-
return { text: '' };
|
|
428
|
-
}
|
|
429
|
-
function normalizePageSize(name) {
|
|
430
|
-
const n = name.trim();
|
|
431
|
-
// pdfmake commonly uses uppercase ('LETTER', 'A4'); pretext-pdf uses 'Letter', 'A4'.
|
|
432
|
-
const map = {
|
|
433
|
-
A3: 'A3', A4: 'A4', A5: 'A5',
|
|
434
|
-
LETTER: 'Letter', Letter: 'Letter', letter: 'Letter',
|
|
435
|
-
LEGAL: 'Legal', Legal: 'Legal', legal: 'Legal',
|
|
436
|
-
TABLOID: 'Tabloid', Tabloid: 'Tabloid', tabloid: 'Tabloid',
|
|
437
|
-
};
|
|
438
|
-
return map[n] ?? null;
|
|
439
|
-
}
|
|
440
|
-
function normalizeMargins(m) {
|
|
441
|
-
if (typeof m === 'number')
|
|
442
|
-
return { top: m, bottom: m, left: m, right: m };
|
|
443
|
-
if (Array.isArray(m)) {
|
|
444
|
-
if (m.length === 2)
|
|
445
|
-
return { left: m[0], top: m[1], right: m[0], bottom: m[1] };
|
|
446
|
-
if (m.length === 4)
|
|
447
|
-
return { left: m[0], top: m[1], right: m[2], bottom: m[3] };
|
|
448
|
-
}
|
|
449
|
-
return null;
|
|
450
|
-
}
|
|
451
|
-
function normalizeHeaderFooter(hf, onUnsupported, label) {
|
|
452
|
-
if (hf === undefined)
|
|
453
|
-
return null;
|
|
454
|
-
if (typeof hf === 'function') {
|
|
455
|
-
onUnsupported(`${label} (function form not supported — pass a string instead)`);
|
|
456
|
-
return null;
|
|
457
|
-
}
|
|
458
|
-
if (typeof hf === 'string')
|
|
459
|
-
return { text: hf };
|
|
460
|
-
if (typeof hf === 'object' && typeof hf.text === 'string') {
|
|
461
|
-
const out = { text: hf.text };
|
|
462
|
-
if (hf.alignment === 'left' || hf.alignment === 'center' || hf.alignment === 'right')
|
|
463
|
-
out.align = hf.alignment;
|
|
464
|
-
if (typeof hf.fontSize === 'number')
|
|
465
|
-
out.fontSize = hf.fontSize;
|
|
466
|
-
if (hf.color)
|
|
467
|
-
out.color = hf.color;
|
|
468
|
-
return out;
|
|
469
|
-
}
|
|
470
|
-
return null;
|
|
471
|
-
}
|
|
472
81
|
//# sourceMappingURL=compat.js.map
|
package/dist/compat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Browser/Node detection and bundled Inter font path resolution. */
|
|
2
|
+
export declare const IS_NODE: boolean;
|
|
3
|
+
export declare const __dirname_fonts: string;
|
|
4
|
+
export declare function resolveInterFile(filename: string): string | null;
|
|
5
|
+
/** Path to bundled Inter 400 normal font — TTF preferred for pdf-lib (Node only) */
|
|
6
|
+
export declare const BUNDLED_INTER_PATHS: string[];
|
|
7
|
+
/** Path to bundled Inter 700 (bold) font — TTF preferred for pdf-lib (Node only) */
|
|
8
|
+
export declare const BUNDLED_INTER_BOLD_PATHS: string[];
|
|
9
|
+
/** Path to bundled Inter 400 italic font */
|
|
10
|
+
export declare const BUNDLED_INTER_ITALIC_PATHS: string[];
|
|
11
|
+
/** Path to bundled Inter 700 italic font */
|
|
12
|
+
export declare const BUNDLED_INTER_BOLD_ITALIC_PATHS: string[];
|
|
13
|
+
//# sourceMappingURL=bundled-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled-paths.d.ts","sourceRoot":"","sources":["../../src/fonts/bundled-paths.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAMrE,eAAO,MAAM,OAAO,SAAgG,CAAA;AAEpH,eAAO,MAAM,eAAe,QAA8D,CAAA;AAG1F,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQhE;AAED,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,EAAE,MAAM,EAIN,CAAA;AAElC,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAIX,CAAA;AAElC,4CAA4C;AAC5C,eAAO,MAAM,0BAA0B,EAAE,MAAM,EAIb,CAAA;AAElC,4CAA4C;AAC5C,eAAO,MAAM,+BAA+B,EAAE,MAAM,EAIlB,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** Browser/Node detection and bundled Inter font path resolution. */
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import { createRequire } from 'module';
|
|
5
|
+
export const IS_NODE = typeof window === 'undefined' && typeof process !== 'undefined' && !!(process.versions?.node);
|
|
6
|
+
export const __dirname_fonts = IS_NODE ? path.dirname(fileURLToPath(import.meta.url)) : '';
|
|
7
|
+
const _require = IS_NODE ? createRequire(import.meta.url) : null;
|
|
8
|
+
export function resolveInterFile(filename) {
|
|
9
|
+
if (!_require)
|
|
10
|
+
return null;
|
|
11
|
+
try {
|
|
12
|
+
const pkgJson = _require.resolve('@fontsource/inter/package.json');
|
|
13
|
+
return path.join(path.dirname(pkgJson), 'files', filename);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Path to bundled Inter 400 normal font — TTF preferred for pdf-lib (Node only) */
|
|
20
|
+
export const BUNDLED_INTER_PATHS = IS_NODE ? [
|
|
21
|
+
path.join(__dirname_fonts, '..', '..', 'fonts', 'Inter-Regular.ttf'),
|
|
22
|
+
resolveInterFile('inter-latin-400-normal.woff2'),
|
|
23
|
+
resolveInterFile('inter-all-400-normal.woff2'),
|
|
24
|
+
].filter(Boolean) : [];
|
|
25
|
+
/** Path to bundled Inter 700 (bold) font — TTF preferred for pdf-lib (Node only) */
|
|
26
|
+
export const BUNDLED_INTER_BOLD_PATHS = IS_NODE ? [
|
|
27
|
+
path.join(__dirname_fonts, '..', '..', 'fonts', 'Inter-Bold.ttf'),
|
|
28
|
+
resolveInterFile('inter-latin-700-normal.woff2'),
|
|
29
|
+
resolveInterFile('inter-all-700-normal.woff2'),
|
|
30
|
+
].filter(Boolean) : [];
|
|
31
|
+
/** Path to bundled Inter 400 italic font */
|
|
32
|
+
export const BUNDLED_INTER_ITALIC_PATHS = IS_NODE ? [
|
|
33
|
+
path.join(__dirname_fonts, '..', '..', 'fonts', 'Inter-Italic.ttf'),
|
|
34
|
+
resolveInterFile('inter-latin-400-italic.woff2'),
|
|
35
|
+
resolveInterFile('inter-all-400-italic.woff2'),
|
|
36
|
+
].filter(Boolean) : [];
|
|
37
|
+
/** Path to bundled Inter 700 italic font */
|
|
38
|
+
export const BUNDLED_INTER_BOLD_ITALIC_PATHS = IS_NODE ? [
|
|
39
|
+
path.join(__dirname_fonts, '..', '..', 'fonts', 'Inter-BoldItalic.ttf'),
|
|
40
|
+
resolveInterFile('inter-latin-700-italic.woff2'),
|
|
41
|
+
resolveInterFile('inter-all-700-italic.woff2'),
|
|
42
|
+
].filter(Boolean) : [];
|
|
43
|
+
//# sourceMappingURL=bundled-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled-paths.js","sourceRoot":"","sources":["../../src/fonts/bundled-paths.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEtC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AAEpH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1F,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAEhE,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,MAAM,mBAAmB,GAAa,OAAO,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC;IACpE,gBAAgB,CAAC,8BAA8B,CAAC;IAChD,gBAAgB,CAAC,4BAA4B,CAAC;CAC/C,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC,CAAC,CAAC,EAAE,CAAA;AAElC,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAa,OAAO,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC;IACjE,gBAAgB,CAAC,8BAA8B,CAAC;IAChD,gBAAgB,CAAC,4BAA4B,CAAC;CAC/C,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC,CAAC,CAAC,EAAE,CAAA;AAElC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,0BAA0B,GAAa,OAAO,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC;IACnE,gBAAgB,CAAC,8BAA8B,CAAC;IAChD,gBAAgB,CAAC,4BAA4B,CAAC;CAC/C,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC,CAAC,CAAC,EAAE,CAAA;AAElC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,+BAA+B,GAAa,OAAO,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,CAAC;IACvE,gBAAgB,CAAC,8BAA8B,CAAC;IAChD,gBAAgB,CAAC,4BAA4B,CAAC;CAC/C,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC,CAAC,CAAC,EAAE,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Scan document to collect every unique font variant needed. */
|
|
2
|
+
import type { PdfDocument, FontSpec } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns a Map from fontKey → FontSpec-like descriptor for every font variant
|
|
5
|
+
* referenced in the document (content + header/footer/watermark/signature).
|
|
6
|
+
*/
|
|
7
|
+
export declare function collectNeededFonts(doc: PdfDocument): Map<string, FontSpec & {
|
|
8
|
+
src: string | Uint8Array | 'bundled';
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=collect-needed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-needed.d.ts","sourceRoot":"","sources":["../../src/fonts/collect-needed.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAIxD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG;IAAE,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;CAAE,CAAC,CAqErH"}
|