av6-pdf-engine 1.0.0
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/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/renderer-engine/blocks/barcode.d.ts +3 -0
- package/dist/renderer-engine/blocks/barcode.d.ts.map +1 -0
- package/dist/renderer-engine/blocks/barcode.js +47 -0
- package/dist/renderer-engine/blocks/barcode.js.map +1 -0
- package/dist/renderer-engine/blocks/columns.d.ts +3 -0
- package/dist/renderer-engine/blocks/columns.d.ts.map +1 -0
- package/dist/renderer-engine/blocks/columns.js +105 -0
- package/dist/renderer-engine/blocks/columns.js.map +1 -0
- package/dist/renderer-engine/blocks/image.d.ts +4 -0
- package/dist/renderer-engine/blocks/image.d.ts.map +1 -0
- package/dist/renderer-engine/blocks/image.js +57 -0
- package/dist/renderer-engine/blocks/image.js.map +1 -0
- package/dist/renderer-engine/blocks/index.d.ts +8 -0
- package/dist/renderer-engine/blocks/index.d.ts.map +1 -0
- package/dist/renderer-engine/blocks/index.js +24 -0
- package/dist/renderer-engine/blocks/index.js.map +1 -0
- package/dist/renderer-engine/blocks/key-value-grid.d.ts +3 -0
- package/dist/renderer-engine/blocks/key-value-grid.d.ts.map +1 -0
- package/dist/renderer-engine/blocks/key-value-grid.js +245 -0
- package/dist/renderer-engine/blocks/key-value-grid.js.map +1 -0
- package/dist/renderer-engine/blocks/line.d.ts +3 -0
- package/dist/renderer-engine/blocks/line.d.ts.map +1 -0
- package/dist/renderer-engine/blocks/line.js +35 -0
- package/dist/renderer-engine/blocks/line.js.map +1 -0
- package/dist/renderer-engine/blocks/table.d.ts +4 -0
- package/dist/renderer-engine/blocks/table.d.ts.map +1 -0
- package/dist/renderer-engine/blocks/table.js +201 -0
- package/dist/renderer-engine/blocks/table.js.map +1 -0
- package/dist/renderer-engine/blocks/text.d.ts +3 -0
- package/dist/renderer-engine/blocks/text.d.ts.map +1 -0
- package/dist/renderer-engine/blocks/text.js +52 -0
- package/dist/renderer-engine/blocks/text.js.map +1 -0
- package/dist/renderer-engine/index.d.ts +4 -0
- package/dist/renderer-engine/index.d.ts.map +1 -0
- package/dist/renderer-engine/index.js +215 -0
- package/dist/renderer-engine/index.js.map +1 -0
- package/dist/renderer-engine/utils/block-renderer.d.ts +17 -0
- package/dist/renderer-engine/utils/block-renderer.d.ts.map +1 -0
- package/dist/renderer-engine/utils/block-renderer.js +86 -0
- package/dist/renderer-engine/utils/block-renderer.js.map +1 -0
- package/dist/renderer-engine/utils/context.d.ts +3 -0
- package/dist/renderer-engine/utils/context.d.ts.map +1 -0
- package/dist/renderer-engine/utils/context.js +16 -0
- package/dist/renderer-engine/utils/context.js.map +1 -0
- package/dist/renderer-engine/utils/ensure-space.d.ts +9 -0
- package/dist/renderer-engine/utils/ensure-space.d.ts.map +1 -0
- package/dist/renderer-engine/utils/ensure-space.js +18 -0
- package/dist/renderer-engine/utils/ensure-space.js.map +1 -0
- package/dist/renderer-engine/utils/env.d.ts +3 -0
- package/dist/renderer-engine/utils/env.d.ts.map +1 -0
- package/dist/renderer-engine/utils/env.js +10 -0
- package/dist/renderer-engine/utils/env.js.map +1 -0
- package/dist/renderer-engine/utils/finish-page.d.ts +13 -0
- package/dist/renderer-engine/utils/finish-page.d.ts.map +1 -0
- package/dist/renderer-engine/utils/finish-page.js +27 -0
- package/dist/renderer-engine/utils/finish-page.js.map +1 -0
- package/dist/renderer-engine/utils/footer.d.ts +3 -0
- package/dist/renderer-engine/utils/footer.d.ts.map +1 -0
- package/dist/renderer-engine/utils/footer.js +89 -0
- package/dist/renderer-engine/utils/footer.js.map +1 -0
- package/dist/renderer-engine/utils/header.d.ts +3 -0
- package/dist/renderer-engine/utils/header.d.ts.map +1 -0
- package/dist/renderer-engine/utils/header.js +47 -0
- package/dist/renderer-engine/utils/header.js.map +1 -0
- package/dist/renderer-engine/utils/image-loader.d.ts +4 -0
- package/dist/renderer-engine/utils/image-loader.d.ts.map +1 -0
- package/dist/renderer-engine/utils/image-loader.js +52 -0
- package/dist/renderer-engine/utils/image-loader.js.map +1 -0
- package/dist/renderer-engine/utils/index.d.ts +19 -0
- package/dist/renderer-engine/utils/index.d.ts.map +1 -0
- package/dist/renderer-engine/utils/index.js +35 -0
- package/dist/renderer-engine/utils/index.js.map +1 -0
- package/dist/renderer-engine/utils/layout.d.ts +8 -0
- package/dist/renderer-engine/utils/layout.d.ts.map +1 -0
- package/dist/renderer-engine/utils/layout.js +22 -0
- package/dist/renderer-engine/utils/layout.js.map +1 -0
- package/dist/renderer-engine/utils/measure-block-height.d.ts +8 -0
- package/dist/renderer-engine/utils/measure-block-height.d.ts.map +1 -0
- package/dist/renderer-engine/utils/measure-block-height.js +220 -0
- package/dist/renderer-engine/utils/measure-block-height.js.map +1 -0
- package/dist/renderer-engine/utils/page-background.d.ts +6 -0
- package/dist/renderer-engine/utils/page-background.d.ts.map +1 -0
- package/dist/renderer-engine/utils/page-background.js +30 -0
- package/dist/renderer-engine/utils/page-background.js.map +1 -0
- package/dist/renderer-engine/utils/page-flow.d.ts +3 -0
- package/dist/renderer-engine/utils/page-flow.d.ts.map +1 -0
- package/dist/renderer-engine/utils/page-flow.js +9 -0
- package/dist/renderer-engine/utils/page-flow.js.map +1 -0
- package/dist/renderer-engine/utils/page-limit.d.ts +8 -0
- package/dist/renderer-engine/utils/page-limit.d.ts.map +1 -0
- package/dist/renderer-engine/utils/page-limit.js +15 -0
- package/dist/renderer-engine/utils/page-limit.js.map +1 -0
- package/dist/renderer-engine/utils/qr-bar-code.d.ts +17 -0
- package/dist/renderer-engine/utils/qr-bar-code.d.ts.map +1 -0
- package/dist/renderer-engine/utils/qr-bar-code.js +141 -0
- package/dist/renderer-engine/utils/qr-bar-code.js.map +1 -0
- package/dist/renderer-engine/utils/signature.d.ts +20 -0
- package/dist/renderer-engine/utils/signature.d.ts.map +1 -0
- package/dist/renderer-engine/utils/signature.js +214 -0
- package/dist/renderer-engine/utils/signature.js.map +1 -0
- package/dist/renderer-engine/utils/start-page-layout.d.ts +20 -0
- package/dist/renderer-engine/utils/start-page-layout.d.ts.map +1 -0
- package/dist/renderer-engine/utils/start-page-layout.js +34 -0
- package/dist/renderer-engine/utils/start-page-layout.js.map +1 -0
- package/dist/renderer-engine/utils/styles.d.ts +7 -0
- package/dist/renderer-engine/utils/styles.d.ts.map +1 -0
- package/dist/renderer-engine/utils/styles.js +124 -0
- package/dist/renderer-engine/utils/styles.js.map +1 -0
- package/dist/renderer-engine/utils/watermark.d.ts +11 -0
- package/dist/renderer-engine/utils/watermark.d.ts.map +1 -0
- package/dist/renderer-engine/utils/watermark.js +57 -0
- package/dist/renderer-engine/utils/watermark.js.map +1 -0
- package/dist/types/barcode.d.ts +23 -0
- package/dist/types/barcode.d.ts.map +1 -0
- package/dist/types/barcode.js +11 -0
- package/dist/types/barcode.js.map +1 -0
- package/dist/types/columns.d.ts +14 -0
- package/dist/types/columns.d.ts.map +1 -0
- package/dist/types/columns.js +3 -0
- package/dist/types/columns.js.map +1 -0
- package/dist/types/common.d.ts +102 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +3 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/context.d.ts +17 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +3 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/image.d.ts +13 -0
- package/dist/types/image.d.ts.map +1 -0
- package/dist/types/image.js +3 -0
- package/dist/types/image.js.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +29 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/key-value-grid.d.ts +34 -0
- package/dist/types/key-value-grid.d.ts.map +1 -0
- package/dist/types/key-value-grid.js +3 -0
- package/dist/types/key-value-grid.js.map +1 -0
- package/dist/types/line.d.ts +11 -0
- package/dist/types/line.d.ts.map +1 -0
- package/dist/types/line.js +3 -0
- package/dist/types/line.js.map +1 -0
- package/dist/types/page-break.d.ts +5 -0
- package/dist/types/page-break.d.ts.map +1 -0
- package/dist/types/page-break.js +3 -0
- package/dist/types/page-break.js.map +1 -0
- package/dist/types/qr.d.ts +22 -0
- package/dist/types/qr.d.ts.map +1 -0
- package/dist/types/qr.js +10 -0
- package/dist/types/qr.js.map +1 -0
- package/dist/types/signature.d.ts +12 -0
- package/dist/types/signature.d.ts.map +1 -0
- package/dist/types/signature.js +3 -0
- package/dist/types/signature.js.map +1 -0
- package/dist/types/table.d.ts +32 -0
- package/dist/types/table.d.ts.map +1 -0
- package/dist/types/table.js +3 -0
- package/dist/types/table.js.map +1 -0
- package/dist/types/text.d.ts +19 -0
- package/dist/types/text.d.ts.map +1 -0
- package/dist/types/text.js +3 -0
- package/dist/types/text.js.map +1 -0
- package/dist/types/utility.d.ts +1 -0
- package/dist/types/utility.d.ts.map +1 -0
- package/dist/types/utility.js +2 -0
- package/dist/types/utility.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processLineBlock = void 0;
|
|
4
|
+
const processLineBlock = (doc, ctx, block, y, env, ensureSpaceFor) => {
|
|
5
|
+
var _a, _b, _c, _d, _e;
|
|
6
|
+
const localLeft = (_a = block.marginLeft) !== null && _a !== void 0 ? _a : 0;
|
|
7
|
+
const localRight = (_b = block.marginRight) !== null && _b !== void 0 ? _b : 0;
|
|
8
|
+
const xLeft = env.marginLeft + localLeft;
|
|
9
|
+
const width = Math.max(env.innerWidth - localLeft - localRight, 1);
|
|
10
|
+
const mt = (_c = block.marginTop) !== null && _c !== void 0 ? _c : 0;
|
|
11
|
+
const mb = (_d = block.marginBottom) !== null && _d !== void 0 ? _d : 0;
|
|
12
|
+
const baseY = y !== null && y !== void 0 ? y : ctx.currentY;
|
|
13
|
+
const startY = baseY + mt;
|
|
14
|
+
const lineWidth = (_e = block.lineWidth) !== null && _e !== void 0 ? _e : 1;
|
|
15
|
+
const heightNeeded = mt + lineWidth + mb;
|
|
16
|
+
if (y === null) {
|
|
17
|
+
ensureSpaceFor(heightNeeded, env);
|
|
18
|
+
}
|
|
19
|
+
doc.save();
|
|
20
|
+
if (block.color) {
|
|
21
|
+
doc.strokeColor(block.color);
|
|
22
|
+
}
|
|
23
|
+
doc.lineWidth(lineWidth);
|
|
24
|
+
doc
|
|
25
|
+
.moveTo(xLeft, startY)
|
|
26
|
+
.lineTo(xLeft + width, startY)
|
|
27
|
+
.stroke();
|
|
28
|
+
doc.restore();
|
|
29
|
+
const newY = startY + lineWidth + mb;
|
|
30
|
+
if (y === null)
|
|
31
|
+
ctx.currentY = newY;
|
|
32
|
+
return newY;
|
|
33
|
+
};
|
|
34
|
+
exports.processLineBlock = processLineBlock;
|
|
35
|
+
//# sourceMappingURL=line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/line.ts"],"names":[],"mappings":";;;AAEO,MAAM,gBAAgB,GAAG,CAC9B,GAAuB,EACvB,GAAgB,EAChB,KAAgB,EAChB,CAAgB,EAChB,GAAc,EACd,cAA8D,EACtD,EAAE;;IACV,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,MAAA,KAAK,CAAC,WAAW,mCAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,EAAE,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,MAAA,KAAK,CAAC,YAAY,mCAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,GAAG,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,EAAE,GAAG,SAAS,GAAG,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACzB,GAAG;SACA,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;SACrB,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC;SAC7B,MAAM,EAAE,CAAC;IACZ,GAAG,CAAC,OAAO,EAAE,CAAC;IAEd,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,IAAI;QAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAtCW,QAAA,gBAAgB,oBAsC3B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PageContext, RenderEnv, StyleDef, TableBlock } from "../../types";
|
|
2
|
+
export declare const measureTableHeight: (doc: PDFKit.PDFDocument, table: TableBlock, env: RenderEnv, styles: Record<string, StyleDef> | undefined, computeColumnPixelWidths: (widths: (number | "*")[], totalWidth: number) => number[]) => number;
|
|
3
|
+
export declare const processTableBlock: (doc: PDFKit.PDFDocument, ctx: PageContext, styles: Record<string, StyleDef> | undefined, table: TableBlock, y: number | null, env: RenderEnv, computeColumnPixelWidths: (widths: (number | "*")[], totalWidth: number) => number[], bottomLimitForContent: () => number, finishPage: (addNewPage: boolean) => void) => number;
|
|
4
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/table.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,UAAU,EAEX,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,kBAAkB,GAC7B,KAAK,MAAM,CAAC,WAAW,EACvB,OAAO,UAAU,EACjB,KAAK,SAAS,EACd,QAAQ,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EAC5C,0BAA0B,CACxB,MAAM,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EACxB,UAAU,EAAE,MAAM,KACf,MAAM,EAAE,KACZ,MA2CF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,KAAK,MAAM,CAAC,WAAW,EACvB,KAAK,WAAW,EAChB,QAAQ,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EAC5C,OAAO,UAAU,EACjB,GAAG,MAAM,GAAG,IAAI,EAChB,KAAK,SAAS,EACd,0BAA0B,CACxB,MAAM,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EACxB,UAAU,EAAE,MAAM,KACf,MAAM,EAAE,EACb,uBAAuB,MAAM,MAAM,EACnC,YAAY,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,KACxC,MA+LF,CAAC"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processTableBlock = exports.measureTableHeight = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const measureTableHeight = (doc, table, env, styles, computeColumnPixelWidths) => {
|
|
6
|
+
var _a, _b, _c, _d, _e;
|
|
7
|
+
const localLeft = (_a = table.marginLeft) !== null && _a !== void 0 ? _a : 0;
|
|
8
|
+
const localRight = (_b = table.marginRight) !== null && _b !== void 0 ? _b : 0;
|
|
9
|
+
const width = Math.max(env.innerWidth - localLeft - localRight, 1);
|
|
10
|
+
const colWidths = computeColumnPixelWidths(table.widths, width);
|
|
11
|
+
let totalHeight = 0;
|
|
12
|
+
totalHeight += (_c = table.marginTop) !== null && _c !== void 0 ? _c : 0;
|
|
13
|
+
table.body.forEach((row) => {
|
|
14
|
+
let rowHeight = 0;
|
|
15
|
+
row.forEach((rawCell, colIndex) => {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
const cell = (0, utils_1.resolveTableCell)(styles, rawCell);
|
|
18
|
+
const colW = (_a = colWidths[colIndex]) !== null && _a !== void 0 ? _a : 50;
|
|
19
|
+
const fontSize = (_b = cell.fontSize) !== null && _b !== void 0 ? _b : 10;
|
|
20
|
+
const isBold = !!cell.bold;
|
|
21
|
+
const isItalic = !!cell.italic;
|
|
22
|
+
const fontName = cell.font
|
|
23
|
+
? cell.font
|
|
24
|
+
: isBold && isItalic
|
|
25
|
+
? "Helvetica-BoldOblique"
|
|
26
|
+
: isBold
|
|
27
|
+
? "Helvetica-Bold"
|
|
28
|
+
: isItalic
|
|
29
|
+
? "Helvetica-Oblique"
|
|
30
|
+
: "Helvetica";
|
|
31
|
+
doc.font(fontName);
|
|
32
|
+
doc.fontSize(fontSize);
|
|
33
|
+
const h = doc.heightOfString(cell.text, { width: colW });
|
|
34
|
+
rowHeight = Math.max(rowHeight, h + 4);
|
|
35
|
+
});
|
|
36
|
+
totalHeight += rowHeight;
|
|
37
|
+
});
|
|
38
|
+
totalHeight += (_d = table.lineGap) !== null && _d !== void 0 ? _d : 6;
|
|
39
|
+
totalHeight += (_e = table.marginBottom) !== null && _e !== void 0 ? _e : 0;
|
|
40
|
+
return totalHeight;
|
|
41
|
+
};
|
|
42
|
+
exports.measureTableHeight = measureTableHeight;
|
|
43
|
+
const processTableBlock = (doc, ctx, styles, table, y, env, computeColumnPixelWidths, bottomLimitForContent, finishPage) => {
|
|
44
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
45
|
+
const localLeft = (_a = table.marginLeft) !== null && _a !== void 0 ? _a : 0;
|
|
46
|
+
const localRight = (_b = table.marginRight) !== null && _b !== void 0 ? _b : 0;
|
|
47
|
+
const baseLeft = env.marginLeft + localLeft;
|
|
48
|
+
const width = Math.max(env.innerWidth - localLeft - localRight, 1);
|
|
49
|
+
const mt = (_c = table.marginTop) !== null && _c !== void 0 ? _c : 0;
|
|
50
|
+
const mb = (_d = table.marginBottom) !== null && _d !== void 0 ? _d : 0;
|
|
51
|
+
const baseY = y !== null && y !== void 0 ? y : ctx.currentY;
|
|
52
|
+
const startY = baseY + mt;
|
|
53
|
+
const colWidths = computeColumnPixelWidths(table.widths, width);
|
|
54
|
+
const layout = (_e = table.layout) !== null && _e !== void 0 ? _e : {
|
|
55
|
+
border: "all",
|
|
56
|
+
hLineColor: "#ccc",
|
|
57
|
+
vLineColor: "#ccc",
|
|
58
|
+
};
|
|
59
|
+
const borderAll = layout.border !== "none";
|
|
60
|
+
const headerRows = (_f = table.headerRows) !== null && _f !== void 0 ? _f : 0;
|
|
61
|
+
const measureRowHeight = (row) => {
|
|
62
|
+
let rowHeight = 0;
|
|
63
|
+
row.forEach((rawCell, colIndex) => {
|
|
64
|
+
var _a, _b;
|
|
65
|
+
const cell = (0, utils_1.resolveTableCell)(styles, rawCell);
|
|
66
|
+
const colW = (_a = colWidths[colIndex]) !== null && _a !== void 0 ? _a : 50;
|
|
67
|
+
const fontSize = (_b = cell.fontSize) !== null && _b !== void 0 ? _b : 10;
|
|
68
|
+
const fontName = cell.font
|
|
69
|
+
? cell.font
|
|
70
|
+
: cell.bold
|
|
71
|
+
? "Helvetica-Bold"
|
|
72
|
+
: "Helvetica";
|
|
73
|
+
doc.font(fontName);
|
|
74
|
+
doc.fontSize(fontSize);
|
|
75
|
+
const textWidth = Math.max(colW - 4, 1);
|
|
76
|
+
const h = doc.heightOfString(cell.text, {
|
|
77
|
+
width: textWidth,
|
|
78
|
+
}) + 4;
|
|
79
|
+
rowHeight = Math.max(rowHeight, h);
|
|
80
|
+
});
|
|
81
|
+
return rowHeight || 12;
|
|
82
|
+
};
|
|
83
|
+
const drawRow = (row, rowTop, rowHeight, isHeaderRow, drawTopBorder) => {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
row.forEach((rawCell, colIndex) => {
|
|
86
|
+
var _a, _b, _c;
|
|
87
|
+
const cell = (0, utils_1.resolveTableCell)(styles, rawCell);
|
|
88
|
+
const colW = (_a = colWidths[colIndex]) !== null && _a !== void 0 ? _a : 50;
|
|
89
|
+
const x = baseLeft + colWidths.slice(0, colIndex).reduce((a, b) => a + b, 0);
|
|
90
|
+
const fontSize = (_b = cell.fontSize) !== null && _b !== void 0 ? _b : 10;
|
|
91
|
+
doc.save();
|
|
92
|
+
if (cell.fillColor) {
|
|
93
|
+
doc
|
|
94
|
+
.rect(x, rowTop, colW, rowHeight)
|
|
95
|
+
.fillOpacity(1)
|
|
96
|
+
.fill(cell.fillColor);
|
|
97
|
+
doc.fillOpacity(1);
|
|
98
|
+
}
|
|
99
|
+
const isBold = !!cell.bold;
|
|
100
|
+
const isItalic = !!cell.italic;
|
|
101
|
+
const fontName = cell.font
|
|
102
|
+
? cell.font
|
|
103
|
+
: isBold && isItalic
|
|
104
|
+
? "Helvetica-BoldOblique"
|
|
105
|
+
: isBold
|
|
106
|
+
? "Helvetica-Bold"
|
|
107
|
+
: isItalic
|
|
108
|
+
? "Helvetica-Oblique"
|
|
109
|
+
: "Helvetica";
|
|
110
|
+
doc.font(fontName);
|
|
111
|
+
doc.fontSize(fontSize);
|
|
112
|
+
if (cell.color) {
|
|
113
|
+
doc.fillColor(cell.color);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
doc.fillColor("black");
|
|
117
|
+
}
|
|
118
|
+
const align = (_c = cell.align) !== null && _c !== void 0 ? _c : "left";
|
|
119
|
+
const textWidth = Math.max(colW - 4, 1);
|
|
120
|
+
const textHeight = doc.heightOfString(cell.text, {
|
|
121
|
+
width: textWidth,
|
|
122
|
+
});
|
|
123
|
+
let textY = rowTop + 2;
|
|
124
|
+
if (isHeaderRow) {
|
|
125
|
+
const available = rowHeight - 4;
|
|
126
|
+
const offset = Math.max((available - textHeight) / 2, 0);
|
|
127
|
+
textY = rowTop + 2 + offset;
|
|
128
|
+
}
|
|
129
|
+
doc.text(cell.text, x + 2, textY, {
|
|
130
|
+
width: textWidth,
|
|
131
|
+
align,
|
|
132
|
+
underline: !!cell.underline,
|
|
133
|
+
strike: !!cell.strike,
|
|
134
|
+
link: cell.link,
|
|
135
|
+
});
|
|
136
|
+
doc.restore();
|
|
137
|
+
});
|
|
138
|
+
if (borderAll) {
|
|
139
|
+
const bottomY = rowTop + rowHeight;
|
|
140
|
+
doc.save();
|
|
141
|
+
doc.lineWidth(0.5);
|
|
142
|
+
doc.strokeColor((_a = layout.hLineColor) !== null && _a !== void 0 ? _a : "#ccc");
|
|
143
|
+
if (drawTopBorder) {
|
|
144
|
+
doc
|
|
145
|
+
.moveTo(baseLeft, rowTop)
|
|
146
|
+
.lineTo(baseLeft + width, rowTop)
|
|
147
|
+
.stroke();
|
|
148
|
+
}
|
|
149
|
+
doc
|
|
150
|
+
.moveTo(baseLeft, bottomY)
|
|
151
|
+
.lineTo(baseLeft + width, bottomY)
|
|
152
|
+
.stroke();
|
|
153
|
+
doc.restore();
|
|
154
|
+
doc.save();
|
|
155
|
+
doc.lineWidth(0.5);
|
|
156
|
+
doc.strokeColor((_b = layout.vLineColor) !== null && _b !== void 0 ? _b : "#ccc");
|
|
157
|
+
let x = baseLeft;
|
|
158
|
+
colWidths.forEach((colW) => {
|
|
159
|
+
doc.moveTo(x, rowTop).lineTo(x, bottomY).stroke();
|
|
160
|
+
x += colW;
|
|
161
|
+
});
|
|
162
|
+
doc
|
|
163
|
+
.moveTo(baseLeft + width, rowTop)
|
|
164
|
+
.lineTo(baseLeft + width, bottomY)
|
|
165
|
+
.stroke();
|
|
166
|
+
doc.restore();
|
|
167
|
+
}
|
|
168
|
+
return rowTop + rowHeight;
|
|
169
|
+
};
|
|
170
|
+
const drawHeaderRowsOnNewPage = () => {
|
|
171
|
+
if (!headerRows)
|
|
172
|
+
return doc.page.margins.top + mt;
|
|
173
|
+
let rowTop = doc.page.margins.top + mt;
|
|
174
|
+
for (let i = 0; i < headerRows; i++) {
|
|
175
|
+
const headerRow = table.body[i];
|
|
176
|
+
const headerHeight = measureRowHeight(headerRow);
|
|
177
|
+
rowTop = drawRow(headerRow, rowTop, headerHeight, true, true);
|
|
178
|
+
}
|
|
179
|
+
return rowTop;
|
|
180
|
+
};
|
|
181
|
+
let rowTop = startY;
|
|
182
|
+
table.body.forEach((row, rowIndex) => {
|
|
183
|
+
const isHeaderRow = rowIndex < headerRows;
|
|
184
|
+
const rowHeight = measureRowHeight(row);
|
|
185
|
+
const bottomLimit = bottomLimitForContent();
|
|
186
|
+
if (rowTop + rowHeight > bottomLimit) {
|
|
187
|
+
finishPage(true);
|
|
188
|
+
rowTop = headerRows
|
|
189
|
+
? drawHeaderRowsOnNewPage()
|
|
190
|
+
: doc.page.margins.top + mt;
|
|
191
|
+
}
|
|
192
|
+
const drawTopBorder = true;
|
|
193
|
+
rowTop = drawRow(row, rowTop, rowHeight, isHeaderRow, drawTopBorder);
|
|
194
|
+
});
|
|
195
|
+
const newY = rowTop + ((_g = table.lineGap) !== null && _g !== void 0 ? _g : 6) + mb;
|
|
196
|
+
if (y === null)
|
|
197
|
+
ctx.currentY = newY;
|
|
198
|
+
return newY;
|
|
199
|
+
};
|
|
200
|
+
exports.processTableBlock = processTableBlock;
|
|
201
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { PageContext, RenderEnv, StyleDef, TextBlock } from "../../types";
|
|
2
|
+
export declare const processTextBlock: (doc: PDFKit.PDFDocument, ctx: PageContext, styles: Record<string, StyleDef> | undefined, block: TextBlock, y: number | null, env: RenderEnv, ensureSpaceFor: (heightNeeded: number, env: RenderEnv) => void) => number;
|
|
3
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG1E,eAAO,MAAM,gBAAgB,GAC3B,KAAK,MAAM,CAAC,WAAW,EACvB,KAAK,WAAW,EAChB,QAAQ,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EAC5C,OAAO,SAAS,EAChB,GAAG,MAAM,GAAG,IAAI,EAChB,KAAK,SAAS,EACd,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,KAAK,IAAI,KAC7D,MA8CF,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processTextBlock = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const processTextBlock = (doc, ctx, styles, block, y, env, ensureSpaceFor) => {
|
|
6
|
+
var _a, _b, _c, _d, _e, _f;
|
|
7
|
+
const tb = (0, utils_1.resolveTextBlock)(styles, block);
|
|
8
|
+
const localLeft = (_a = tb.marginLeft) !== null && _a !== void 0 ? _a : 0;
|
|
9
|
+
const localRight = (_b = tb.marginRight) !== null && _b !== void 0 ? _b : 0;
|
|
10
|
+
const xLeft = env.marginLeft + localLeft;
|
|
11
|
+
const width = Math.max(env.innerWidth - localLeft - localRight, 1);
|
|
12
|
+
const baseY = y !== null && y !== void 0 ? y : ctx.currentY;
|
|
13
|
+
const startY = baseY;
|
|
14
|
+
doc.fontSize((_c = tb.fontSize) !== null && _c !== void 0 ? _c : 10);
|
|
15
|
+
const isBold = !!tb.bold;
|
|
16
|
+
const isItalic = !!tb.italic;
|
|
17
|
+
let fontName = tb.font;
|
|
18
|
+
if (!fontName) {
|
|
19
|
+
if (isBold && isItalic)
|
|
20
|
+
fontName = "Helvetica-BoldOblique";
|
|
21
|
+
else if (isBold)
|
|
22
|
+
fontName = "Helvetica-Bold";
|
|
23
|
+
else if (isItalic)
|
|
24
|
+
fontName = "Helvetica-Oblique";
|
|
25
|
+
else
|
|
26
|
+
fontName = "Helvetica";
|
|
27
|
+
}
|
|
28
|
+
doc.font(fontName);
|
|
29
|
+
if (tb.color)
|
|
30
|
+
doc.fillColor(tb.color);
|
|
31
|
+
else
|
|
32
|
+
doc.fillColor("black");
|
|
33
|
+
const textHeight = doc.heightOfString(tb.text, { width });
|
|
34
|
+
if (y === null) {
|
|
35
|
+
const gapCheck = (_d = tb.lineGap) !== null && _d !== void 0 ? _d : 4;
|
|
36
|
+
ensureSpaceFor(textHeight + gapCheck, env);
|
|
37
|
+
}
|
|
38
|
+
doc.text(tb.text, xLeft, startY, {
|
|
39
|
+
width,
|
|
40
|
+
align: (_e = tb.align) !== null && _e !== void 0 ? _e : "left",
|
|
41
|
+
underline: !!tb.underline,
|
|
42
|
+
strike: !!tb.strike,
|
|
43
|
+
link: tb.link,
|
|
44
|
+
});
|
|
45
|
+
const gap = (_f = tb.lineGap) !== null && _f !== void 0 ? _f : 4;
|
|
46
|
+
const newY = startY + textHeight + gap;
|
|
47
|
+
if (y === null)
|
|
48
|
+
ctx.currentY = newY;
|
|
49
|
+
return newY;
|
|
50
|
+
};
|
|
51
|
+
exports.processTextBlock = processTextBlock;
|
|
52
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/text.ts"],"names":[],"mappings":";;;AACA,oCAA4C;AAErC,MAAM,gBAAgB,GAAG,CAC9B,GAAuB,EACvB,GAAgB,EAChB,MAA4C,EAC5C,KAAgB,EAChB,CAAgB,EAChB,GAAc,EACd,cAA8D,EACtD,EAAE;;IACV,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,mCAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,MAAA,EAAE,CAAC,WAAW,mCAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAG,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC;IAErB,GAAG,CAAC,QAAQ,CAAC,MAAA,EAAE,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;IAE7B,IAAI,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC;IACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,MAAM,IAAI,QAAQ;YAAE,QAAQ,GAAG,uBAAuB,CAAC;aACtD,IAAI,MAAM;YAAE,QAAQ,GAAG,gBAAgB,CAAC;aACxC,IAAI,QAAQ;YAAE,QAAQ,GAAG,mBAAmB,CAAC;;YAC7C,QAAQ,GAAG,WAAW,CAAC;IAC9B,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnB,IAAI,EAAE,CAAC,KAAK;QAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;;QACjC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5B,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,OAAO,mCAAI,CAAC,CAAC;QACjC,cAAc,CAAC,UAAU,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;QAC/B,KAAK;QACL,KAAK,EAAE,MAAA,EAAE,CAAC,KAAK,mCAAI,MAAM;QACzB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS;QACzB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM;QACnB,IAAI,EAAE,EAAE,CAAC,IAAI;KACd,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAA,EAAE,CAAC,OAAO,mCAAI,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,GAAG,UAAU,GAAG,GAAG,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI;QAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAtDW,QAAA,gBAAgB,oBAsD3B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CustomDocDefinition } from "../types";
|
|
2
|
+
export declare function renderCustomPdf(def: CustomDocDefinition, outputPath: string): Promise<void>;
|
|
3
|
+
export declare function renderCustomPdfToBuffer(def: CustomDocDefinition): Promise<Buffer>;
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer-engine/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAA6B,MAAM,UAAU,CAAC;AAgB1E,wBAAsB,eAAe,CACnC,GAAG,EAAE,mBAAmB,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAqHf;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,CAgIjB"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.renderCustomPdf = renderCustomPdf;
|
|
7
|
+
exports.renderCustomPdfToBuffer = renderCustomPdfToBuffer;
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const pdfkit_1 = __importDefault(require("pdfkit"));
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
|
+
const image_loader_1 = require("./utils/image-loader");
|
|
12
|
+
async function renderCustomPdf(def, outputPath) {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
if (def.header) {
|
|
15
|
+
def.header.blocks = await (0, utils_1.materializeQrAndBarcodesInBlocks)(def.header.blocks);
|
|
16
|
+
def.header.blocks = await (0, image_loader_1.materializeImagesInBlocks)(def.header.blocks);
|
|
17
|
+
}
|
|
18
|
+
def.content = await (0, utils_1.materializeQrAndBarcodesInBlocks)(def.content);
|
|
19
|
+
def.content = await (0, image_loader_1.materializeImagesInBlocks)(def.content);
|
|
20
|
+
if ((_a = def.pageBackground) === null || _a === void 0 ? void 0 : _a.src) {
|
|
21
|
+
def.pageBackground.src = await (0, image_loader_1.normalizeImageSrc)(def.pageBackground.src);
|
|
22
|
+
}
|
|
23
|
+
if ((_b = def.header) === null || _b === void 0 ? void 0 : _b.backgroundImage) {
|
|
24
|
+
def.header.backgroundImage = await (0, image_loader_1.normalizeImageSrc)(def.header.backgroundImage);
|
|
25
|
+
}
|
|
26
|
+
if (def.footer && typeof def.footer !== "function") {
|
|
27
|
+
const footer = def.footer;
|
|
28
|
+
if (footer.backgroundImage) {
|
|
29
|
+
footer.backgroundImage = await (0, image_loader_1.normalizeImageSrc)(footer.backgroundImage);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
var _a, _b, _c;
|
|
34
|
+
const headerBandHeight = (_a = def.margins.top) !== null && _a !== void 0 ? _a : 0;
|
|
35
|
+
const footerBandHeight = (_b = def.margins.bottom) !== null && _b !== void 0 ? _b : 0;
|
|
36
|
+
const doc = new pdfkit_1.default({
|
|
37
|
+
size: def.pageSize || "A4",
|
|
38
|
+
margins: {
|
|
39
|
+
top: headerBandHeight,
|
|
40
|
+
bottom: footerBandHeight,
|
|
41
|
+
left: def.margins.left,
|
|
42
|
+
right: def.margins.right,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
if (def.fonts && def.fonts.length) {
|
|
46
|
+
for (const f of def.fonts) {
|
|
47
|
+
try {
|
|
48
|
+
doc.registerFont(f.name, f.src);
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
console.warn("Failed to register font:", f.name, e);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const stream = fs_1.default.createWriteStream(outputPath);
|
|
56
|
+
doc.pipe(stream);
|
|
57
|
+
const ctx = (0, utils_1.createInitialContext)(doc);
|
|
58
|
+
const styles = (_c = def.styles) !== null && _c !== void 0 ? _c : {};
|
|
59
|
+
const finishPage = (addNewPage) => (0, utils_1.finishPage)({
|
|
60
|
+
addNewPage,
|
|
61
|
+
doc,
|
|
62
|
+
def,
|
|
63
|
+
ctx,
|
|
64
|
+
footerBandHeight,
|
|
65
|
+
renderBlockArray,
|
|
66
|
+
startNewPageLayout,
|
|
67
|
+
});
|
|
68
|
+
const processSignatureBlock = (0, utils_1.createProcessSignatureBlock)({
|
|
69
|
+
doc,
|
|
70
|
+
ctx,
|
|
71
|
+
styles,
|
|
72
|
+
finishPage,
|
|
73
|
+
contentEnvFn: utils_1.contentEnv,
|
|
74
|
+
});
|
|
75
|
+
const { renderBlock, renderBlockArray } = (0, utils_1.createBlockRenderer)({
|
|
76
|
+
doc,
|
|
77
|
+
ctx,
|
|
78
|
+
styles,
|
|
79
|
+
computeColumnPixelWidths: utils_1.computeColumnPixelWidths,
|
|
80
|
+
finishPage,
|
|
81
|
+
processSignatureBlock,
|
|
82
|
+
});
|
|
83
|
+
const startNewPageLayout = (0, utils_1.createStartNewPageLayout)({
|
|
84
|
+
doc,
|
|
85
|
+
def,
|
|
86
|
+
ctx,
|
|
87
|
+
headerBandHeight,
|
|
88
|
+
renderBlockArray,
|
|
89
|
+
});
|
|
90
|
+
startNewPageLayout();
|
|
91
|
+
for (const block of def.content) {
|
|
92
|
+
if (block.type === "signature") {
|
|
93
|
+
processSignatureBlock(block);
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (ctx.afterSignature) {
|
|
97
|
+
finishPage(true);
|
|
98
|
+
ctx.afterSignature = false;
|
|
99
|
+
}
|
|
100
|
+
renderBlock(block, null, (0, utils_1.contentEnv)(doc));
|
|
101
|
+
}
|
|
102
|
+
finishPage(false);
|
|
103
|
+
doc.end();
|
|
104
|
+
stream.on("finish", () => resolve());
|
|
105
|
+
stream.on("error", (err) => reject(err));
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
async function renderCustomPdfToBuffer(def) {
|
|
109
|
+
// --- same pre-materialization as file version ---
|
|
110
|
+
var _a, _b;
|
|
111
|
+
if (def.header) {
|
|
112
|
+
def.header.blocks = await (0, utils_1.materializeQrAndBarcodesInBlocks)(def.header.blocks);
|
|
113
|
+
def.header.blocks = await (0, image_loader_1.materializeImagesInBlocks)(def.header.blocks);
|
|
114
|
+
}
|
|
115
|
+
def.content = await (0, utils_1.materializeQrAndBarcodesInBlocks)(def.content);
|
|
116
|
+
def.content = await (0, image_loader_1.materializeImagesInBlocks)(def.content);
|
|
117
|
+
if ((_a = def.pageBackground) === null || _a === void 0 ? void 0 : _a.src) {
|
|
118
|
+
def.pageBackground.src = await (0, image_loader_1.normalizeImageSrc)(def.pageBackground.src);
|
|
119
|
+
}
|
|
120
|
+
if ((_b = def.header) === null || _b === void 0 ? void 0 : _b.backgroundImage) {
|
|
121
|
+
def.header.backgroundImage = await (0, image_loader_1.normalizeImageSrc)(def.header.backgroundImage);
|
|
122
|
+
}
|
|
123
|
+
if (def.footer && typeof def.footer !== "function") {
|
|
124
|
+
const footer = def.footer;
|
|
125
|
+
if (footer.backgroundImage) {
|
|
126
|
+
footer.backgroundImage = await (0, image_loader_1.normalizeImageSrc)(footer.backgroundImage);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return new Promise((resolve, reject) => {
|
|
130
|
+
var _a, _b, _c;
|
|
131
|
+
const headerBandHeight = (_a = def.margins.top) !== null && _a !== void 0 ? _a : 0;
|
|
132
|
+
const footerBandHeight = (_b = def.margins.bottom) !== null && _b !== void 0 ? _b : 0;
|
|
133
|
+
const doc = new pdfkit_1.default({
|
|
134
|
+
size: def.pageSize || "A4",
|
|
135
|
+
margins: {
|
|
136
|
+
top: headerBandHeight,
|
|
137
|
+
bottom: footerBandHeight,
|
|
138
|
+
left: def.margins.left,
|
|
139
|
+
right: def.margins.right,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
// collect PDF chunks into memory
|
|
143
|
+
const chunks = [];
|
|
144
|
+
doc.on("data", (chunk) => {
|
|
145
|
+
chunks.push(chunk);
|
|
146
|
+
});
|
|
147
|
+
doc.on("end", () => {
|
|
148
|
+
resolve(Buffer.concat(chunks));
|
|
149
|
+
});
|
|
150
|
+
doc.on("error", (err) => {
|
|
151
|
+
reject(err);
|
|
152
|
+
});
|
|
153
|
+
// register custom fonts
|
|
154
|
+
if (def.fonts && def.fonts.length) {
|
|
155
|
+
for (const f of def.fonts) {
|
|
156
|
+
try {
|
|
157
|
+
doc.registerFont(f.name, f.src);
|
|
158
|
+
}
|
|
159
|
+
catch (e) {
|
|
160
|
+
console.warn("Failed to register font:", f.name, e);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const ctx = (0, utils_1.createInitialContext)(doc);
|
|
165
|
+
const styles = (_c = def.styles) !== null && _c !== void 0 ? _c : {};
|
|
166
|
+
// finishPage uses the shared util, just like your file version
|
|
167
|
+
const finishPage = (addNewPage) => (0, utils_1.finishPage)({
|
|
168
|
+
addNewPage,
|
|
169
|
+
doc,
|
|
170
|
+
def,
|
|
171
|
+
ctx,
|
|
172
|
+
footerBandHeight,
|
|
173
|
+
renderBlockArray,
|
|
174
|
+
startNewPageLayout,
|
|
175
|
+
});
|
|
176
|
+
const processSignatureBlock = (0, utils_1.createProcessSignatureBlock)({
|
|
177
|
+
doc,
|
|
178
|
+
ctx,
|
|
179
|
+
styles,
|
|
180
|
+
finishPage,
|
|
181
|
+
contentEnvFn: utils_1.contentEnv,
|
|
182
|
+
});
|
|
183
|
+
const { renderBlock, renderBlockArray } = (0, utils_1.createBlockRenderer)({
|
|
184
|
+
doc,
|
|
185
|
+
ctx,
|
|
186
|
+
styles,
|
|
187
|
+
computeColumnPixelWidths: utils_1.computeColumnPixelWidths,
|
|
188
|
+
finishPage,
|
|
189
|
+
processSignatureBlock,
|
|
190
|
+
});
|
|
191
|
+
const startNewPageLayout = (0, utils_1.createStartNewPageLayout)({
|
|
192
|
+
doc,
|
|
193
|
+
def,
|
|
194
|
+
ctx,
|
|
195
|
+
headerBandHeight,
|
|
196
|
+
renderBlockArray,
|
|
197
|
+
});
|
|
198
|
+
// ---- main render flow ----
|
|
199
|
+
startNewPageLayout();
|
|
200
|
+
for (const block of def.content) {
|
|
201
|
+
if (block.type === "signature") {
|
|
202
|
+
processSignatureBlock(block);
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
if (ctx.afterSignature) {
|
|
206
|
+
finishPage(true);
|
|
207
|
+
ctx.afterSignature = false;
|
|
208
|
+
}
|
|
209
|
+
renderBlock(block, null, (0, utils_1.contentEnv)(doc));
|
|
210
|
+
}
|
|
211
|
+
finishPage(false);
|
|
212
|
+
doc.end();
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer-engine/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Block, PageContext, RenderEnv, SignatureBlock, StyleDef } from "../../types";
|
|
2
|
+
export interface BlockRendererDeps {
|
|
3
|
+
doc: PDFKit.PDFDocument;
|
|
4
|
+
ctx: PageContext;
|
|
5
|
+
styles: Record<string, StyleDef>;
|
|
6
|
+
computeColumnPixelWidths: (widths: (number | "*")[], totalWidth: number) => number[];
|
|
7
|
+
finishPage: (addNewPage: boolean) => void;
|
|
8
|
+
processSignatureBlock: (block: SignatureBlock) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Factory that returns renderBlock + renderBlockArray wired with all dependencies.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createBlockRenderer(deps: BlockRendererDeps): {
|
|
14
|
+
renderBlock: (block: Block, y: number | null, env: RenderEnv) => number;
|
|
15
|
+
renderBlockArray: (blocks: Block[], startY: number, env: RenderEnv) => number;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=block-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-renderer.d.ts","sourceRoot":"","sources":["../../../src/renderer-engine/utils/block-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAKL,WAAW,EAEX,SAAS,EACT,cAAc,EACd,QAAQ,EAGT,MAAM,aAAa,CAAC;AAiBrB,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC;IACxB,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,wBAAwB,EAAE,CACxB,MAAM,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EACxB,UAAU,EAAE,MAAM,KACf,MAAM,EAAE,CAAC;IAEd,UAAU,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,qBAAqB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CACxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB;yBAyBhD,KAAK,KACT,MAAM,GAAG,IAAI,OACX,SAAS,KACb,MAAM;+BAuHC,KAAK,EAAE,UACP,MAAM,OACT,SAAS,KACb,MAAM;EAeV"}
|