pretext-pdf 2.0.2 → 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.
- package/CHANGELOG.md +227 -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/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdfmake-types.d.ts","sourceRoot":"","sources":["../../src/compat/pdfmake-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdfmake-types.js","sourceRoot":"","sources":["../../src/compat/pdfmake-types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAkF/D,MAAM,CAAC,MAAM,mBAAmB,GAAkC;IAChE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAC1B,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IACnB,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;CACN,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Node-level translation: pdfmake nodes → pretext-pdf ContentElement[] */
|
|
2
|
+
import type { ContentElement, ListItem } from '../types.js';
|
|
3
|
+
import { type PdfmakeNode, type PdfmakeObjectNode, type TranslateCtx } from './pdfmake-types.js';
|
|
4
|
+
export declare function translateNode(node: PdfmakeNode, ctx: TranslateCtx): ContentElement[];
|
|
5
|
+
export declare function translateTextNode(node: PdfmakeObjectNode, ctx: TranslateCtx): ContentElement;
|
|
6
|
+
export declare function pdfmakeNodeToListItem(node: PdfmakeNode, ctx: TranslateCtx): ListItem;
|
|
7
|
+
//# sourceMappingURL=translate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../src/compat/translate.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,KAAK,EACV,cAAc,EAKd,QAAQ,EAKT,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAqB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGnH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,cAAc,EAAE,CAwBpF;AA6DD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,GAAG,cAAc,CA+C5F;AAyCD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,QAAQ,CAWpF"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/** Node-level translation: pdfmake nodes → pretext-pdf ContentElement[] */
|
|
2
|
+
import {} from './pdfmake-types.js';
|
|
3
|
+
import { translateTable, pdfmakeAlignToPretext, normalizeStyleNames, mergeStyles, extractFlatText } from './normalize.js';
|
|
4
|
+
export function translateNode(node, ctx) {
|
|
5
|
+
if (typeof node === 'string') {
|
|
6
|
+
return [{ type: 'paragraph', text: node }];
|
|
7
|
+
}
|
|
8
|
+
if (!node || typeof node !== 'object')
|
|
9
|
+
return [];
|
|
10
|
+
if (node.stack) {
|
|
11
|
+
const out = [];
|
|
12
|
+
for (const child of node.stack) {
|
|
13
|
+
for (const el of translateNode(child, ctx))
|
|
14
|
+
out.push(el);
|
|
15
|
+
}
|
|
16
|
+
return out;
|
|
17
|
+
}
|
|
18
|
+
if (node.pageBreak === 'before') {
|
|
19
|
+
const inner = translateNodeInner(node, ctx);
|
|
20
|
+
return [{ type: 'page-break' }, ...inner];
|
|
21
|
+
}
|
|
22
|
+
if (node.pageBreak === 'after') {
|
|
23
|
+
const inner = translateNodeInner(node, ctx);
|
|
24
|
+
return [...inner, { type: 'page-break' }];
|
|
25
|
+
}
|
|
26
|
+
return translateNodeInner(node, ctx);
|
|
27
|
+
}
|
|
28
|
+
function translateNodeInner(node, ctx) {
|
|
29
|
+
if (node.ul) {
|
|
30
|
+
return [{
|
|
31
|
+
type: 'list',
|
|
32
|
+
style: 'unordered',
|
|
33
|
+
items: node.ul.map(item => pdfmakeNodeToListItem(item, ctx)),
|
|
34
|
+
}];
|
|
35
|
+
}
|
|
36
|
+
if (node.ol) {
|
|
37
|
+
return [{
|
|
38
|
+
type: 'list',
|
|
39
|
+
style: 'ordered',
|
|
40
|
+
items: node.ol.map(item => pdfmakeNodeToListItem(item, ctx)),
|
|
41
|
+
}];
|
|
42
|
+
}
|
|
43
|
+
if (node.table) {
|
|
44
|
+
return [translateTable(node.table, ctx)];
|
|
45
|
+
}
|
|
46
|
+
if (typeof node.image === 'string') {
|
|
47
|
+
const imgSrc = node.image;
|
|
48
|
+
const lc = imgSrc.trim().toLowerCase();
|
|
49
|
+
const BLOCKED_SCHEMES = ['file://', 'data:', 'javascript:', 'vbscript:', 'blob:', 'about:'];
|
|
50
|
+
if (BLOCKED_SCHEMES.some(s => lc.startsWith(s)))
|
|
51
|
+
return [];
|
|
52
|
+
const img = { type: 'image', src: imgSrc };
|
|
53
|
+
if (typeof node.width === 'number')
|
|
54
|
+
img.width = node.width;
|
|
55
|
+
if (typeof node.height === 'number')
|
|
56
|
+
img.height = node.height;
|
|
57
|
+
return [img];
|
|
58
|
+
}
|
|
59
|
+
if (typeof node.qr === 'string') {
|
|
60
|
+
const qr = { type: 'qr-code', data: node.qr };
|
|
61
|
+
if (typeof node.fit === 'number')
|
|
62
|
+
qr.size = node.fit;
|
|
63
|
+
else if (Array.isArray(node.fit) && typeof node.fit[0] === 'number')
|
|
64
|
+
qr.size = node.fit[0];
|
|
65
|
+
return [qr];
|
|
66
|
+
}
|
|
67
|
+
if (node.columns) {
|
|
68
|
+
ctx.onUnsupported('columns (flattened into a stack of children)');
|
|
69
|
+
const out = [];
|
|
70
|
+
for (const child of node.columns) {
|
|
71
|
+
for (const el of translateNode(child, ctx))
|
|
72
|
+
out.push(el);
|
|
73
|
+
}
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
if (node.canvas) {
|
|
77
|
+
ctx.onUnsupported('canvas (skipped)');
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
80
|
+
if (node.text !== undefined) {
|
|
81
|
+
return [translateTextNode(node, ctx)];
|
|
82
|
+
}
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
export function translateTextNode(node, ctx) {
|
|
86
|
+
const styleNames = normalizeStyleNames(node.style);
|
|
87
|
+
const merged = mergeStyles(ctx, styleNames, node);
|
|
88
|
+
let headingLevel;
|
|
89
|
+
for (const name of styleNames) {
|
|
90
|
+
if (ctx.headingMap[name] !== undefined) {
|
|
91
|
+
headingLevel = ctx.headingMap[name];
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const flatText = typeof node.text === 'string' ? node.text : null;
|
|
96
|
+
const childArray = Array.isArray(node.text) ? node.text : (node.text && typeof node.text === 'object' ? [node.text] : []);
|
|
97
|
+
if (headingLevel !== undefined) {
|
|
98
|
+
const heading = {
|
|
99
|
+
type: 'heading',
|
|
100
|
+
level: headingLevel,
|
|
101
|
+
text: flatText ?? extractFlatText(childArray, ctx),
|
|
102
|
+
};
|
|
103
|
+
if (merged.fontSize !== undefined)
|
|
104
|
+
heading.fontSize = merged.fontSize;
|
|
105
|
+
if (merged.color)
|
|
106
|
+
heading.color = merged.color;
|
|
107
|
+
const headingAlign = pdfmakeAlignToPretext(merged.alignment);
|
|
108
|
+
if (headingAlign)
|
|
109
|
+
heading.align = headingAlign;
|
|
110
|
+
if (merged.font)
|
|
111
|
+
heading.fontFamily = merged.font;
|
|
112
|
+
return heading;
|
|
113
|
+
}
|
|
114
|
+
if (flatText !== null) {
|
|
115
|
+
const para = { type: 'paragraph', text: flatText };
|
|
116
|
+
applyStyleToParagraph(para, merged);
|
|
117
|
+
return para;
|
|
118
|
+
}
|
|
119
|
+
const spans = [];
|
|
120
|
+
for (const child of childArray)
|
|
121
|
+
collectSpans(child, ctx, merged, spans);
|
|
122
|
+
if (spans.length === 1 && !spans[0].fontWeight && !spans[0].fontStyle && !spans[0].color && !spans[0].href && !spans[0].fontSize) {
|
|
123
|
+
const para = { type: 'paragraph', text: spans[0].text };
|
|
124
|
+
applyStyleToParagraph(para, merged);
|
|
125
|
+
return para;
|
|
126
|
+
}
|
|
127
|
+
const rich = { type: 'rich-paragraph', spans };
|
|
128
|
+
if (merged.fontSize !== undefined)
|
|
129
|
+
rich.fontSize = merged.fontSize;
|
|
130
|
+
const richAlign = pdfmakeAlignToPretext(merged.alignment);
|
|
131
|
+
if (richAlign)
|
|
132
|
+
rich.align = richAlign;
|
|
133
|
+
return rich;
|
|
134
|
+
}
|
|
135
|
+
function applyStyleToParagraph(para, s) {
|
|
136
|
+
if (s.fontSize !== undefined)
|
|
137
|
+
para.fontSize = s.fontSize;
|
|
138
|
+
if (s.color)
|
|
139
|
+
para.color = s.color;
|
|
140
|
+
if (s.bold)
|
|
141
|
+
para.fontWeight = 700;
|
|
142
|
+
const paraAlign = pdfmakeAlignToPretext(s.alignment);
|
|
143
|
+
if (paraAlign)
|
|
144
|
+
para.align = paraAlign;
|
|
145
|
+
if (s.font)
|
|
146
|
+
para.fontFamily = s.font;
|
|
147
|
+
}
|
|
148
|
+
function collectSpans(child, ctx, parent, out) {
|
|
149
|
+
if (typeof child === 'string') {
|
|
150
|
+
const span = { text: child };
|
|
151
|
+
if (parent.bold)
|
|
152
|
+
span.fontWeight = 700;
|
|
153
|
+
if (parent.italics)
|
|
154
|
+
span.fontStyle = 'italic';
|
|
155
|
+
if (parent.color)
|
|
156
|
+
span.color = parent.color;
|
|
157
|
+
if (parent.fontSize !== undefined)
|
|
158
|
+
span.fontSize = parent.fontSize;
|
|
159
|
+
if (parent.font)
|
|
160
|
+
span.fontFamily = parent.font;
|
|
161
|
+
out.push(span);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
if (!child || typeof child !== 'object')
|
|
165
|
+
return;
|
|
166
|
+
const styleNames = normalizeStyleNames(child.style);
|
|
167
|
+
const merged = mergeStyles(ctx, styleNames, child, parent);
|
|
168
|
+
if (Array.isArray(child.text)) {
|
|
169
|
+
for (const grand of child.text)
|
|
170
|
+
collectSpans(grand, ctx, merged, out);
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (typeof child.text === 'string') {
|
|
174
|
+
const span = { text: child.text };
|
|
175
|
+
if (merged.bold)
|
|
176
|
+
span.fontWeight = 700;
|
|
177
|
+
if (merged.italics)
|
|
178
|
+
span.fontStyle = 'italic';
|
|
179
|
+
if (merged.color)
|
|
180
|
+
span.color = merged.color;
|
|
181
|
+
if (merged.fontSize !== undefined)
|
|
182
|
+
span.fontSize = merged.fontSize;
|
|
183
|
+
if (merged.font)
|
|
184
|
+
span.fontFamily = merged.font;
|
|
185
|
+
if (typeof child.link === 'string')
|
|
186
|
+
span.href = child.link;
|
|
187
|
+
out.push(span);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
export function pdfmakeNodeToListItem(node, ctx) {
|
|
191
|
+
if (typeof node === 'string')
|
|
192
|
+
return { text: node };
|
|
193
|
+
if (node && typeof node === 'object') {
|
|
194
|
+
if (node.ul || node.ol) {
|
|
195
|
+
const items = (node.ul ?? node.ol ?? []).map(i => pdfmakeNodeToListItem(i, ctx));
|
|
196
|
+
return { text: '', items };
|
|
197
|
+
}
|
|
198
|
+
if (typeof node.text === 'string')
|
|
199
|
+
return { text: node.text };
|
|
200
|
+
if (Array.isArray(node.text))
|
|
201
|
+
return { text: extractFlatText(node.text, ctx) };
|
|
202
|
+
}
|
|
203
|
+
return { text: '' };
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=translate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/compat/translate.ts"],"names":[],"mappings":"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"}
|
package/dist/compat.d.ts
CHANGED
|
@@ -9,173 +9,18 @@
|
|
|
9
9
|
* const pdfmakeDoc = { content: [...], styles: {...} }
|
|
10
10
|
* const pdf = await render(fromPdfmake(pdfmakeDoc))
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
* -
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* - { text } → paragraph or rich-paragraph (depends on inline styling)
|
|
17
|
-
* - { ul } / { ol } → list (recursive)
|
|
18
|
-
* - { table: {body, widths, headerRows} } → table
|
|
19
|
-
* - { image } → image
|
|
20
|
-
* - { qr, fit } → qr-code (requires the `qrcode` peer dep at render time)
|
|
21
|
-
* - { pageBreak } → page-break
|
|
22
|
-
* - { stack } → recurse children inline
|
|
23
|
-
* - header / footer (string forms only — pdfmake function-style headers are not supported)
|
|
24
|
-
*
|
|
25
|
-
* What's NOT translated (skipped, optionally warns):
|
|
26
|
-
* - { columns } — flattened into a stack with a console warning
|
|
27
|
-
* - { canvas } — drawing primitives are unsupported
|
|
28
|
-
* - Function-style headers/footers
|
|
29
|
-
* - styles[name].marginX / marginY / decoration
|
|
30
|
-
*
|
|
31
|
-
* Heading detection:
|
|
32
|
-
* By default style names like 'header', 'h1'..'h4', 'title', 'subheader' map
|
|
33
|
-
* to pretext-pdf heading levels 1..4. Override with `options.headingMap`.
|
|
12
|
+
* Implementation split across src/compat/:
|
|
13
|
+
* pdfmake-types.ts — PdfmakeDocument, PdfmakeNode, PdfmakeStyle, CompatOptions, TranslateCtx
|
|
14
|
+
* translate.ts — translateNode, translateTextNode, pdfmakeNodeToListItem (internal: translateNodeInner, applyStyleToParagraph, collectSpans)
|
|
15
|
+
* normalize.ts — extractFlatText, translateTable, mergeStyles, normalizePageSize/Margins/HeaderFooter
|
|
34
16
|
*/
|
|
35
17
|
import type { PdfDocument } from './types.js';
|
|
36
|
-
|
|
37
|
-
export
|
|
38
|
-
content: PdfmakeNode | PdfmakeNode[];
|
|
39
|
-
styles?: Record<string, PdfmakeStyle>;
|
|
40
|
-
defaultStyle?: PdfmakeStyle;
|
|
41
|
-
pageSize?: string | {
|
|
42
|
-
width: number;
|
|
43
|
-
height: number;
|
|
44
|
-
};
|
|
45
|
-
pageOrientation?: 'portrait' | 'landscape';
|
|
46
|
-
pageMargins?: number | [number, number] | [number, number, number, number];
|
|
47
|
-
header?: string | {
|
|
48
|
-
text: string;
|
|
49
|
-
alignment?: PdfmakeStyle['alignment'];
|
|
50
|
-
fontSize?: number;
|
|
51
|
-
color?: string;
|
|
52
|
-
};
|
|
53
|
-
footer?: string | {
|
|
54
|
-
text: string;
|
|
55
|
-
alignment?: PdfmakeStyle['alignment'];
|
|
56
|
-
fontSize?: number;
|
|
57
|
-
color?: string;
|
|
58
|
-
};
|
|
59
|
-
info?: {
|
|
60
|
-
title?: string;
|
|
61
|
-
author?: string;
|
|
62
|
-
subject?: string;
|
|
63
|
-
keywords?: string;
|
|
64
|
-
};
|
|
65
|
-
allowedFileDirs?: string[];
|
|
66
|
-
}
|
|
67
|
-
export type PdfmakeNode = string | PdfmakeObjectNode;
|
|
68
|
-
export interface PdfmakeObjectNode {
|
|
69
|
-
text?: string | PdfmakeNode | PdfmakeNode[];
|
|
70
|
-
style?: string | string[];
|
|
71
|
-
bold?: boolean;
|
|
72
|
-
italics?: boolean;
|
|
73
|
-
color?: string;
|
|
74
|
-
fontSize?: number;
|
|
75
|
-
alignment?: 'left' | 'center' | 'right' | 'justify';
|
|
76
|
-
font?: string;
|
|
77
|
-
ul?: PdfmakeNode[];
|
|
78
|
-
ol?: PdfmakeNode[];
|
|
79
|
-
table?: {
|
|
80
|
-
body: PdfmakeNode[][];
|
|
81
|
-
widths?: Array<number | string>;
|
|
82
|
-
headerRows?: number;
|
|
83
|
-
};
|
|
84
|
-
image?: string;
|
|
85
|
-
width?: number | string;
|
|
86
|
-
height?: number;
|
|
87
|
-
qr?: string;
|
|
88
|
-
fit?: number | [number, number];
|
|
89
|
-
pageBreak?: 'before' | 'after';
|
|
90
|
-
stack?: PdfmakeNode[];
|
|
91
|
-
columns?: PdfmakeNode[];
|
|
92
|
-
link?: string;
|
|
93
|
-
canvas?: unknown[];
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Subset of pdfmake style properties translated by this shim.
|
|
97
|
-
*
|
|
98
|
-
* @remarks
|
|
99
|
-
* **What pdfmake's style system looks like.** A pdfmake document has two
|
|
100
|
-
* style surfaces:
|
|
101
|
-
*
|
|
102
|
-
* 1. `styles: Record<string, PdfmakeStyle>` — a named-style map. Nodes
|
|
103
|
-
* reference styles via `{ text, style: 'h1' }` or
|
|
104
|
-
* `{ text, style: ['h1', 'bold'] }` (later names override earlier).
|
|
105
|
-
* 2. `defaultStyle: PdfmakeStyle` — applied to **every** node unless
|
|
106
|
-
* overridden by a named style or inline property.
|
|
107
|
-
*
|
|
108
|
-
* Style resolution order in pdfmake: `defaultStyle` → named styles (in array
|
|
109
|
-
* order) → inline node properties. This shim implements the same precedence
|
|
110
|
-
* inside `mergeStyles()`.
|
|
111
|
-
*
|
|
112
|
-
* **Properties that map into pretext-pdf:**
|
|
113
|
-
* - `font` → element `font` (only on rich-paragraph spans) and, on
|
|
114
|
-
* `defaultStyle`, the document-level `defaultFont`.
|
|
115
|
-
* - `fontSize` → element `fontSize` and, on `defaultStyle`, document-level
|
|
116
|
-
* `defaultFontSize`.
|
|
117
|
-
* - `bold` → rich-paragraph span `bold`.
|
|
118
|
-
* - `italics` → rich-paragraph span `italic` (note the rename).
|
|
119
|
-
* - `color` → element `color`.
|
|
120
|
-
* - `alignment` → paragraph/heading `align`.
|
|
121
|
-
*
|
|
122
|
-
* **Properties pdfmake supports that this shim silently drops:**
|
|
123
|
-
* - `lineHeight` / `leading`
|
|
124
|
-
* - `marginLeft` / `marginRight` / `marginTop` / `marginBottom` (named-style
|
|
125
|
-
* margins; node-level margins are also dropped)
|
|
126
|
-
* - `decoration` (underline / lineThrough / overline) and `decorationStyle`
|
|
127
|
-
* - `background` (highlight color)
|
|
128
|
-
* - `characterSpacing`
|
|
129
|
-
* - `preserveLeadingSpaces` / `noWrap`
|
|
130
|
-
* - `link`, `linkToPage`, `linkToDestination` outside the dedicated `link`
|
|
131
|
-
* shorthand
|
|
132
|
-
* - Anything else not listed in the `Properties that map` list above
|
|
133
|
-
*
|
|
134
|
-
* If you migrate from pdfmake and notice a missing visual property, it is
|
|
135
|
-
* almost certainly one of the silently-dropped ones above. File an issue
|
|
136
|
-
* with the property name if it is load-bearing for your output.
|
|
137
|
-
*
|
|
138
|
-
* @public
|
|
139
|
-
*/
|
|
140
|
-
export interface PdfmakeStyle {
|
|
141
|
-
fontSize?: number;
|
|
142
|
-
bold?: boolean;
|
|
143
|
-
italics?: boolean;
|
|
144
|
-
color?: string;
|
|
145
|
-
alignment?: 'left' | 'center' | 'right' | 'justify';
|
|
146
|
-
font?: string;
|
|
147
|
-
}
|
|
148
|
-
export interface CompatOptions {
|
|
149
|
-
/**
|
|
150
|
-
* Map of pdfmake style names to pretext-pdf heading levels (1–4).
|
|
151
|
-
* Default: { header: 1, h1: 1, title: 1, subheader: 2, h2: 2, h3: 3, h4: 4 }
|
|
152
|
-
* Pass `{}` to disable heading detection entirely (everything becomes paragraphs).
|
|
153
|
-
*/
|
|
154
|
-
headingMap?: Record<string, 1 | 2 | 3 | 4>;
|
|
155
|
-
/**
|
|
156
|
-
* Called when a pdfmake feature is encountered that the shim doesn't translate
|
|
157
|
-
* (canvas, function-style headers, etc.). Default: log a one-time warning.
|
|
158
|
-
*/
|
|
159
|
-
onUnsupported?: (feature: string) => void;
|
|
160
|
-
}
|
|
18
|
+
import { type PdfmakeDocument, type CompatOptions } from './compat/pdfmake-types.js';
|
|
19
|
+
export type { PdfmakeDocument, PdfmakeNode, PdfmakeObjectNode, PdfmakeStyle, CompatOptions } from './compat/pdfmake-types.js';
|
|
161
20
|
/**
|
|
162
21
|
* Translate a pdfmake document descriptor into a pretext-pdf {@link PdfDocument}.
|
|
163
22
|
* The result can be passed straight to `render()` from the main entry point.
|
|
164
23
|
*
|
|
165
|
-
* @remarks
|
|
166
|
-
* **defaultStyle handling.** pdfmake's `defaultStyle` field (note: singular —
|
|
167
|
-
* the plural `styles` field is the named-style map) maps onto two
|
|
168
|
-
* document-level pretext-pdf properties:
|
|
169
|
-
*
|
|
170
|
-
* - `defaultStyle.font` → `PdfDocument.defaultFont`
|
|
171
|
-
* - `defaultStyle.fontSize` → `PdfDocument.defaultFontSize`
|
|
172
|
-
*
|
|
173
|
-
* Other `defaultStyle` properties (`bold`, `italics`, `color`, `alignment`)
|
|
174
|
-
* still flow into per-node style merging via `mergeStyles()`, so a document
|
|
175
|
-
* with `defaultStyle: { color: '#444' }` produces nodes whose effective text
|
|
176
|
-
* color is `#444` unless overridden. See {@link PdfmakeStyle} for the full
|
|
177
|
-
* list of supported and silently-dropped properties.
|
|
178
|
-
*
|
|
179
24
|
* @public
|
|
180
25
|
*/
|
|
181
26
|
export declare function fromPdfmake(doc: PdfmakeDocument, options?: CompatOptions): PdfDocument;
|
package/dist/compat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,WAAW,EAAoC,MAAM,YAAY,CAAA;AAI/E,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAGnB,MAAM,2BAA2B,CAAA;AAIlC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE7H;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,GAAE,aAAkB,GAAG,WAAW,CAkE1F"}
|