pretext-pdf 0.4.6 → 0.5.2
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 +351 -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 +119 -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 +115 -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 @@
|
|
|
1
|
+
{"version":3,"file":"render-blocks.js","sourceRoot":"","sources":["../src/render-blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* render-extras.ts — PDF structure rendering (bookmarks, TOC, forms, signatures)
|
|
3
|
+
* These are meta-layer concerns distinct from content block rendering.
|
|
4
|
+
*/
|
|
5
|
+
import { PDFDocument } from '@cantoo/pdf-lib';
|
|
6
|
+
import type { PaginatedDocument, FontMap, PageGeometry, PagedBlock } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Build PDF outline (bookmarks/TOC) from heading entries.
|
|
9
|
+
* Creates a doubly-linked tree in the PDF catalog.
|
|
10
|
+
* Must be called after all pages are rendered but before pdfDoc.save().
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildOutlineTree(pdfDoc: PDFDocument, headings: PaginatedDocument['headings'], bookmarkConfig: import('./types.js').PdfDocument['bookmarks']): void;
|
|
13
|
+
export declare function renderTocEntry(pdfPage: ReturnType<PDFDocument['addPage']>, pagedBlock: PagedBlock, geo: PageGeometry, fontMap: FontMap): void;
|
|
14
|
+
/** Phase 8B: Render an interactive AcroForm field. */
|
|
15
|
+
export declare function renderFormField(block: PagedBlock, pdfPage: ReturnType<PDFDocument['addPage']>, pdfDoc: PDFDocument, fontMap: FontMap, geo: PageGeometry, yFromTop: number): void;
|
|
16
|
+
/** Phase 8E: Draw a visual signature placeholder box on the specified page. */
|
|
17
|
+
export declare function renderSignaturePlaceholder(sig: import('./types.js').SignatureSpec, pdfDoc: PDFDocument, fontMap: import('./types.js').FontMap, geo: import('./types.js').PageGeometry): void;
|
|
18
|
+
//# sourceMappingURL=render-extras.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-extras.d.ts","sourceRoot":"","sources":["../src/render-extras.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAqD,MAAM,iBAAiB,CAAA;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAMtF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,cAAc,EAAE,OAAO,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,GAC5D,IAAI,CAmFN;AAID,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,OAAO,GACf,IAAI,CAkDN;AAID,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAC3C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,MAAM,GACf,IAAI,CAiGN;AAID,+EAA+E;AAC/E,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,OAAO,YAAY,EAAE,aAAa,EACvC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,YAAY,EAAE,OAAO,EACrC,GAAG,EAAE,OAAO,YAAY,EAAE,YAAY,GACrC,IAAI,CA2EN"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* render-extras.ts — PDF structure rendering (bookmarks, TOC, forms, signatures)
|
|
3
|
+
* These are meta-layer concerns distinct from content block rendering.
|
|
4
|
+
*/
|
|
5
|
+
import { PDFName, PDFNull, PDFString, rgb } from '@cantoo/pdf-lib';
|
|
6
|
+
import { PretextPdfError } from './errors.js';
|
|
7
|
+
import { toPdfY, hexToRgb } from './render-utils.js';
|
|
8
|
+
// ─── Outline / Bookmarks ──────────────────────────────────────────────────────
|
|
9
|
+
/**
|
|
10
|
+
* Build PDF outline (bookmarks/TOC) from heading entries.
|
|
11
|
+
* Creates a doubly-linked tree in the PDF catalog.
|
|
12
|
+
* Must be called after all pages are rendered but before pdfDoc.save().
|
|
13
|
+
*/
|
|
14
|
+
export function buildOutlineTree(pdfDoc, headings, bookmarkConfig) {
|
|
15
|
+
if (bookmarkConfig === false || headings.length === 0)
|
|
16
|
+
return;
|
|
17
|
+
const cfg = typeof bookmarkConfig === 'object' ? bookmarkConfig : {};
|
|
18
|
+
const minLevel = cfg.minLevel ?? 1;
|
|
19
|
+
const maxLevel = cfg.maxLevel ?? 4;
|
|
20
|
+
const filtered = headings.filter(h => h.level >= minLevel && h.level <= maxLevel);
|
|
21
|
+
if (filtered.length === 0)
|
|
22
|
+
return;
|
|
23
|
+
const pageRefs = pdfDoc.getPages().map(p => p.ref);
|
|
24
|
+
const outlineRef = pdfDoc.context.nextRef();
|
|
25
|
+
const itemRefs = filtered.map(() => pdfDoc.context.nextRef());
|
|
26
|
+
// Returns index of nearest ancestor heading, or -1 (root-level)
|
|
27
|
+
function parentIdxOf(i) {
|
|
28
|
+
for (let j = i - 1; j >= 0; j--) {
|
|
29
|
+
if (filtered[j].level < filtered[i].level)
|
|
30
|
+
return j;
|
|
31
|
+
}
|
|
32
|
+
return -1;
|
|
33
|
+
}
|
|
34
|
+
for (let i = 0; i < filtered.length; i++) {
|
|
35
|
+
const h = filtered[i];
|
|
36
|
+
const pageRef = pageRefs[h.pageIndex] ?? pageRefs[pageRefs.length - 1];
|
|
37
|
+
const myParentIdx = parentIdxOf(i);
|
|
38
|
+
const myParentRef = myParentIdx === -1 ? outlineRef : itemRefs[myParentIdx];
|
|
39
|
+
const dest = pdfDoc.context.obj([pageRef, PDFName.of('XYZ'), PDFNull, PDFNull, PDFNull]);
|
|
40
|
+
let prevRef;
|
|
41
|
+
for (let j = i - 1; j >= 0; j--) {
|
|
42
|
+
if (filtered[j].level === h.level && parentIdxOf(j) === myParentIdx) {
|
|
43
|
+
prevRef = itemRefs[j];
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
let nextRef;
|
|
48
|
+
for (let j = i + 1; j < filtered.length; j++) {
|
|
49
|
+
if (filtered[j].level === h.level && parentIdxOf(j) === myParentIdx) {
|
|
50
|
+
nextRef = itemRefs[j];
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
let firstChildRef;
|
|
55
|
+
let lastChildRef;
|
|
56
|
+
let childCount = 0;
|
|
57
|
+
for (let j = i + 1; j < filtered.length; j++) {
|
|
58
|
+
if (filtered[j].level <= h.level)
|
|
59
|
+
break;
|
|
60
|
+
if (parentIdxOf(j) === i) {
|
|
61
|
+
if (!firstChildRef)
|
|
62
|
+
firstChildRef = itemRefs[j];
|
|
63
|
+
lastChildRef = itemRefs[j];
|
|
64
|
+
childCount++;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const entry = {
|
|
68
|
+
Title: PDFString.of(h.text),
|
|
69
|
+
Parent: myParentRef,
|
|
70
|
+
Dest: dest,
|
|
71
|
+
};
|
|
72
|
+
if (prevRef)
|
|
73
|
+
entry['Prev'] = prevRef;
|
|
74
|
+
if (nextRef)
|
|
75
|
+
entry['Next'] = nextRef;
|
|
76
|
+
if (firstChildRef)
|
|
77
|
+
entry['First'] = firstChildRef;
|
|
78
|
+
if (lastChildRef)
|
|
79
|
+
entry['Last'] = lastChildRef;
|
|
80
|
+
if (childCount > 0)
|
|
81
|
+
entry['Count'] = childCount;
|
|
82
|
+
pdfDoc.context.assign(itemRefs[i], pdfDoc.context.obj(entry));
|
|
83
|
+
}
|
|
84
|
+
const topIdxs = filtered.map((_, i) => i).filter(i => parentIdxOf(i) === -1);
|
|
85
|
+
const rootEntry = {
|
|
86
|
+
Type: PDFName.of('Outlines'),
|
|
87
|
+
Count: filtered.length,
|
|
88
|
+
};
|
|
89
|
+
if (topIdxs.length > 0) {
|
|
90
|
+
rootEntry['First'] = itemRefs[topIdxs[0]];
|
|
91
|
+
rootEntry['Last'] = itemRefs[topIdxs[topIdxs.length - 1]];
|
|
92
|
+
}
|
|
93
|
+
pdfDoc.context.assign(outlineRef, pdfDoc.context.obj(rootEntry));
|
|
94
|
+
pdfDoc.catalog.set(PDFName.of('Outlines'), outlineRef);
|
|
95
|
+
pdfDoc.catalog.set(PDFName.of('PageMode'), PDFName.of('UseOutlines'));
|
|
96
|
+
}
|
|
97
|
+
// ─── TOC Entry Rendering (Phase 7D) ────────────────────────────────────────────
|
|
98
|
+
export function renderTocEntry(pdfPage, pagedBlock, geo, fontMap) {
|
|
99
|
+
const { measuredBlock, startLine, endLine, yFromTop } = pagedBlock;
|
|
100
|
+
const element = measuredBlock.element;
|
|
101
|
+
const tocData = measuredBlock.tocEntryData;
|
|
102
|
+
const lines = measuredBlock.lines.slice(startLine, endLine);
|
|
103
|
+
if (lines.length === 0)
|
|
104
|
+
return;
|
|
105
|
+
const pdfFont = fontMap.get(measuredBlock.fontKey);
|
|
106
|
+
if (!pdfFont)
|
|
107
|
+
throw new PretextPdfError('FONT_NOT_LOADED', `TOC font "${measuredBlock.fontKey}" not found.`);
|
|
108
|
+
const fontHeight = pdfFont.heightAtSize(measuredBlock.fontSize);
|
|
109
|
+
const entryX = geo.margins.left + tocData.entryX;
|
|
110
|
+
const rightEdge = geo.margins.left + geo.contentWidth;
|
|
111
|
+
for (let i = 0; i < lines.length; i++) {
|
|
112
|
+
const lineYFromTop = yFromTop + (i * measuredBlock.lineHeight);
|
|
113
|
+
const absY = lineYFromTop + geo.margins.top + geo.headerHeight;
|
|
114
|
+
const pdfY = toPdfY(absY, fontHeight, geo.pageHeight);
|
|
115
|
+
const text = lines[i].text.trimEnd();
|
|
116
|
+
if (!text)
|
|
117
|
+
continue;
|
|
118
|
+
// Draw entry text
|
|
119
|
+
pdfPage.drawText(text, { x: entryX, y: pdfY, size: measuredBlock.fontSize, font: pdfFont, color: rgb(0, 0, 0) });
|
|
120
|
+
// Title lines (pageStr === ''): no leader, no page number
|
|
121
|
+
if (!tocData.pageStr)
|
|
122
|
+
continue;
|
|
123
|
+
// Only draw leader and page number on the last line of multi-line entries
|
|
124
|
+
if (i < lines.length - 1)
|
|
125
|
+
continue;
|
|
126
|
+
// Draw page number (right-aligned)
|
|
127
|
+
const pageStr = tocData.pageStr;
|
|
128
|
+
const pageStrWidth = pdfFont.widthOfTextAtSize(pageStr, measuredBlock.fontSize);
|
|
129
|
+
const pageX = rightEdge - pageStrWidth;
|
|
130
|
+
pdfPage.drawText(pageStr, { x: pageX, y: pdfY, size: measuredBlock.fontSize, font: pdfFont, color: rgb(0, 0, 0) });
|
|
131
|
+
// Draw dot leaders between text and page number
|
|
132
|
+
if (tocData.leaderChar) {
|
|
133
|
+
const textWidth = pdfFont.widthOfTextAtSize(text, measuredBlock.fontSize);
|
|
134
|
+
const leaderCharWidth = pdfFont.widthOfTextAtSize(tocData.leaderChar, measuredBlock.fontSize);
|
|
135
|
+
const gapStart = entryX + textWidth + 6; // 6pt gap after text
|
|
136
|
+
const gapEnd = pageX - 6; // 6pt gap before page number
|
|
137
|
+
let lx = gapStart;
|
|
138
|
+
while (lx + leaderCharWidth <= gapEnd) {
|
|
139
|
+
pdfPage.drawText(tocData.leaderChar, { x: lx, y: pdfY, size: measuredBlock.fontSize, font: pdfFont, color: rgb(0.5, 0.5, 0.5) });
|
|
140
|
+
lx += leaderCharWidth + 1;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// ─── Phase 8B: Form Fields ────────────────────────────────────────────────────
|
|
146
|
+
/** Phase 8B: Render an interactive AcroForm field. */
|
|
147
|
+
export function renderFormField(block, pdfPage, pdfDoc, fontMap, geo, yFromTop) {
|
|
148
|
+
const el = block.measuredBlock.element;
|
|
149
|
+
const { labelHeight, fieldHeight } = block.measuredBlock.formFieldData ?? { labelHeight: 0, fieldHeight: 24 };
|
|
150
|
+
const form = pdfDoc.getForm();
|
|
151
|
+
const x = geo.margins.left;
|
|
152
|
+
const fieldWidth = el.width ?? geo.contentWidth;
|
|
153
|
+
const absYTop = yFromTop + geo.margins.top + geo.headerHeight;
|
|
154
|
+
const fieldBottomPdfY = geo.pageHeight - absYTop - labelHeight - fieldHeight;
|
|
155
|
+
// Draw label if set — baseline must be inset by font height so glyphs sit within the block
|
|
156
|
+
if (el.label && labelHeight > 0) {
|
|
157
|
+
const font = fontMap.get(block.measuredBlock.fontKey);
|
|
158
|
+
if (font) {
|
|
159
|
+
const labelFontSize = el.fontSize ?? 12;
|
|
160
|
+
const fontHeight = font.heightAtSize(labelFontSize);
|
|
161
|
+
const labelPdfY = geo.pageHeight - absYTop - fontHeight;
|
|
162
|
+
pdfPage.drawText(el.label, {
|
|
163
|
+
x,
|
|
164
|
+
y: labelPdfY,
|
|
165
|
+
size: labelFontSize,
|
|
166
|
+
font,
|
|
167
|
+
color: rgb(0, 0, 0),
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const borderRgb = hexToRgb(el.borderColor ?? '#999999');
|
|
172
|
+
const bgRgb = hexToRgb(el.backgroundColor ?? '#FFFFFF');
|
|
173
|
+
const fieldOpts = {
|
|
174
|
+
x,
|
|
175
|
+
y: fieldBottomPdfY,
|
|
176
|
+
width: fieldWidth,
|
|
177
|
+
height: fieldHeight,
|
|
178
|
+
borderColor: rgb(borderRgb[0], borderRgb[1], borderRgb[2]),
|
|
179
|
+
backgroundColor: rgb(bgRgb[0], bgRgb[1], bgRgb[2]),
|
|
180
|
+
};
|
|
181
|
+
try {
|
|
182
|
+
switch (el.fieldType) {
|
|
183
|
+
case 'text': {
|
|
184
|
+
const field = form.createTextField(el.name);
|
|
185
|
+
if (el.defaultValue)
|
|
186
|
+
field.setText(el.defaultValue);
|
|
187
|
+
if (el.multiline)
|
|
188
|
+
field.enableMultiline();
|
|
189
|
+
if (el.maxLength)
|
|
190
|
+
field.setMaxLength(el.maxLength);
|
|
191
|
+
field.addToPage(pdfPage, fieldOpts);
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
case 'checkbox': {
|
|
195
|
+
const field = form.createCheckBox(el.name);
|
|
196
|
+
if (el.checked)
|
|
197
|
+
field.check();
|
|
198
|
+
field.addToPage(pdfPage, {
|
|
199
|
+
x,
|
|
200
|
+
y: fieldBottomPdfY,
|
|
201
|
+
width: fieldHeight,
|
|
202
|
+
height: fieldHeight,
|
|
203
|
+
borderColor: rgb(borderRgb[0], borderRgb[1], borderRgb[2]),
|
|
204
|
+
backgroundColor: rgb(bgRgb[0], bgRgb[1], bgRgb[2]),
|
|
205
|
+
});
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
case 'radio': {
|
|
209
|
+
const group = form.createRadioGroup(el.name);
|
|
210
|
+
const opts = el.options ?? [];
|
|
211
|
+
const optHeight = Math.max(16, Math.floor(fieldHeight / Math.max(1, opts.length)));
|
|
212
|
+
for (let i = 0; i < opts.length; i++) {
|
|
213
|
+
group.addOptionToPage(opts[i].value, pdfPage, {
|
|
214
|
+
x,
|
|
215
|
+
y: fieldBottomPdfY + fieldHeight - optHeight * (i + 1),
|
|
216
|
+
width: optHeight,
|
|
217
|
+
height: optHeight,
|
|
218
|
+
borderColor: rgb(borderRgb[0], borderRgb[1], borderRgb[2]),
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
if (el.defaultSelected) {
|
|
222
|
+
try {
|
|
223
|
+
group.select(el.defaultSelected);
|
|
224
|
+
}
|
|
225
|
+
catch { /* option may not exist */ }
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
case 'dropdown': {
|
|
230
|
+
const field = form.createDropdown(el.name);
|
|
231
|
+
const opts = (el.options ?? []).map(o => o.value);
|
|
232
|
+
if (opts.length > 0)
|
|
233
|
+
field.addOptions(opts);
|
|
234
|
+
if (el.defaultSelected) {
|
|
235
|
+
try {
|
|
236
|
+
field.select(el.defaultSelected);
|
|
237
|
+
}
|
|
238
|
+
catch { /* option may not exist */ }
|
|
239
|
+
}
|
|
240
|
+
field.addToPage(pdfPage, fieldOpts);
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
case 'button': {
|
|
244
|
+
const field = form.createButton(el.name);
|
|
245
|
+
field.addToPage(el.label ?? el.name, pdfPage, fieldOpts);
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
// Non-fatal: if pdf-lib throws for an edge case, skip the field rather than crashing
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
// ─── Phase 8E: Signature Placeholder ──────────────────────────────────────────
|
|
255
|
+
/** Phase 8E: Draw a visual signature placeholder box on the specified page. */
|
|
256
|
+
export function renderSignaturePlaceholder(sig, pdfDoc, fontMap, geo) {
|
|
257
|
+
const pages = pdfDoc.getPages();
|
|
258
|
+
if (pages.length === 0)
|
|
259
|
+
return;
|
|
260
|
+
const pageIndex = sig.page !== undefined
|
|
261
|
+
? Math.min(sig.page, pages.length - 1)
|
|
262
|
+
: pages.length - 1;
|
|
263
|
+
const page = pages[pageIndex];
|
|
264
|
+
if (!page)
|
|
265
|
+
return;
|
|
266
|
+
const boxWidth = sig.width ?? 200;
|
|
267
|
+
const boxHeight = sig.height ?? 60;
|
|
268
|
+
const x = sig.x ?? geo.margins.left;
|
|
269
|
+
const yFromTop = sig.y ?? (geo.pageHeight - geo.margins.bottom - boxHeight);
|
|
270
|
+
const pdfY = geo.pageHeight - yFromTop - boxHeight;
|
|
271
|
+
const fs = sig.fontSize ?? 8;
|
|
272
|
+
const borderRgb = hexToRgb(sig.borderColor ?? '#000000');
|
|
273
|
+
const borderColor = rgb(borderRgb[0], borderRgb[1], borderRgb[2]);
|
|
274
|
+
const grayColor = rgb(0.5, 0.5, 0.5);
|
|
275
|
+
const font = fontMap.get('Inter-400-normal') ?? [...fontMap.values()][0];
|
|
276
|
+
if (!font)
|
|
277
|
+
return;
|
|
278
|
+
// Draw outer border rectangle (white fill)
|
|
279
|
+
page.drawRectangle({
|
|
280
|
+
x,
|
|
281
|
+
y: pdfY,
|
|
282
|
+
width: boxWidth,
|
|
283
|
+
height: boxHeight,
|
|
284
|
+
borderColor,
|
|
285
|
+
borderWidth: 0.5,
|
|
286
|
+
color: rgb(1, 1, 1),
|
|
287
|
+
});
|
|
288
|
+
let lineY = pdfY + boxHeight - fs - 6;
|
|
289
|
+
// Signer name line
|
|
290
|
+
if (sig.signerName) {
|
|
291
|
+
page.drawText(`Signed by: ${sig.signerName}`, {
|
|
292
|
+
x: x + 6, y: lineY, size: fs, font, color: rgb(0, 0, 0),
|
|
293
|
+
});
|
|
294
|
+
lineY -= fs + 4;
|
|
295
|
+
}
|
|
296
|
+
// Signature underline
|
|
297
|
+
page.drawLine({
|
|
298
|
+
start: { x: x + 6, y: lineY },
|
|
299
|
+
end: { x: x + boxWidth - 12, y: lineY },
|
|
300
|
+
thickness: 0.3,
|
|
301
|
+
color: grayColor,
|
|
302
|
+
});
|
|
303
|
+
page.drawText('Signature', {
|
|
304
|
+
x: x + 6, y: lineY - fs, size: fs - 1, font, color: grayColor,
|
|
305
|
+
});
|
|
306
|
+
lineY -= fs + 8;
|
|
307
|
+
// Date underline (half width)
|
|
308
|
+
page.drawLine({
|
|
309
|
+
start: { x: x + 6, y: lineY },
|
|
310
|
+
end: { x: x + boxWidth / 2, y: lineY },
|
|
311
|
+
thickness: 0.3,
|
|
312
|
+
color: grayColor,
|
|
313
|
+
});
|
|
314
|
+
page.drawText('Date', {
|
|
315
|
+
x: x + 6, y: lineY - fs, size: fs - 1, font, color: grayColor,
|
|
316
|
+
});
|
|
317
|
+
// Reason / location at bottom
|
|
318
|
+
if (sig.reason || sig.location) {
|
|
319
|
+
const bottomText = [sig.reason, sig.location].filter(Boolean).join(' — ');
|
|
320
|
+
page.drawText(bottomText, {
|
|
321
|
+
x: x + 6, y: pdfY + 3, size: fs - 1, font, color: rgb(0.4, 0.4, 0.4),
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=render-extras.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-extras.js","sourceRoot":"","sources":["../src/render-extras.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* render-utils.ts — Pure utility functions for PDF rendering
|
|
3
|
+
* No element-type knowledge. Used by all render modules.
|
|
4
|
+
*/
|
|
5
|
+
import { PDFDocument, PDFFont, PDFRef, 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 declare function drawJustifiedLine(pdfPage: ReturnType<PDFDocument['addPage']>, lineText: string, isLastLine: boolean, x: number, pdfY: number, availableWidth: number, fontSize: number, pdfFont: PDFFont, color: ReturnType<typeof rgb>): void;
|
|
12
|
+
/**
|
|
13
|
+
* Adds a clickable URI annotation over a rendered text region.
|
|
14
|
+
* Must be called after drawText() — annotation sits above the text layer.
|
|
15
|
+
*/
|
|
16
|
+
export declare function addLinkAnnotation(pdfDoc: PDFDocument, pdfPage: ReturnType<PDFDocument['addPage']>, x: number, pdfY: number, width: number, fontSize: number, url: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* Adds a clickable internal anchor link (GoTo) annotation over a rendered text region.
|
|
19
|
+
* Jumps to a page with a named destination when clicked.
|
|
20
|
+
* Must be called after drawText() — annotation sits above the text layer.
|
|
21
|
+
*/
|
|
22
|
+
export declare function addGoToAnnotation(pdfDoc: PDFDocument, pdfPage: ReturnType<PDFDocument['addPage']>, x: number, pdfY: number, width: number, fontSize: number, destPageRef: PDFRef, destPdfY: number): void;
|
|
23
|
+
/**
|
|
24
|
+
* Adds a sticky-note (Text) annotation at the given position.
|
|
25
|
+
*/
|
|
26
|
+
export declare function addStickyNoteAnnotation(pdfDoc: PDFDocument, pdfPage: ReturnType<PDFDocument['addPage']>, x: number, pdfY: number, contents: string, author?: string, color?: string, open?: boolean): void;
|
|
27
|
+
/**
|
|
28
|
+
* Draws underline and/or strikethrough lines for a rendered text segment.
|
|
29
|
+
* Must be called AFTER drawText() so text renders on top of any decoration line.
|
|
30
|
+
*/
|
|
31
|
+
export declare function drawTextDecoration(pdfPage: ReturnType<PDFDocument['addPage']>, x: number, width: number, pdfY: number, fontSize: number, pdfFont: PDFFont, color: [number, number, number], decoration: {
|
|
32
|
+
underline: boolean;
|
|
33
|
+
strikethrough: boolean;
|
|
34
|
+
}): void;
|
|
35
|
+
/**
|
|
36
|
+
* Draw text with tabular (monospaced) digit spacing.
|
|
37
|
+
* Each digit occupies a fixed slot = widest digit glyph in the font at the given size.
|
|
38
|
+
* Non-digit characters render at their natural width.
|
|
39
|
+
*
|
|
40
|
+
* First-principle rationale: proportional fonts vary digit widths (1 is narrower than 0).
|
|
41
|
+
* Tabular mode normalises all digits to the same advance, so columns of numbers
|
|
42
|
+
* align perfectly with no font-specific OpenType tables required.
|
|
43
|
+
*/
|
|
44
|
+
export declare function drawTabularText(pdfPage: ReturnType<PDFDocument['addPage']>, text: string, x: number, pdfY: number, fontSize: number, pdfFont: PDFFont, color: ReturnType<typeof rgb>): void;
|
|
45
|
+
/**
|
|
46
|
+
* THE ONLY place where top-down coords are converted to pdf-lib bottom-up coords.
|
|
47
|
+
* @param yFromTop - distance from top of page in pt
|
|
48
|
+
* @param elementHeight - height of the element (font baseline offset, image height, etc.)
|
|
49
|
+
* @param pageHeight - total page height in pt
|
|
50
|
+
*/
|
|
51
|
+
export declare function toPdfY(yFromTop: number, elementHeight: number, pageHeight: number): number;
|
|
52
|
+
/** Resolve text horizontal position based on alignment */
|
|
53
|
+
export declare function resolveX(align: 'left' | 'center' | 'right', startX: number, availableWidth: number, lineWidth: number): number;
|
|
54
|
+
/** Replace {{pageNumber}} and {{totalPages}} tokens */
|
|
55
|
+
export declare function resolveTokens(text: string, pageNumber: number, totalPages: number): string;
|
|
56
|
+
/** Parse a 6-digit hex color string to normalized RGB [0,1] triple.
|
|
57
|
+
* Falls back to black on invalid/missing input to prevent NaN from reaching pdf-lib. */
|
|
58
|
+
export declare function hexToRgb(hex: string | null | undefined): [number, number, number];
|
|
59
|
+
//# sourceMappingURL=render-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-utils.d.ts","sourceRoot":"","sources":["../src/render-utils.ts"],"names":[],"mappings":"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"}
|