pretext-pdf 0.4.6 → 0.5.1
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 +333 -333
- package/README.md +3 -3
- package/dist/assets.d.ts +3 -0
- package/dist/assets.d.ts.map +1 -1
- package/dist/assets.js +111 -21
- package/dist/assets.js.map +1 -1
- package/dist/builder.d.ts +22 -1
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +38 -1
- package/dist/builder.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/fonts.d.ts.map +1 -1
- package/dist/fonts.js +36 -1
- package/dist/fonts.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -15
- package/dist/index.js.map +1 -1
- package/dist/measure-blocks.d.ts +25 -0
- package/dist/measure-blocks.d.ts.map +1 -0
- package/dist/measure-blocks.js +1019 -0
- package/dist/measure-blocks.js.map +1 -0
- package/dist/measure-text.d.ts +53 -0
- package/dist/measure-text.d.ts.map +1 -0
- package/dist/measure-text.js +435 -0
- package/dist/measure-text.js.map +1 -0
- package/dist/measure.d.ts +15 -35
- package/dist/measure.d.ts.map +1 -1
- package/dist/measure.js +42 -1066
- package/dist/measure.js.map +1 -1
- package/dist/paginate.d.ts.map +1 -1
- package/dist/paginate.js +14 -12
- package/dist/paginate.js.map +1 -1
- package/dist/render-blocks.d.ts +24 -0
- package/dist/render-blocks.d.ts.map +1 -0
- package/dist/render-blocks.js +937 -0
- package/dist/render-blocks.js.map +1 -0
- package/dist/render-extras.d.ts +18 -0
- package/dist/render-extras.d.ts.map +1 -0
- package/dist/render-extras.js +325 -0
- package/dist/render-extras.js.map +1 -0
- package/dist/render-utils.d.ts +59 -0
- package/dist/render-utils.d.ts.map +1 -0
- package/dist/render-utils.js +219 -0
- package/dist/render-utils.js.map +1 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +10 -1372
- package/dist/render.js.map +1 -1
- package/dist/rich-text.d.ts +4 -0
- package/dist/rich-text.d.ts.map +1 -1
- package/dist/rich-text.js +4 -0
- package/dist/rich-text.js.map +1 -1
- package/dist/types.d.ts +108 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +195 -15
- package/dist/validate.js.map +1 -1
- package/docs/screenshots/showcase-invoice.png +0 -0
- package/docs/screenshots/showcase-report.png +0 -0
- package/docs/screenshots/showcase-resume.png +0 -0
- package/package.json +130 -128
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* render-utils.ts — Pure utility functions for PDF rendering
|
|
3
|
+
* No element-type knowledge. Used by all render modules.
|
|
4
|
+
*/
|
|
5
|
+
import { PDFName, PDFNull, PDFString, rgb } from '@cantoo/pdf-lib';
|
|
6
|
+
/**
|
|
7
|
+
* Draw a single line of text with justified alignment.
|
|
8
|
+
* Spaces between words are stretched so the line fills availableWidth.
|
|
9
|
+
* The last line of a paragraph is left-aligned (standard typographic convention).
|
|
10
|
+
*/
|
|
11
|
+
export function drawJustifiedLine(pdfPage, lineText, isLastLine, x, pdfY, availableWidth, fontSize, pdfFont, color) {
|
|
12
|
+
const trimmed = lineText.trimEnd();
|
|
13
|
+
// Last line or single word: left-align (can't stretch)
|
|
14
|
+
if (isLastLine) {
|
|
15
|
+
pdfPage.drawText(trimmed, { x, y: pdfY, size: fontSize, font: pdfFont, color });
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const words = trimmed.split(' ').filter(w => w.length > 0);
|
|
19
|
+
if (words.length <= 1) {
|
|
20
|
+
pdfPage.drawText(trimmed, { x, y: pdfY, size: fontSize, font: pdfFont, color });
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const wordWidths = words.map(w => pdfFont.widthOfTextAtSize(w, fontSize));
|
|
24
|
+
const totalWordWidth = wordWidths.reduce((s, w) => s + w, 0);
|
|
25
|
+
const gapSize = Math.max(0, (availableWidth - totalWordWidth) / (words.length - 1));
|
|
26
|
+
let curX = x;
|
|
27
|
+
for (let i = 0; i < words.length; i++) {
|
|
28
|
+
pdfPage.drawText(words[i], { x: curX, y: pdfY, size: fontSize, font: pdfFont, color });
|
|
29
|
+
curX += wordWidths[i] + gapSize;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Adds a clickable URI annotation over a rendered text region.
|
|
34
|
+
* Must be called after drawText() — annotation sits above the text layer.
|
|
35
|
+
*/
|
|
36
|
+
export function addLinkAnnotation(pdfDoc, pdfPage, x, pdfY, width, fontSize, url) {
|
|
37
|
+
const rectBottom = pdfY - fontSize * 0.2;
|
|
38
|
+
const rectTop = pdfY + fontSize * 0.8;
|
|
39
|
+
const linkAnnot = pdfDoc.context.register(pdfDoc.context.obj({
|
|
40
|
+
Type: 'Annot',
|
|
41
|
+
Subtype: 'Link',
|
|
42
|
+
Rect: [x, rectBottom, x + width, rectTop],
|
|
43
|
+
Border: [0, 0, 0],
|
|
44
|
+
A: pdfDoc.context.obj({
|
|
45
|
+
Type: 'Action',
|
|
46
|
+
S: 'URI',
|
|
47
|
+
URI: PDFString.of(url),
|
|
48
|
+
}),
|
|
49
|
+
}));
|
|
50
|
+
const existingAnnots = pdfPage.node.get(PDFName.of('Annots'));
|
|
51
|
+
if (existingAnnots) {
|
|
52
|
+
const annots = pdfDoc.context.lookup(existingAnnots);
|
|
53
|
+
annots.push(linkAnnot);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
pdfPage.node.set(PDFName.of('Annots'), pdfDoc.context.obj([linkAnnot]));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Adds a clickable internal anchor link (GoTo) annotation over a rendered text region.
|
|
61
|
+
* Jumps to a page with a named destination when clicked.
|
|
62
|
+
* Must be called after drawText() — annotation sits above the text layer.
|
|
63
|
+
*/
|
|
64
|
+
export function addGoToAnnotation(pdfDoc, pdfPage, x, pdfY, width, fontSize, destPageRef, destPdfY) {
|
|
65
|
+
const rectBottom = pdfY - fontSize * 0.2;
|
|
66
|
+
const rectTop = pdfY + fontSize * 0.8;
|
|
67
|
+
const goToAnnot = pdfDoc.context.register(pdfDoc.context.obj({
|
|
68
|
+
Type: 'Annot',
|
|
69
|
+
Subtype: 'Link',
|
|
70
|
+
Rect: [x, rectBottom, x + width, rectTop],
|
|
71
|
+
Border: [0, 0, 0],
|
|
72
|
+
Dest: pdfDoc.context.obj([destPageRef, PDFName.of('XYZ'), PDFNull, destPdfY, PDFNull]),
|
|
73
|
+
}));
|
|
74
|
+
const existingAnnots = pdfPage.node.get(PDFName.of('Annots'));
|
|
75
|
+
if (existingAnnots) {
|
|
76
|
+
const annots = pdfDoc.context.lookup(existingAnnots);
|
|
77
|
+
annots.push(goToAnnot);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
pdfPage.node.set(PDFName.of('Annots'), pdfDoc.context.obj([goToAnnot]));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Adds a sticky-note (Text) annotation at the given position.
|
|
85
|
+
*/
|
|
86
|
+
export function addStickyNoteAnnotation(pdfDoc, pdfPage, x, pdfY, contents, author, color, open) {
|
|
87
|
+
const hex = (color ?? '#FFFF00').replace('#', '');
|
|
88
|
+
const r = parseInt(hex.substring(0, 2), 16) / 255;
|
|
89
|
+
const g = parseInt(hex.substring(2, 4), 16) / 255;
|
|
90
|
+
const b = parseInt(hex.substring(4, 6), 16) / 255;
|
|
91
|
+
const annotRef = pdfDoc.context.register(pdfDoc.context.obj({
|
|
92
|
+
Type: 'Annot',
|
|
93
|
+
Subtype: 'Text',
|
|
94
|
+
Rect: [x, pdfY - 16, x + 16, pdfY],
|
|
95
|
+
Contents: PDFString.of(contents),
|
|
96
|
+
T: author ? PDFString.of(author) : PDFNull,
|
|
97
|
+
Open: open === true,
|
|
98
|
+
Name: 'Comment',
|
|
99
|
+
C: [r, g, b],
|
|
100
|
+
}));
|
|
101
|
+
const existingAnnots = pdfPage.node.get(PDFName.of('Annots'));
|
|
102
|
+
if (existingAnnots) {
|
|
103
|
+
const annots = pdfDoc.context.lookup(existingAnnots);
|
|
104
|
+
annots.push(annotRef);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
pdfPage.node.set(PDFName.of('Annots'), pdfDoc.context.obj([annotRef]));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Draws underline and/or strikethrough lines for a rendered text segment.
|
|
112
|
+
* Must be called AFTER drawText() so text renders on top of any decoration line.
|
|
113
|
+
*/
|
|
114
|
+
export function drawTextDecoration(pdfPage, x, width, pdfY, fontSize, pdfFont, color, decoration) {
|
|
115
|
+
if (!decoration.underline && !decoration.strikethrough)
|
|
116
|
+
return;
|
|
117
|
+
// Prefer font-designed metrics via fontkit embedder; fall back to height math
|
|
118
|
+
const embedder = pdfFont.embedder;
|
|
119
|
+
const fkFont = embedder?.font; // fontkit Font object (undefined for standard fonts)
|
|
120
|
+
const scale = embedder?.scale ?? 1;
|
|
121
|
+
const ascentPt = pdfFont.heightAtSize(fontSize, { descender: false });
|
|
122
|
+
const thickness = fkFont
|
|
123
|
+
? Math.max(0.5, (fkFont.underlineThickness * scale / 1000) * fontSize)
|
|
124
|
+
: Math.max(0.5, fontSize / 14);
|
|
125
|
+
const [r, g, b] = color;
|
|
126
|
+
const lineColor = rgb(r, g, b);
|
|
127
|
+
if (decoration.underline) {
|
|
128
|
+
const ulY = fkFont
|
|
129
|
+
? pdfY + (fkFont.underlinePosition * scale / 1000) * fontSize
|
|
130
|
+
: pdfY - ascentPt * 0.12;
|
|
131
|
+
pdfPage.drawLine({
|
|
132
|
+
start: { x, y: ulY },
|
|
133
|
+
end: { x: x + width, y: ulY },
|
|
134
|
+
thickness,
|
|
135
|
+
color: lineColor,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
if (decoration.strikethrough) {
|
|
139
|
+
const strikeY = fkFont
|
|
140
|
+
? pdfY + (fkFont.xHeight * scale / 1000) * fontSize * 0.5
|
|
141
|
+
: pdfY + ascentPt * 0.38;
|
|
142
|
+
pdfPage.drawLine({
|
|
143
|
+
start: { x, y: strikeY },
|
|
144
|
+
end: { x: x + width, y: strikeY },
|
|
145
|
+
thickness,
|
|
146
|
+
color: lineColor,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const DIGIT_CHARS = '0123456789';
|
|
151
|
+
/**
|
|
152
|
+
* Draw text with tabular (monospaced) digit spacing.
|
|
153
|
+
* Each digit occupies a fixed slot = widest digit glyph in the font at the given size.
|
|
154
|
+
* Non-digit characters render at their natural width.
|
|
155
|
+
*
|
|
156
|
+
* First-principle rationale: proportional fonts vary digit widths (1 is narrower than 0).
|
|
157
|
+
* Tabular mode normalises all digits to the same advance, so columns of numbers
|
|
158
|
+
* align perfectly with no font-specific OpenType tables required.
|
|
159
|
+
*/
|
|
160
|
+
export function drawTabularText(pdfPage, text, x, pdfY, fontSize, pdfFont, color) {
|
|
161
|
+
let slotWidth = 0;
|
|
162
|
+
for (const d of DIGIT_CHARS) {
|
|
163
|
+
const w = pdfFont.widthOfTextAtSize(d, fontSize);
|
|
164
|
+
if (w > slotWidth)
|
|
165
|
+
slotWidth = w;
|
|
166
|
+
}
|
|
167
|
+
let curX = x;
|
|
168
|
+
for (const ch of text) {
|
|
169
|
+
if (DIGIT_CHARS.includes(ch)) {
|
|
170
|
+
const charW = pdfFont.widthOfTextAtSize(ch, fontSize);
|
|
171
|
+
pdfPage.drawText(ch, { x: curX + (slotWidth - charW) / 2, y: pdfY, size: fontSize, font: pdfFont, color });
|
|
172
|
+
curX += slotWidth;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
pdfPage.drawText(ch, { x: curX, y: pdfY, size: fontSize, font: pdfFont, color });
|
|
176
|
+
curX += pdfFont.widthOfTextAtSize(ch, fontSize);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* THE ONLY place where top-down coords are converted to pdf-lib bottom-up coords.
|
|
182
|
+
* @param yFromTop - distance from top of page in pt
|
|
183
|
+
* @param elementHeight - height of the element (font baseline offset, image height, etc.)
|
|
184
|
+
* @param pageHeight - total page height in pt
|
|
185
|
+
*/
|
|
186
|
+
export function toPdfY(yFromTop, elementHeight, pageHeight) {
|
|
187
|
+
return pageHeight - yFromTop - elementHeight;
|
|
188
|
+
}
|
|
189
|
+
/** Resolve text horizontal position based on alignment */
|
|
190
|
+
export function resolveX(align, startX, availableWidth, lineWidth) {
|
|
191
|
+
switch (align) {
|
|
192
|
+
case 'left':
|
|
193
|
+
return startX;
|
|
194
|
+
case 'center':
|
|
195
|
+
return startX + (availableWidth - lineWidth) / 2;
|
|
196
|
+
case 'right':
|
|
197
|
+
return startX + availableWidth - lineWidth;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/** Replace {{pageNumber}} and {{totalPages}} tokens */
|
|
201
|
+
export function resolveTokens(text, pageNumber, totalPages) {
|
|
202
|
+
return text
|
|
203
|
+
.replace('{{pageNumber}}', String(pageNumber))
|
|
204
|
+
.replace('{{totalPages}}', String(totalPages));
|
|
205
|
+
}
|
|
206
|
+
/** Parse a 6-digit hex color string to normalized RGB [0,1] triple.
|
|
207
|
+
* Falls back to black on invalid/missing input to prevent NaN from reaching pdf-lib. */
|
|
208
|
+
export function hexToRgb(hex) {
|
|
209
|
+
if (!hex || typeof hex !== 'string')
|
|
210
|
+
return [0, 0, 0];
|
|
211
|
+
const clean = hex.startsWith('#') ? hex.slice(1) : hex;
|
|
212
|
+
if (!/^[0-9a-fA-F]{6}$/.test(clean))
|
|
213
|
+
return [0, 0, 0];
|
|
214
|
+
const r = parseInt(clean.slice(0, 2), 16) / 255;
|
|
215
|
+
const g = parseInt(clean.slice(2, 4), 16) / 255;
|
|
216
|
+
const b = parseInt(clean.slice(4, 6), 16) / 255;
|
|
217
|
+
return [r, g, b];
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=render-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-utils.js","sourceRoot":"","sources":["../src/render-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA+B,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EACV,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAChC,MAAM,YAAY,CAAA;AA0BnB;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,iBAAiB,EAC/B,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,UAAU,CAAC,CA2ErB"}
|