av6-pdf-engine 1.0.1 → 1.0.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/.prettierignore +4 -0
- package/.prettierrc +6 -0
- package/dist/index.d.mts +296 -0
- package/dist/index.d.ts +296 -3
- package/dist/index.js +1979 -18
- package/dist/index.mjs +1940 -0
- package/package.json +12 -21
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/renderer-engine/blocks/barcode.d.ts +0 -3
- package/dist/renderer-engine/blocks/barcode.d.ts.map +0 -1
- package/dist/renderer-engine/blocks/barcode.js +0 -47
- package/dist/renderer-engine/blocks/barcode.js.map +0 -1
- package/dist/renderer-engine/blocks/columns.d.ts +0 -3
- package/dist/renderer-engine/blocks/columns.d.ts.map +0 -1
- package/dist/renderer-engine/blocks/columns.js +0 -105
- package/dist/renderer-engine/blocks/columns.js.map +0 -1
- package/dist/renderer-engine/blocks/image.d.ts +0 -4
- package/dist/renderer-engine/blocks/image.d.ts.map +0 -1
- package/dist/renderer-engine/blocks/image.js +0 -57
- package/dist/renderer-engine/blocks/image.js.map +0 -1
- package/dist/renderer-engine/blocks/index.d.ts +0 -8
- package/dist/renderer-engine/blocks/index.d.ts.map +0 -1
- package/dist/renderer-engine/blocks/index.js +0 -24
- package/dist/renderer-engine/blocks/index.js.map +0 -1
- package/dist/renderer-engine/blocks/key-value-grid.d.ts +0 -3
- package/dist/renderer-engine/blocks/key-value-grid.d.ts.map +0 -1
- package/dist/renderer-engine/blocks/key-value-grid.js +0 -245
- package/dist/renderer-engine/blocks/key-value-grid.js.map +0 -1
- package/dist/renderer-engine/blocks/line.d.ts +0 -3
- package/dist/renderer-engine/blocks/line.d.ts.map +0 -1
- package/dist/renderer-engine/blocks/line.js +0 -35
- package/dist/renderer-engine/blocks/line.js.map +0 -1
- package/dist/renderer-engine/blocks/table.d.ts +0 -4
- package/dist/renderer-engine/blocks/table.d.ts.map +0 -1
- package/dist/renderer-engine/blocks/table.js +0 -201
- package/dist/renderer-engine/blocks/table.js.map +0 -1
- package/dist/renderer-engine/blocks/text.d.ts +0 -3
- package/dist/renderer-engine/blocks/text.d.ts.map +0 -1
- package/dist/renderer-engine/blocks/text.js +0 -52
- package/dist/renderer-engine/blocks/text.js.map +0 -1
- package/dist/renderer-engine/index.d.ts +0 -4
- package/dist/renderer-engine/index.d.ts.map +0 -1
- package/dist/renderer-engine/index.js +0 -215
- package/dist/renderer-engine/index.js.map +0 -1
- package/dist/renderer-engine/utils/block-renderer.d.ts +0 -17
- package/dist/renderer-engine/utils/block-renderer.d.ts.map +0 -1
- package/dist/renderer-engine/utils/block-renderer.js +0 -86
- package/dist/renderer-engine/utils/block-renderer.js.map +0 -1
- package/dist/renderer-engine/utils/context.d.ts +0 -3
- package/dist/renderer-engine/utils/context.d.ts.map +0 -1
- package/dist/renderer-engine/utils/context.js +0 -16
- package/dist/renderer-engine/utils/context.js.map +0 -1
- package/dist/renderer-engine/utils/ensure-space.d.ts +0 -9
- package/dist/renderer-engine/utils/ensure-space.d.ts.map +0 -1
- package/dist/renderer-engine/utils/ensure-space.js +0 -18
- package/dist/renderer-engine/utils/ensure-space.js.map +0 -1
- package/dist/renderer-engine/utils/env.d.ts +0 -3
- package/dist/renderer-engine/utils/env.d.ts.map +0 -1
- package/dist/renderer-engine/utils/env.js +0 -10
- package/dist/renderer-engine/utils/env.js.map +0 -1
- package/dist/renderer-engine/utils/finish-page.d.ts +0 -13
- package/dist/renderer-engine/utils/finish-page.d.ts.map +0 -1
- package/dist/renderer-engine/utils/finish-page.js +0 -27
- package/dist/renderer-engine/utils/finish-page.js.map +0 -1
- package/dist/renderer-engine/utils/footer.d.ts +0 -3
- package/dist/renderer-engine/utils/footer.d.ts.map +0 -1
- package/dist/renderer-engine/utils/footer.js +0 -89
- package/dist/renderer-engine/utils/footer.js.map +0 -1
- package/dist/renderer-engine/utils/header.d.ts +0 -3
- package/dist/renderer-engine/utils/header.d.ts.map +0 -1
- package/dist/renderer-engine/utils/header.js +0 -47
- package/dist/renderer-engine/utils/header.js.map +0 -1
- package/dist/renderer-engine/utils/image-loader.d.ts +0 -4
- package/dist/renderer-engine/utils/image-loader.d.ts.map +0 -1
- package/dist/renderer-engine/utils/image-loader.js +0 -52
- package/dist/renderer-engine/utils/image-loader.js.map +0 -1
- package/dist/renderer-engine/utils/index.d.ts +0 -19
- package/dist/renderer-engine/utils/index.d.ts.map +0 -1
- package/dist/renderer-engine/utils/index.js +0 -35
- package/dist/renderer-engine/utils/index.js.map +0 -1
- package/dist/renderer-engine/utils/layout.d.ts +0 -8
- package/dist/renderer-engine/utils/layout.d.ts.map +0 -1
- package/dist/renderer-engine/utils/layout.js +0 -22
- package/dist/renderer-engine/utils/layout.js.map +0 -1
- package/dist/renderer-engine/utils/measure-block-height.d.ts +0 -8
- package/dist/renderer-engine/utils/measure-block-height.d.ts.map +0 -1
- package/dist/renderer-engine/utils/measure-block-height.js +0 -220
- package/dist/renderer-engine/utils/measure-block-height.js.map +0 -1
- package/dist/renderer-engine/utils/page-background.d.ts +0 -6
- package/dist/renderer-engine/utils/page-background.d.ts.map +0 -1
- package/dist/renderer-engine/utils/page-background.js +0 -30
- package/dist/renderer-engine/utils/page-background.js.map +0 -1
- package/dist/renderer-engine/utils/page-flow.d.ts +0 -3
- package/dist/renderer-engine/utils/page-flow.d.ts.map +0 -1
- package/dist/renderer-engine/utils/page-flow.js +0 -9
- package/dist/renderer-engine/utils/page-flow.js.map +0 -1
- package/dist/renderer-engine/utils/page-limit.d.ts +0 -8
- package/dist/renderer-engine/utils/page-limit.d.ts.map +0 -1
- package/dist/renderer-engine/utils/page-limit.js +0 -15
- package/dist/renderer-engine/utils/page-limit.js.map +0 -1
- package/dist/renderer-engine/utils/qr-bar-code.d.ts +0 -17
- package/dist/renderer-engine/utils/qr-bar-code.d.ts.map +0 -1
- package/dist/renderer-engine/utils/qr-bar-code.js +0 -141
- package/dist/renderer-engine/utils/qr-bar-code.js.map +0 -1
- package/dist/renderer-engine/utils/signature.d.ts +0 -20
- package/dist/renderer-engine/utils/signature.d.ts.map +0 -1
- package/dist/renderer-engine/utils/signature.js +0 -214
- package/dist/renderer-engine/utils/signature.js.map +0 -1
- package/dist/renderer-engine/utils/start-page-layout.d.ts +0 -20
- package/dist/renderer-engine/utils/start-page-layout.d.ts.map +0 -1
- package/dist/renderer-engine/utils/start-page-layout.js +0 -34
- package/dist/renderer-engine/utils/start-page-layout.js.map +0 -1
- package/dist/renderer-engine/utils/styles.d.ts +0 -7
- package/dist/renderer-engine/utils/styles.d.ts.map +0 -1
- package/dist/renderer-engine/utils/styles.js +0 -124
- package/dist/renderer-engine/utils/styles.js.map +0 -1
- package/dist/renderer-engine/utils/watermark.d.ts +0 -11
- package/dist/renderer-engine/utils/watermark.d.ts.map +0 -1
- package/dist/renderer-engine/utils/watermark.js +0 -57
- package/dist/renderer-engine/utils/watermark.js.map +0 -1
- package/dist/types/barcode.d.ts +0 -23
- package/dist/types/barcode.d.ts.map +0 -1
- package/dist/types/barcode.js +0 -11
- package/dist/types/barcode.js.map +0 -1
- package/dist/types/columns.d.ts +0 -14
- package/dist/types/columns.d.ts.map +0 -1
- package/dist/types/columns.js +0 -3
- package/dist/types/columns.js.map +0 -1
- package/dist/types/common.d.ts +0 -102
- package/dist/types/common.d.ts.map +0 -1
- package/dist/types/common.js +0 -3
- package/dist/types/common.js.map +0 -1
- package/dist/types/context.d.ts +0 -17
- package/dist/types/context.d.ts.map +0 -1
- package/dist/types/context.js +0 -3
- package/dist/types/context.js.map +0 -1
- package/dist/types/image.d.ts +0 -13
- package/dist/types/image.d.ts.map +0 -1
- package/dist/types/image.js +0 -3
- package/dist/types/image.js.map +0 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -29
- package/dist/types/index.js.map +0 -1
- package/dist/types/key-value-grid.d.ts +0 -34
- package/dist/types/key-value-grid.d.ts.map +0 -1
- package/dist/types/key-value-grid.js +0 -3
- package/dist/types/key-value-grid.js.map +0 -1
- package/dist/types/line.d.ts +0 -11
- package/dist/types/line.d.ts.map +0 -1
- package/dist/types/line.js +0 -3
- package/dist/types/line.js.map +0 -1
- package/dist/types/page-break.d.ts +0 -5
- package/dist/types/page-break.d.ts.map +0 -1
- package/dist/types/page-break.js +0 -3
- package/dist/types/page-break.js.map +0 -1
- package/dist/types/qr.d.ts +0 -22
- package/dist/types/qr.d.ts.map +0 -1
- package/dist/types/qr.js +0 -10
- package/dist/types/qr.js.map +0 -1
- package/dist/types/signature.d.ts +0 -12
- package/dist/types/signature.d.ts.map +0 -1
- package/dist/types/signature.js +0 -3
- package/dist/types/signature.js.map +0 -1
- package/dist/types/table.d.ts +0 -32
- package/dist/types/table.d.ts.map +0 -1
- package/dist/types/table.js +0 -3
- package/dist/types/table.js.map +0 -1
- package/dist/types/text.d.ts +0 -19
- package/dist/types/text.d.ts.map +0 -1
- package/dist/types/text.js +0 -3
- package/dist/types/text.js.map +0 -1
- package/dist/types/utility.d.ts +0 -1
- package/dist/types/utility.d.ts.map +0 -1
- package/dist/types/utility.js +0 -2
- package/dist/types/utility.js.map +0 -1
package/.prettierignore
ADDED
package/.prettierrc
ADDED
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
interface SignatureBlock extends BaseBlock {
|
|
2
|
+
type: "signature";
|
|
3
|
+
height: number;
|
|
4
|
+
blocks?: Block[];
|
|
5
|
+
image?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
width?: number;
|
|
8
|
+
marginLeft?: number;
|
|
9
|
+
marginRight?: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface KeyValueItem {
|
|
13
|
+
key: string;
|
|
14
|
+
value: string;
|
|
15
|
+
keyStyle?: StyleRef;
|
|
16
|
+
valueStyle?: StyleRef;
|
|
17
|
+
keyTextStyle?: InlineTextStyle;
|
|
18
|
+
valueTextStyle?: InlineTextStyle;
|
|
19
|
+
keyAlign?: Alignment;
|
|
20
|
+
valueAlign?: Alignment;
|
|
21
|
+
}
|
|
22
|
+
interface KeyValueGridBlock extends BaseBlock {
|
|
23
|
+
type: "keyValueGrid";
|
|
24
|
+
columns: KeyValueItem[][];
|
|
25
|
+
columnGap?: number;
|
|
26
|
+
keyWidth?: Width;
|
|
27
|
+
columnWidths?: (Width | undefined)[];
|
|
28
|
+
orientation?: Orientation;
|
|
29
|
+
verticalKeyValueGap?: number;
|
|
30
|
+
keyStyle?: StyleRef;
|
|
31
|
+
valueStyle?: StyleRef;
|
|
32
|
+
keyTextStyle?: InlineTextStyle;
|
|
33
|
+
valueTextStyle?: InlineTextStyle;
|
|
34
|
+
keyAlign?: Alignment;
|
|
35
|
+
valueAlign?: Alignment;
|
|
36
|
+
separator?: string;
|
|
37
|
+
separatorGap?: number;
|
|
38
|
+
rowGap?: number;
|
|
39
|
+
marginTop?: number;
|
|
40
|
+
marginBottom?: number;
|
|
41
|
+
marginLeft?: number;
|
|
42
|
+
marginRight?: number;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
interface PageBreakBlock extends BaseBlock {
|
|
46
|
+
type: "pageBreak";
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
interface TableCell {
|
|
50
|
+
text: string;
|
|
51
|
+
italic?: boolean;
|
|
52
|
+
underline?: boolean;
|
|
53
|
+
link?: string;
|
|
54
|
+
strike?: boolean;
|
|
55
|
+
bold?: boolean;
|
|
56
|
+
fontSize?: number;
|
|
57
|
+
font?: FontName;
|
|
58
|
+
align?: Alignment;
|
|
59
|
+
color?: string;
|
|
60
|
+
fillColor?: string;
|
|
61
|
+
style?: StyleRef;
|
|
62
|
+
}
|
|
63
|
+
interface TableBlock extends BaseBlock {
|
|
64
|
+
type: "table";
|
|
65
|
+
headerRows?: number;
|
|
66
|
+
widths: Width[];
|
|
67
|
+
body: TableCell[][];
|
|
68
|
+
layout?: {
|
|
69
|
+
border?: "all" | "none";
|
|
70
|
+
hLineColor?: string;
|
|
71
|
+
vLineColor?: string;
|
|
72
|
+
};
|
|
73
|
+
lineGap?: number;
|
|
74
|
+
marginTop?: number;
|
|
75
|
+
marginBottom?: number;
|
|
76
|
+
marginLeft?: number;
|
|
77
|
+
marginRight?: number;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
interface ColumnsBlock extends BaseBlock {
|
|
81
|
+
type: "columns";
|
|
82
|
+
columns: Block[][];
|
|
83
|
+
gap?: number;
|
|
84
|
+
widths?: Width[];
|
|
85
|
+
mode?: "fixedGap" | "spaceBetween";
|
|
86
|
+
keepTogether?: boolean;
|
|
87
|
+
marginTop?: number;
|
|
88
|
+
marginBottom?: number;
|
|
89
|
+
marginLeft?: number;
|
|
90
|
+
marginRight?: number;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
interface LineBlock extends BaseBlock {
|
|
94
|
+
type: "line";
|
|
95
|
+
lineWidth?: number;
|
|
96
|
+
color?: string;
|
|
97
|
+
marginTop?: number;
|
|
98
|
+
marginBottom?: number;
|
|
99
|
+
marginLeft?: number;
|
|
100
|
+
marginRight?: number;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
type QRErrorLevel = "L" | "M" | "Q" | "H";
|
|
104
|
+
declare const QR_ERROR_LEVEL: {
|
|
105
|
+
LOW: QRErrorLevel;
|
|
106
|
+
MEDIUM: QRErrorLevel;
|
|
107
|
+
QUARTILE: QRErrorLevel;
|
|
108
|
+
HIGH: QRErrorLevel;
|
|
109
|
+
};
|
|
110
|
+
interface QrCodeBlock extends BaseBlock {
|
|
111
|
+
type: "qr";
|
|
112
|
+
value?: string;
|
|
113
|
+
src?: string | Buffer;
|
|
114
|
+
size?: number;
|
|
115
|
+
qrVersion?: number;
|
|
116
|
+
errorCorrectionLevel?: QRErrorLevel;
|
|
117
|
+
align?: Alignment;
|
|
118
|
+
marginTop?: number;
|
|
119
|
+
marginBottom?: number;
|
|
120
|
+
marginLeft?: number;
|
|
121
|
+
marginRight?: number;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
interface ImageBlock extends BaseBlock {
|
|
125
|
+
type: "image";
|
|
126
|
+
src?: string | Buffer;
|
|
127
|
+
width?: number;
|
|
128
|
+
height?: number;
|
|
129
|
+
align?: Alignment;
|
|
130
|
+
marginTop?: number;
|
|
131
|
+
marginBottom?: number;
|
|
132
|
+
marginLeft?: number;
|
|
133
|
+
marginRight?: number;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
interface TextBlock extends BaseBlock {
|
|
137
|
+
type: "text";
|
|
138
|
+
text: string;
|
|
139
|
+
fontSize?: number;
|
|
140
|
+
lineGap?: number;
|
|
141
|
+
align?: Alignment;
|
|
142
|
+
bold?: boolean;
|
|
143
|
+
italic?: boolean;
|
|
144
|
+
underline?: boolean;
|
|
145
|
+
strike?: boolean;
|
|
146
|
+
link?: string;
|
|
147
|
+
color?: string;
|
|
148
|
+
font?: FontName;
|
|
149
|
+
style?: StyleRef;
|
|
150
|
+
marginLeft?: number;
|
|
151
|
+
marginRight?: number;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
type Alignment = "left" | "right" | "center" | "justify";
|
|
155
|
+
type Orientation = "horizontal" | "vertical";
|
|
156
|
+
type Width = number | "*";
|
|
157
|
+
type InlineTextStyle = Omit<TextBlock, "type" | "text" | "style">;
|
|
158
|
+
type BuiltInFont = "Helvetica" | "Helvetica-Bold" | "Helvetica-Oblique" | "Helvetica-BoldOblique" | "Times-Roman" | "Times-Bold" | "Times-Italic" | "Times-BoldItalic" | "Courier" | "Courier-Bold" | "Courier-Oblique" | "Courier-BoldOblique";
|
|
159
|
+
/**
|
|
160
|
+
* FontName:
|
|
161
|
+
* - autocomplete for built-ins
|
|
162
|
+
* - but still allows any custom string when you registerFont
|
|
163
|
+
*/
|
|
164
|
+
type FontName = BuiltInFont | (string & {});
|
|
165
|
+
/**
|
|
166
|
+
* Style definition similar to pdfmake's style object.
|
|
167
|
+
* Can be applied to text blocks and table cells.
|
|
168
|
+
*/
|
|
169
|
+
interface StyleDef {
|
|
170
|
+
italic?: boolean;
|
|
171
|
+
underline?: boolean;
|
|
172
|
+
link?: string;
|
|
173
|
+
strike?: boolean;
|
|
174
|
+
fontSize?: number;
|
|
175
|
+
lineGap?: number;
|
|
176
|
+
align?: Alignment;
|
|
177
|
+
bold?: boolean;
|
|
178
|
+
color?: string;
|
|
179
|
+
fillColor?: string;
|
|
180
|
+
font?: FontName;
|
|
181
|
+
}
|
|
182
|
+
/** Shared style reference field (single or multiple style names). */
|
|
183
|
+
type StyleRef = string | string[] | undefined;
|
|
184
|
+
interface PageMargins {
|
|
185
|
+
/**
|
|
186
|
+
* TOP is treated as header band height.
|
|
187
|
+
* BOTTOM is treated as footer band height.
|
|
188
|
+
* LEFT/RIGHT are used for content only.
|
|
189
|
+
*/
|
|
190
|
+
top: number;
|
|
191
|
+
right: number;
|
|
192
|
+
bottom: number;
|
|
193
|
+
left: number;
|
|
194
|
+
}
|
|
195
|
+
type WatermarkMode = "all" | "first" | "last" | "firstLast" | "exceptFirst" | "exceptLast" | "exceptFirstLast";
|
|
196
|
+
interface WatermarkDef {
|
|
197
|
+
text: string;
|
|
198
|
+
opacity?: number;
|
|
199
|
+
fontSize?: number;
|
|
200
|
+
color?: string;
|
|
201
|
+
angle?: number;
|
|
202
|
+
mode?: WatermarkMode;
|
|
203
|
+
}
|
|
204
|
+
interface PageBackgroundDef {
|
|
205
|
+
/** Path or Buffer for the image to be used as full-page background */
|
|
206
|
+
src?: string | Buffer;
|
|
207
|
+
/** Optional global opacity for background (0–1). Default: 1 */
|
|
208
|
+
opacity?: number;
|
|
209
|
+
}
|
|
210
|
+
interface FontRegistration {
|
|
211
|
+
name: FontName;
|
|
212
|
+
src: string | Buffer;
|
|
213
|
+
}
|
|
214
|
+
interface CustomDocDefinition {
|
|
215
|
+
pageSize?: PDFKit.PDFDocumentOptions["size"];
|
|
216
|
+
margins: PageMargins;
|
|
217
|
+
/** Optional font registrations (custom TTF/OTF) */
|
|
218
|
+
fonts?: FontRegistration[];
|
|
219
|
+
header?: HeaderDef;
|
|
220
|
+
pageBackground?: PageBackgroundDef;
|
|
221
|
+
watermark?: WatermarkDef;
|
|
222
|
+
content: Block[];
|
|
223
|
+
styles?: Record<string, StyleDef>;
|
|
224
|
+
footer?: FooterInput;
|
|
225
|
+
}
|
|
226
|
+
interface HeaderDef {
|
|
227
|
+
blocks: Block[];
|
|
228
|
+
visible?: boolean;
|
|
229
|
+
marginTop?: number;
|
|
230
|
+
marginBottom?: number;
|
|
231
|
+
marginLeft?: number;
|
|
232
|
+
marginRight?: number;
|
|
233
|
+
backgroundColor?: string;
|
|
234
|
+
backgroundImage?: string | Buffer;
|
|
235
|
+
}
|
|
236
|
+
interface FooterDef {
|
|
237
|
+
blocks: Block[];
|
|
238
|
+
visible?: boolean;
|
|
239
|
+
marginTop?: number;
|
|
240
|
+
marginBottom?: number;
|
|
241
|
+
marginLeft?: number;
|
|
242
|
+
marginRight?: number;
|
|
243
|
+
backgroundColor?: string;
|
|
244
|
+
backgroundImage?: string | Buffer;
|
|
245
|
+
}
|
|
246
|
+
type FooterInput = FooterDef | Block | Block[] | ((pageNumber: number, pageSize: {
|
|
247
|
+
width: number;
|
|
248
|
+
height: number;
|
|
249
|
+
}) => FooterDef | Block | Block[] | null | undefined);
|
|
250
|
+
interface BaseBlock {
|
|
251
|
+
visible?: boolean;
|
|
252
|
+
}
|
|
253
|
+
type Block = TextBlock | ImageBlock | QrCodeBlock | BarcodeBlock | LineBlock | ColumnsBlock | TableBlock | PageBreakBlock | KeyValueGridBlock | SignatureBlock;
|
|
254
|
+
|
|
255
|
+
type BarcodeType = "CODE128" | "EAN13" | "CODE39" | "ITF" | "CODE93";
|
|
256
|
+
declare const BARCODE_TYPES: Record<BarcodeType, BarcodeType>;
|
|
257
|
+
interface BarcodeBlock extends BaseBlock {
|
|
258
|
+
type: "barcode";
|
|
259
|
+
value?: string;
|
|
260
|
+
src?: string | Buffer;
|
|
261
|
+
bcType?: BarcodeType;
|
|
262
|
+
width?: number;
|
|
263
|
+
height?: number;
|
|
264
|
+
align?: Alignment;
|
|
265
|
+
marginTop?: number;
|
|
266
|
+
marginBottom?: number;
|
|
267
|
+
marginLeft?: number;
|
|
268
|
+
marginRight?: number;
|
|
269
|
+
orientation?: Orientation;
|
|
270
|
+
rotate?: number;
|
|
271
|
+
scale?: number;
|
|
272
|
+
barHeight?: number;
|
|
273
|
+
includetext?: boolean;
|
|
274
|
+
textalign?: "left" | "center" | "right";
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
interface PageContext {
|
|
278
|
+
pageNumber: number;
|
|
279
|
+
currentY: number;
|
|
280
|
+
signatureBlock: SignatureBlock | null;
|
|
281
|
+
signatureTopY: number | null;
|
|
282
|
+
signatureHeight: number;
|
|
283
|
+
signaturePlaced: boolean;
|
|
284
|
+
afterSignature: boolean;
|
|
285
|
+
inFooter: boolean;
|
|
286
|
+
}
|
|
287
|
+
interface RenderEnv {
|
|
288
|
+
marginLeft: number;
|
|
289
|
+
innerWidth: number;
|
|
290
|
+
allowPageBreak: boolean;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
declare function renderCustomPdf(def: CustomDocDefinition, outputPath: string): Promise<void>;
|
|
294
|
+
declare function renderCustomPdfToBuffer(def: CustomDocDefinition): Promise<Buffer>;
|
|
295
|
+
|
|
296
|
+
export { type Alignment, BARCODE_TYPES, type BarcodeBlock, type BarcodeType, type BaseBlock, type Block, type BuiltInFont, type ColumnsBlock, type CustomDocDefinition, type FontName, type FontRegistration, type FooterDef, type FooterInput, type HeaderDef, type ImageBlock, type InlineTextStyle, type KeyValueGridBlock, type KeyValueItem, type LineBlock, type Orientation, type PageBackgroundDef, type PageBreakBlock, type PageContext, type PageMargins, type QRErrorLevel, QR_ERROR_LEVEL, type QrCodeBlock, type RenderEnv, type SignatureBlock, type StyleDef, type StyleRef, type TableBlock, type TableCell, type TextBlock, type WatermarkDef, type WatermarkMode, type Width, renderCustomPdf, renderCustomPdfToBuffer };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,296 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
interface SignatureBlock extends BaseBlock {
|
|
2
|
+
type: "signature";
|
|
3
|
+
height: number;
|
|
4
|
+
blocks?: Block[];
|
|
5
|
+
image?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
width?: number;
|
|
8
|
+
marginLeft?: number;
|
|
9
|
+
marginRight?: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface KeyValueItem {
|
|
13
|
+
key: string;
|
|
14
|
+
value: string;
|
|
15
|
+
keyStyle?: StyleRef;
|
|
16
|
+
valueStyle?: StyleRef;
|
|
17
|
+
keyTextStyle?: InlineTextStyle;
|
|
18
|
+
valueTextStyle?: InlineTextStyle;
|
|
19
|
+
keyAlign?: Alignment;
|
|
20
|
+
valueAlign?: Alignment;
|
|
21
|
+
}
|
|
22
|
+
interface KeyValueGridBlock extends BaseBlock {
|
|
23
|
+
type: "keyValueGrid";
|
|
24
|
+
columns: KeyValueItem[][];
|
|
25
|
+
columnGap?: number;
|
|
26
|
+
keyWidth?: Width;
|
|
27
|
+
columnWidths?: (Width | undefined)[];
|
|
28
|
+
orientation?: Orientation;
|
|
29
|
+
verticalKeyValueGap?: number;
|
|
30
|
+
keyStyle?: StyleRef;
|
|
31
|
+
valueStyle?: StyleRef;
|
|
32
|
+
keyTextStyle?: InlineTextStyle;
|
|
33
|
+
valueTextStyle?: InlineTextStyle;
|
|
34
|
+
keyAlign?: Alignment;
|
|
35
|
+
valueAlign?: Alignment;
|
|
36
|
+
separator?: string;
|
|
37
|
+
separatorGap?: number;
|
|
38
|
+
rowGap?: number;
|
|
39
|
+
marginTop?: number;
|
|
40
|
+
marginBottom?: number;
|
|
41
|
+
marginLeft?: number;
|
|
42
|
+
marginRight?: number;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
interface PageBreakBlock extends BaseBlock {
|
|
46
|
+
type: "pageBreak";
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
interface TableCell {
|
|
50
|
+
text: string;
|
|
51
|
+
italic?: boolean;
|
|
52
|
+
underline?: boolean;
|
|
53
|
+
link?: string;
|
|
54
|
+
strike?: boolean;
|
|
55
|
+
bold?: boolean;
|
|
56
|
+
fontSize?: number;
|
|
57
|
+
font?: FontName;
|
|
58
|
+
align?: Alignment;
|
|
59
|
+
color?: string;
|
|
60
|
+
fillColor?: string;
|
|
61
|
+
style?: StyleRef;
|
|
62
|
+
}
|
|
63
|
+
interface TableBlock extends BaseBlock {
|
|
64
|
+
type: "table";
|
|
65
|
+
headerRows?: number;
|
|
66
|
+
widths: Width[];
|
|
67
|
+
body: TableCell[][];
|
|
68
|
+
layout?: {
|
|
69
|
+
border?: "all" | "none";
|
|
70
|
+
hLineColor?: string;
|
|
71
|
+
vLineColor?: string;
|
|
72
|
+
};
|
|
73
|
+
lineGap?: number;
|
|
74
|
+
marginTop?: number;
|
|
75
|
+
marginBottom?: number;
|
|
76
|
+
marginLeft?: number;
|
|
77
|
+
marginRight?: number;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
interface ColumnsBlock extends BaseBlock {
|
|
81
|
+
type: "columns";
|
|
82
|
+
columns: Block[][];
|
|
83
|
+
gap?: number;
|
|
84
|
+
widths?: Width[];
|
|
85
|
+
mode?: "fixedGap" | "spaceBetween";
|
|
86
|
+
keepTogether?: boolean;
|
|
87
|
+
marginTop?: number;
|
|
88
|
+
marginBottom?: number;
|
|
89
|
+
marginLeft?: number;
|
|
90
|
+
marginRight?: number;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
interface LineBlock extends BaseBlock {
|
|
94
|
+
type: "line";
|
|
95
|
+
lineWidth?: number;
|
|
96
|
+
color?: string;
|
|
97
|
+
marginTop?: number;
|
|
98
|
+
marginBottom?: number;
|
|
99
|
+
marginLeft?: number;
|
|
100
|
+
marginRight?: number;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
type QRErrorLevel = "L" | "M" | "Q" | "H";
|
|
104
|
+
declare const QR_ERROR_LEVEL: {
|
|
105
|
+
LOW: QRErrorLevel;
|
|
106
|
+
MEDIUM: QRErrorLevel;
|
|
107
|
+
QUARTILE: QRErrorLevel;
|
|
108
|
+
HIGH: QRErrorLevel;
|
|
109
|
+
};
|
|
110
|
+
interface QrCodeBlock extends BaseBlock {
|
|
111
|
+
type: "qr";
|
|
112
|
+
value?: string;
|
|
113
|
+
src?: string | Buffer;
|
|
114
|
+
size?: number;
|
|
115
|
+
qrVersion?: number;
|
|
116
|
+
errorCorrectionLevel?: QRErrorLevel;
|
|
117
|
+
align?: Alignment;
|
|
118
|
+
marginTop?: number;
|
|
119
|
+
marginBottom?: number;
|
|
120
|
+
marginLeft?: number;
|
|
121
|
+
marginRight?: number;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
interface ImageBlock extends BaseBlock {
|
|
125
|
+
type: "image";
|
|
126
|
+
src?: string | Buffer;
|
|
127
|
+
width?: number;
|
|
128
|
+
height?: number;
|
|
129
|
+
align?: Alignment;
|
|
130
|
+
marginTop?: number;
|
|
131
|
+
marginBottom?: number;
|
|
132
|
+
marginLeft?: number;
|
|
133
|
+
marginRight?: number;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
interface TextBlock extends BaseBlock {
|
|
137
|
+
type: "text";
|
|
138
|
+
text: string;
|
|
139
|
+
fontSize?: number;
|
|
140
|
+
lineGap?: number;
|
|
141
|
+
align?: Alignment;
|
|
142
|
+
bold?: boolean;
|
|
143
|
+
italic?: boolean;
|
|
144
|
+
underline?: boolean;
|
|
145
|
+
strike?: boolean;
|
|
146
|
+
link?: string;
|
|
147
|
+
color?: string;
|
|
148
|
+
font?: FontName;
|
|
149
|
+
style?: StyleRef;
|
|
150
|
+
marginLeft?: number;
|
|
151
|
+
marginRight?: number;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
type Alignment = "left" | "right" | "center" | "justify";
|
|
155
|
+
type Orientation = "horizontal" | "vertical";
|
|
156
|
+
type Width = number | "*";
|
|
157
|
+
type InlineTextStyle = Omit<TextBlock, "type" | "text" | "style">;
|
|
158
|
+
type BuiltInFont = "Helvetica" | "Helvetica-Bold" | "Helvetica-Oblique" | "Helvetica-BoldOblique" | "Times-Roman" | "Times-Bold" | "Times-Italic" | "Times-BoldItalic" | "Courier" | "Courier-Bold" | "Courier-Oblique" | "Courier-BoldOblique";
|
|
159
|
+
/**
|
|
160
|
+
* FontName:
|
|
161
|
+
* - autocomplete for built-ins
|
|
162
|
+
* - but still allows any custom string when you registerFont
|
|
163
|
+
*/
|
|
164
|
+
type FontName = BuiltInFont | (string & {});
|
|
165
|
+
/**
|
|
166
|
+
* Style definition similar to pdfmake's style object.
|
|
167
|
+
* Can be applied to text blocks and table cells.
|
|
168
|
+
*/
|
|
169
|
+
interface StyleDef {
|
|
170
|
+
italic?: boolean;
|
|
171
|
+
underline?: boolean;
|
|
172
|
+
link?: string;
|
|
173
|
+
strike?: boolean;
|
|
174
|
+
fontSize?: number;
|
|
175
|
+
lineGap?: number;
|
|
176
|
+
align?: Alignment;
|
|
177
|
+
bold?: boolean;
|
|
178
|
+
color?: string;
|
|
179
|
+
fillColor?: string;
|
|
180
|
+
font?: FontName;
|
|
181
|
+
}
|
|
182
|
+
/** Shared style reference field (single or multiple style names). */
|
|
183
|
+
type StyleRef = string | string[] | undefined;
|
|
184
|
+
interface PageMargins {
|
|
185
|
+
/**
|
|
186
|
+
* TOP is treated as header band height.
|
|
187
|
+
* BOTTOM is treated as footer band height.
|
|
188
|
+
* LEFT/RIGHT are used for content only.
|
|
189
|
+
*/
|
|
190
|
+
top: number;
|
|
191
|
+
right: number;
|
|
192
|
+
bottom: number;
|
|
193
|
+
left: number;
|
|
194
|
+
}
|
|
195
|
+
type WatermarkMode = "all" | "first" | "last" | "firstLast" | "exceptFirst" | "exceptLast" | "exceptFirstLast";
|
|
196
|
+
interface WatermarkDef {
|
|
197
|
+
text: string;
|
|
198
|
+
opacity?: number;
|
|
199
|
+
fontSize?: number;
|
|
200
|
+
color?: string;
|
|
201
|
+
angle?: number;
|
|
202
|
+
mode?: WatermarkMode;
|
|
203
|
+
}
|
|
204
|
+
interface PageBackgroundDef {
|
|
205
|
+
/** Path or Buffer for the image to be used as full-page background */
|
|
206
|
+
src?: string | Buffer;
|
|
207
|
+
/** Optional global opacity for background (0–1). Default: 1 */
|
|
208
|
+
opacity?: number;
|
|
209
|
+
}
|
|
210
|
+
interface FontRegistration {
|
|
211
|
+
name: FontName;
|
|
212
|
+
src: string | Buffer;
|
|
213
|
+
}
|
|
214
|
+
interface CustomDocDefinition {
|
|
215
|
+
pageSize?: PDFKit.PDFDocumentOptions["size"];
|
|
216
|
+
margins: PageMargins;
|
|
217
|
+
/** Optional font registrations (custom TTF/OTF) */
|
|
218
|
+
fonts?: FontRegistration[];
|
|
219
|
+
header?: HeaderDef;
|
|
220
|
+
pageBackground?: PageBackgroundDef;
|
|
221
|
+
watermark?: WatermarkDef;
|
|
222
|
+
content: Block[];
|
|
223
|
+
styles?: Record<string, StyleDef>;
|
|
224
|
+
footer?: FooterInput;
|
|
225
|
+
}
|
|
226
|
+
interface HeaderDef {
|
|
227
|
+
blocks: Block[];
|
|
228
|
+
visible?: boolean;
|
|
229
|
+
marginTop?: number;
|
|
230
|
+
marginBottom?: number;
|
|
231
|
+
marginLeft?: number;
|
|
232
|
+
marginRight?: number;
|
|
233
|
+
backgroundColor?: string;
|
|
234
|
+
backgroundImage?: string | Buffer;
|
|
235
|
+
}
|
|
236
|
+
interface FooterDef {
|
|
237
|
+
blocks: Block[];
|
|
238
|
+
visible?: boolean;
|
|
239
|
+
marginTop?: number;
|
|
240
|
+
marginBottom?: number;
|
|
241
|
+
marginLeft?: number;
|
|
242
|
+
marginRight?: number;
|
|
243
|
+
backgroundColor?: string;
|
|
244
|
+
backgroundImage?: string | Buffer;
|
|
245
|
+
}
|
|
246
|
+
type FooterInput = FooterDef | Block | Block[] | ((pageNumber: number, pageSize: {
|
|
247
|
+
width: number;
|
|
248
|
+
height: number;
|
|
249
|
+
}) => FooterDef | Block | Block[] | null | undefined);
|
|
250
|
+
interface BaseBlock {
|
|
251
|
+
visible?: boolean;
|
|
252
|
+
}
|
|
253
|
+
type Block = TextBlock | ImageBlock | QrCodeBlock | BarcodeBlock | LineBlock | ColumnsBlock | TableBlock | PageBreakBlock | KeyValueGridBlock | SignatureBlock;
|
|
254
|
+
|
|
255
|
+
type BarcodeType = "CODE128" | "EAN13" | "CODE39" | "ITF" | "CODE93";
|
|
256
|
+
declare const BARCODE_TYPES: Record<BarcodeType, BarcodeType>;
|
|
257
|
+
interface BarcodeBlock extends BaseBlock {
|
|
258
|
+
type: "barcode";
|
|
259
|
+
value?: string;
|
|
260
|
+
src?: string | Buffer;
|
|
261
|
+
bcType?: BarcodeType;
|
|
262
|
+
width?: number;
|
|
263
|
+
height?: number;
|
|
264
|
+
align?: Alignment;
|
|
265
|
+
marginTop?: number;
|
|
266
|
+
marginBottom?: number;
|
|
267
|
+
marginLeft?: number;
|
|
268
|
+
marginRight?: number;
|
|
269
|
+
orientation?: Orientation;
|
|
270
|
+
rotate?: number;
|
|
271
|
+
scale?: number;
|
|
272
|
+
barHeight?: number;
|
|
273
|
+
includetext?: boolean;
|
|
274
|
+
textalign?: "left" | "center" | "right";
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
interface PageContext {
|
|
278
|
+
pageNumber: number;
|
|
279
|
+
currentY: number;
|
|
280
|
+
signatureBlock: SignatureBlock | null;
|
|
281
|
+
signatureTopY: number | null;
|
|
282
|
+
signatureHeight: number;
|
|
283
|
+
signaturePlaced: boolean;
|
|
284
|
+
afterSignature: boolean;
|
|
285
|
+
inFooter: boolean;
|
|
286
|
+
}
|
|
287
|
+
interface RenderEnv {
|
|
288
|
+
marginLeft: number;
|
|
289
|
+
innerWidth: number;
|
|
290
|
+
allowPageBreak: boolean;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
declare function renderCustomPdf(def: CustomDocDefinition, outputPath: string): Promise<void>;
|
|
294
|
+
declare function renderCustomPdfToBuffer(def: CustomDocDefinition): Promise<Buffer>;
|
|
295
|
+
|
|
296
|
+
export { type Alignment, BARCODE_TYPES, type BarcodeBlock, type BarcodeType, type BaseBlock, type Block, type BuiltInFont, type ColumnsBlock, type CustomDocDefinition, type FontName, type FontRegistration, type FooterDef, type FooterInput, type HeaderDef, type ImageBlock, type InlineTextStyle, type KeyValueGridBlock, type KeyValueItem, type LineBlock, type Orientation, type PageBackgroundDef, type PageBreakBlock, type PageContext, type PageMargins, type QRErrorLevel, QR_ERROR_LEVEL, type QrCodeBlock, type RenderEnv, type SignatureBlock, type StyleDef, type StyleRef, type TableBlock, type TableCell, type TextBlock, type WatermarkDef, type WatermarkMode, type Width, renderCustomPdf, renderCustomPdfToBuffer };
|