@pdfme/generator 1.1.9 → 1.2.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/cjs/__tests__/generate.test.js +96 -83
- package/dist/cjs/__tests__/generate.test.js.map +1 -1
- package/dist/cjs/src/generate.js +33 -14
- package/dist/cjs/src/generate.js.map +1 -1
- package/dist/cjs/src/helper.js +30 -44
- package/dist/cjs/src/helper.js.map +1 -1
- package/dist/cjs/src/index.js +2 -2
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/esm/__tests__/generate.test.js +96 -83
- package/dist/esm/__tests__/generate.test.js.map +1 -1
- package/dist/esm/src/generate.js +10 -11
- package/dist/esm/src/generate.js.map +1 -1
- package/dist/esm/src/helper.js +31 -45
- package/dist/esm/src/helper.js.map +1 -1
- package/dist/esm/src/index.js +2 -2
- package/dist/esm/src/index.js.map +1 -1
- package/dist/types/__tests__/assets/templates/index.d.ts +156 -0
- package/dist/types/src/helper.d.ts +5 -5
- package/dist/types/src/index.d.ts +2 -2
- package/package.json +4 -4
- package/src/generate.ts +23 -18
- package/src/helper.ts +38 -47
- package/src/index.ts +2 -2
- package/tsconfig.json +6 -0
- package/type.d.ts +1 -0
@@ -11,6 +11,10 @@ declare const _default: {
|
|
11
11
|
fontName?: string | undefined;
|
12
12
|
fontColor?: string | undefined;
|
13
13
|
characterSpacing?: number | undefined;
|
14
|
+
dynamicFontSize?: {
|
15
|
+
max: number;
|
16
|
+
min: number;
|
17
|
+
} | undefined;
|
14
18
|
type: "text";
|
15
19
|
height: number;
|
16
20
|
width: number;
|
@@ -51,6 +55,10 @@ declare const _default: {
|
|
51
55
|
fontName?: string | undefined;
|
52
56
|
fontColor?: string | undefined;
|
53
57
|
characterSpacing?: number | undefined;
|
58
|
+
dynamicFontSize?: {
|
59
|
+
max: number;
|
60
|
+
min: number;
|
61
|
+
} | undefined;
|
54
62
|
type: "text";
|
55
63
|
height: number;
|
56
64
|
width: number;
|
@@ -91,6 +99,10 @@ declare const _default: {
|
|
91
99
|
fontName?: string | undefined;
|
92
100
|
fontColor?: string | undefined;
|
93
101
|
characterSpacing?: number | undefined;
|
102
|
+
dynamicFontSize?: {
|
103
|
+
max: number;
|
104
|
+
min: number;
|
105
|
+
} | undefined;
|
94
106
|
type: "text";
|
95
107
|
height: number;
|
96
108
|
width: number;
|
@@ -131,6 +143,10 @@ declare const _default: {
|
|
131
143
|
fontName?: string | undefined;
|
132
144
|
fontColor?: string | undefined;
|
133
145
|
characterSpacing?: number | undefined;
|
146
|
+
dynamicFontSize?: {
|
147
|
+
max: number;
|
148
|
+
min: number;
|
149
|
+
} | undefined;
|
134
150
|
type: "text";
|
135
151
|
height: number;
|
136
152
|
width: number;
|
@@ -171,6 +187,10 @@ declare const _default: {
|
|
171
187
|
fontName?: string | undefined;
|
172
188
|
fontColor?: string | undefined;
|
173
189
|
characterSpacing?: number | undefined;
|
190
|
+
dynamicFontSize?: {
|
191
|
+
max: number;
|
192
|
+
min: number;
|
193
|
+
} | undefined;
|
174
194
|
type: "text";
|
175
195
|
height: number;
|
176
196
|
width: number;
|
@@ -211,6 +231,10 @@ declare const _default: {
|
|
211
231
|
fontName?: string | undefined;
|
212
232
|
fontColor?: string | undefined;
|
213
233
|
characterSpacing?: number | undefined;
|
234
|
+
dynamicFontSize?: {
|
235
|
+
max: number;
|
236
|
+
min: number;
|
237
|
+
} | undefined;
|
214
238
|
type: "text";
|
215
239
|
height: number;
|
216
240
|
width: number;
|
@@ -251,6 +275,10 @@ declare const _default: {
|
|
251
275
|
fontName?: string | undefined;
|
252
276
|
fontColor?: string | undefined;
|
253
277
|
characterSpacing?: number | undefined;
|
278
|
+
dynamicFontSize?: {
|
279
|
+
max: number;
|
280
|
+
min: number;
|
281
|
+
} | undefined;
|
254
282
|
type: "text";
|
255
283
|
height: number;
|
256
284
|
width: number;
|
@@ -291,6 +319,10 @@ declare const _default: {
|
|
291
319
|
fontName?: string | undefined;
|
292
320
|
fontColor?: string | undefined;
|
293
321
|
characterSpacing?: number | undefined;
|
322
|
+
dynamicFontSize?: {
|
323
|
+
max: number;
|
324
|
+
min: number;
|
325
|
+
} | undefined;
|
294
326
|
type: "text";
|
295
327
|
height: number;
|
296
328
|
width: number;
|
@@ -331,6 +363,10 @@ declare const _default: {
|
|
331
363
|
fontName?: string | undefined;
|
332
364
|
fontColor?: string | undefined;
|
333
365
|
characterSpacing?: number | undefined;
|
366
|
+
dynamicFontSize?: {
|
367
|
+
max: number;
|
368
|
+
min: number;
|
369
|
+
} | undefined;
|
334
370
|
type: "text";
|
335
371
|
height: number;
|
336
372
|
width: number;
|
@@ -371,6 +407,10 @@ declare const _default: {
|
|
371
407
|
fontName?: string | undefined;
|
372
408
|
fontColor?: string | undefined;
|
373
409
|
characterSpacing?: number | undefined;
|
410
|
+
dynamicFontSize?: {
|
411
|
+
max: number;
|
412
|
+
min: number;
|
413
|
+
} | undefined;
|
374
414
|
type: "text";
|
375
415
|
height: number;
|
376
416
|
width: number;
|
@@ -411,6 +451,10 @@ declare const _default: {
|
|
411
451
|
fontName?: string | undefined;
|
412
452
|
fontColor?: string | undefined;
|
413
453
|
characterSpacing?: number | undefined;
|
454
|
+
dynamicFontSize?: {
|
455
|
+
max: number;
|
456
|
+
min: number;
|
457
|
+
} | undefined;
|
414
458
|
type: "text";
|
415
459
|
height: number;
|
416
460
|
width: number;
|
@@ -451,6 +495,10 @@ declare const _default: {
|
|
451
495
|
fontName?: string | undefined;
|
452
496
|
fontColor?: string | undefined;
|
453
497
|
characterSpacing?: number | undefined;
|
498
|
+
dynamicFontSize?: {
|
499
|
+
max: number;
|
500
|
+
min: number;
|
501
|
+
} | undefined;
|
454
502
|
type: "text";
|
455
503
|
height: number;
|
456
504
|
width: number;
|
@@ -491,6 +539,10 @@ declare const _default: {
|
|
491
539
|
fontName?: string | undefined;
|
492
540
|
fontColor?: string | undefined;
|
493
541
|
characterSpacing?: number | undefined;
|
542
|
+
dynamicFontSize?: {
|
543
|
+
max: number;
|
544
|
+
min: number;
|
545
|
+
} | undefined;
|
494
546
|
type: "text";
|
495
547
|
height: number;
|
496
548
|
width: number;
|
@@ -531,6 +583,10 @@ declare const _default: {
|
|
531
583
|
fontName?: string | undefined;
|
532
584
|
fontColor?: string | undefined;
|
533
585
|
characterSpacing?: number | undefined;
|
586
|
+
dynamicFontSize?: {
|
587
|
+
max: number;
|
588
|
+
min: number;
|
589
|
+
} | undefined;
|
534
590
|
type: "text";
|
535
591
|
height: number;
|
536
592
|
width: number;
|
@@ -571,6 +627,10 @@ declare const _default: {
|
|
571
627
|
fontName?: string | undefined;
|
572
628
|
fontColor?: string | undefined;
|
573
629
|
characterSpacing?: number | undefined;
|
630
|
+
dynamicFontSize?: {
|
631
|
+
max: number;
|
632
|
+
min: number;
|
633
|
+
} | undefined;
|
574
634
|
type: "text";
|
575
635
|
height: number;
|
576
636
|
width: number;
|
@@ -611,6 +671,10 @@ declare const _default: {
|
|
611
671
|
fontName?: string | undefined;
|
612
672
|
fontColor?: string | undefined;
|
613
673
|
characterSpacing?: number | undefined;
|
674
|
+
dynamicFontSize?: {
|
675
|
+
max: number;
|
676
|
+
min: number;
|
677
|
+
} | undefined;
|
614
678
|
type: "text";
|
615
679
|
height: number;
|
616
680
|
width: number;
|
@@ -651,6 +715,10 @@ declare const _default: {
|
|
651
715
|
fontName?: string | undefined;
|
652
716
|
fontColor?: string | undefined;
|
653
717
|
characterSpacing?: number | undefined;
|
718
|
+
dynamicFontSize?: {
|
719
|
+
max: number;
|
720
|
+
min: number;
|
721
|
+
} | undefined;
|
654
722
|
type: "text";
|
655
723
|
height: number;
|
656
724
|
width: number;
|
@@ -691,6 +759,10 @@ declare const _default: {
|
|
691
759
|
fontName?: string | undefined;
|
692
760
|
fontColor?: string | undefined;
|
693
761
|
characterSpacing?: number | undefined;
|
762
|
+
dynamicFontSize?: {
|
763
|
+
max: number;
|
764
|
+
min: number;
|
765
|
+
} | undefined;
|
694
766
|
type: "text";
|
695
767
|
height: number;
|
696
768
|
width: number;
|
@@ -731,6 +803,10 @@ declare const _default: {
|
|
731
803
|
fontName?: string | undefined;
|
732
804
|
fontColor?: string | undefined;
|
733
805
|
characterSpacing?: number | undefined;
|
806
|
+
dynamicFontSize?: {
|
807
|
+
max: number;
|
808
|
+
min: number;
|
809
|
+
} | undefined;
|
734
810
|
type: "text";
|
735
811
|
height: number;
|
736
812
|
width: number;
|
@@ -771,6 +847,10 @@ declare const _default: {
|
|
771
847
|
fontName?: string | undefined;
|
772
848
|
fontColor?: string | undefined;
|
773
849
|
characterSpacing?: number | undefined;
|
850
|
+
dynamicFontSize?: {
|
851
|
+
max: number;
|
852
|
+
min: number;
|
853
|
+
} | undefined;
|
774
854
|
type: "text";
|
775
855
|
height: number;
|
776
856
|
width: number;
|
@@ -811,6 +891,10 @@ declare const _default: {
|
|
811
891
|
fontName?: string | undefined;
|
812
892
|
fontColor?: string | undefined;
|
813
893
|
characterSpacing?: number | undefined;
|
894
|
+
dynamicFontSize?: {
|
895
|
+
max: number;
|
896
|
+
min: number;
|
897
|
+
} | undefined;
|
814
898
|
type: "text";
|
815
899
|
height: number;
|
816
900
|
width: number;
|
@@ -851,6 +935,10 @@ declare const _default: {
|
|
851
935
|
fontName?: string | undefined;
|
852
936
|
fontColor?: string | undefined;
|
853
937
|
characterSpacing?: number | undefined;
|
938
|
+
dynamicFontSize?: {
|
939
|
+
max: number;
|
940
|
+
min: number;
|
941
|
+
} | undefined;
|
854
942
|
type: "text";
|
855
943
|
height: number;
|
856
944
|
width: number;
|
@@ -891,6 +979,10 @@ declare const _default: {
|
|
891
979
|
fontName?: string | undefined;
|
892
980
|
fontColor?: string | undefined;
|
893
981
|
characterSpacing?: number | undefined;
|
982
|
+
dynamicFontSize?: {
|
983
|
+
max: number;
|
984
|
+
min: number;
|
985
|
+
} | undefined;
|
894
986
|
type: "text";
|
895
987
|
height: number;
|
896
988
|
width: number;
|
@@ -931,6 +1023,10 @@ declare const _default: {
|
|
931
1023
|
fontName?: string | undefined;
|
932
1024
|
fontColor?: string | undefined;
|
933
1025
|
characterSpacing?: number | undefined;
|
1026
|
+
dynamicFontSize?: {
|
1027
|
+
max: number;
|
1028
|
+
min: number;
|
1029
|
+
} | undefined;
|
934
1030
|
type: "text";
|
935
1031
|
height: number;
|
936
1032
|
width: number;
|
@@ -971,6 +1067,10 @@ declare const _default: {
|
|
971
1067
|
fontName?: string | undefined;
|
972
1068
|
fontColor?: string | undefined;
|
973
1069
|
characterSpacing?: number | undefined;
|
1070
|
+
dynamicFontSize?: {
|
1071
|
+
max: number;
|
1072
|
+
min: number;
|
1073
|
+
} | undefined;
|
974
1074
|
type: "text";
|
975
1075
|
height: number;
|
976
1076
|
width: number;
|
@@ -1011,6 +1111,10 @@ declare const _default: {
|
|
1011
1111
|
fontName?: string | undefined;
|
1012
1112
|
fontColor?: string | undefined;
|
1013
1113
|
characterSpacing?: number | undefined;
|
1114
|
+
dynamicFontSize?: {
|
1115
|
+
max: number;
|
1116
|
+
min: number;
|
1117
|
+
} | undefined;
|
1014
1118
|
type: "text";
|
1015
1119
|
height: number;
|
1016
1120
|
width: number;
|
@@ -1051,6 +1155,10 @@ declare const _default: {
|
|
1051
1155
|
fontName?: string | undefined;
|
1052
1156
|
fontColor?: string | undefined;
|
1053
1157
|
characterSpacing?: number | undefined;
|
1158
|
+
dynamicFontSize?: {
|
1159
|
+
max: number;
|
1160
|
+
min: number;
|
1161
|
+
} | undefined;
|
1054
1162
|
type: "text";
|
1055
1163
|
height: number;
|
1056
1164
|
width: number;
|
@@ -1091,6 +1199,10 @@ declare const _default: {
|
|
1091
1199
|
fontName?: string | undefined;
|
1092
1200
|
fontColor?: string | undefined;
|
1093
1201
|
characterSpacing?: number | undefined;
|
1202
|
+
dynamicFontSize?: {
|
1203
|
+
max: number;
|
1204
|
+
min: number;
|
1205
|
+
} | undefined;
|
1094
1206
|
type: "text";
|
1095
1207
|
height: number;
|
1096
1208
|
width: number;
|
@@ -1131,6 +1243,10 @@ declare const _default: {
|
|
1131
1243
|
fontName?: string | undefined;
|
1132
1244
|
fontColor?: string | undefined;
|
1133
1245
|
characterSpacing?: number | undefined;
|
1246
|
+
dynamicFontSize?: {
|
1247
|
+
max: number;
|
1248
|
+
min: number;
|
1249
|
+
} | undefined;
|
1134
1250
|
type: "text";
|
1135
1251
|
height: number;
|
1136
1252
|
width: number;
|
@@ -1171,6 +1287,10 @@ declare const _default: {
|
|
1171
1287
|
fontName?: string | undefined;
|
1172
1288
|
fontColor?: string | undefined;
|
1173
1289
|
characterSpacing?: number | undefined;
|
1290
|
+
dynamicFontSize?: {
|
1291
|
+
max: number;
|
1292
|
+
min: number;
|
1293
|
+
} | undefined;
|
1174
1294
|
type: "text";
|
1175
1295
|
height: number;
|
1176
1296
|
width: number;
|
@@ -1211,6 +1331,10 @@ declare const _default: {
|
|
1211
1331
|
fontName?: string | undefined;
|
1212
1332
|
fontColor?: string | undefined;
|
1213
1333
|
characterSpacing?: number | undefined;
|
1334
|
+
dynamicFontSize?: {
|
1335
|
+
max: number;
|
1336
|
+
min: number;
|
1337
|
+
} | undefined;
|
1214
1338
|
type: "text";
|
1215
1339
|
height: number;
|
1216
1340
|
width: number;
|
@@ -1251,6 +1375,10 @@ declare const _default: {
|
|
1251
1375
|
fontName?: string | undefined;
|
1252
1376
|
fontColor?: string | undefined;
|
1253
1377
|
characterSpacing?: number | undefined;
|
1378
|
+
dynamicFontSize?: {
|
1379
|
+
max: number;
|
1380
|
+
min: number;
|
1381
|
+
} | undefined;
|
1254
1382
|
type: "text";
|
1255
1383
|
height: number;
|
1256
1384
|
width: number;
|
@@ -1291,6 +1419,10 @@ declare const _default: {
|
|
1291
1419
|
fontName?: string | undefined;
|
1292
1420
|
fontColor?: string | undefined;
|
1293
1421
|
characterSpacing?: number | undefined;
|
1422
|
+
dynamicFontSize?: {
|
1423
|
+
max: number;
|
1424
|
+
min: number;
|
1425
|
+
} | undefined;
|
1294
1426
|
type: "text";
|
1295
1427
|
height: number;
|
1296
1428
|
width: number;
|
@@ -1331,6 +1463,10 @@ declare const _default: {
|
|
1331
1463
|
fontName?: string | undefined;
|
1332
1464
|
fontColor?: string | undefined;
|
1333
1465
|
characterSpacing?: number | undefined;
|
1466
|
+
dynamicFontSize?: {
|
1467
|
+
max: number;
|
1468
|
+
min: number;
|
1469
|
+
} | undefined;
|
1334
1470
|
type: "text";
|
1335
1471
|
height: number;
|
1336
1472
|
width: number;
|
@@ -1371,6 +1507,10 @@ declare const _default: {
|
|
1371
1507
|
fontName?: string | undefined;
|
1372
1508
|
fontColor?: string | undefined;
|
1373
1509
|
characterSpacing?: number | undefined;
|
1510
|
+
dynamicFontSize?: {
|
1511
|
+
max: number;
|
1512
|
+
min: number;
|
1513
|
+
} | undefined;
|
1374
1514
|
type: "text";
|
1375
1515
|
height: number;
|
1376
1516
|
width: number;
|
@@ -1411,6 +1551,10 @@ declare const _default: {
|
|
1411
1551
|
fontName?: string | undefined;
|
1412
1552
|
fontColor?: string | undefined;
|
1413
1553
|
characterSpacing?: number | undefined;
|
1554
|
+
dynamicFontSize?: {
|
1555
|
+
max: number;
|
1556
|
+
min: number;
|
1557
|
+
} | undefined;
|
1414
1558
|
type: "text";
|
1415
1559
|
height: number;
|
1416
1560
|
width: number;
|
@@ -1451,6 +1595,10 @@ declare const _default: {
|
|
1451
1595
|
fontName?: string | undefined;
|
1452
1596
|
fontColor?: string | undefined;
|
1453
1597
|
characterSpacing?: number | undefined;
|
1598
|
+
dynamicFontSize?: {
|
1599
|
+
max: number;
|
1600
|
+
min: number;
|
1601
|
+
} | undefined;
|
1454
1602
|
type: "text";
|
1455
1603
|
height: number;
|
1456
1604
|
width: number;
|
@@ -1491,6 +1639,10 @@ declare const _default: {
|
|
1491
1639
|
fontName?: string | undefined;
|
1492
1640
|
fontColor?: string | undefined;
|
1493
1641
|
characterSpacing?: number | undefined;
|
1642
|
+
dynamicFontSize?: {
|
1643
|
+
max: number;
|
1644
|
+
min: number;
|
1645
|
+
} | undefined;
|
1494
1646
|
type: "text";
|
1495
1647
|
height: number;
|
1496
1648
|
width: number;
|
@@ -1531,6 +1683,10 @@ declare const _default: {
|
|
1531
1683
|
fontName?: string | undefined;
|
1532
1684
|
fontColor?: string | undefined;
|
1533
1685
|
characterSpacing?: number | undefined;
|
1686
|
+
dynamicFontSize?: {
|
1687
|
+
max: number;
|
1688
|
+
min: number;
|
1689
|
+
} | undefined;
|
1534
1690
|
type: "text";
|
1535
1691
|
height: number;
|
1536
1692
|
width: number;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/// <reference types="node" />
|
2
|
-
import { PDFPage, PDFFont, PDFDocument, PDFImage, PDFEmbeddedPage } from 'pdf-lib';
|
2
|
+
import { PDFPage, PDFFont, PDFDocument, PDFImage, PDFEmbeddedPage } from '@pdfme/pdf-lib';
|
3
3
|
import { Schema, Font, BasePdf, BarCodeType } from '@pdfme/common';
|
4
4
|
export interface InputImageCache {
|
5
5
|
[key: string]: PDFImage | undefined;
|
@@ -44,12 +44,12 @@ export declare const getEmbeddedPagesAndEmbedPdfBoxes: (arg: {
|
|
44
44
|
embeddedPages: PDFEmbeddedPage[];
|
45
45
|
embedPdfBoxes: EmbedPdfBox[];
|
46
46
|
}>;
|
47
|
-
interface
|
48
|
-
|
47
|
+
interface FontSetting {
|
48
|
+
font: Font;
|
49
|
+
pdfFontObj: {
|
49
50
|
[key: string]: PDFFont;
|
50
51
|
};
|
51
52
|
fallbackFontName: string;
|
52
|
-
splitThreshold: number;
|
53
53
|
}
|
54
54
|
export declare const drawInputByTemplateSchema: (arg: {
|
55
55
|
input: string;
|
@@ -57,7 +57,7 @@ export declare const drawInputByTemplateSchema: (arg: {
|
|
57
57
|
pdfDoc: PDFDocument;
|
58
58
|
page: PDFPage;
|
59
59
|
pageHeight: number;
|
60
|
-
|
60
|
+
fontSetting: FontSetting;
|
61
61
|
inputImageCache: InputImageCache;
|
62
62
|
}) => Promise<void>;
|
63
63
|
export declare const drawEmbeddedPage: (arg: {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import generate from './generate.js';
|
2
|
-
import { BLANK_PDF,
|
2
|
+
import { BLANK_PDF, DEFAULT_FONT_VALUE, isTextSchema, isImageSchema, isBarcodeSchema, checkTemplate, checkUIProps, checkPreviewProps, checkDesignerProps, checkGenerateProps, validateBarcodeInput } from '@pdfme/common';
|
3
3
|
import type { Lang, Size, Alignment, SchemaType, BarCodeType, TextSchema, ImageSchema, BarcodeSchema, Schema, SchemaForUI, Font, BasePdf, Template, CommonProps, GeneratorOptions, GenerateProps, UIOptions, UIProps, PreviewProps, DesignerProps } from '@pdfme/common';
|
4
|
-
export { generate, BLANK_PDF,
|
4
|
+
export { generate, BLANK_PDF, DEFAULT_FONT_VALUE, isTextSchema, isImageSchema, isBarcodeSchema, checkTemplate, checkUIProps, checkPreviewProps, checkDesignerProps, checkGenerateProps, validateBarcodeInput, };
|
5
5
|
export type { Lang, Size, Alignment, SchemaType, BarCodeType, TextSchema, ImageSchema, BarcodeSchema, Schema, SchemaForUI, Font, BasePdf, Template, CommonProps, GeneratorOptions, GenerateProps, UIOptions, UIProps, PreviewProps, DesignerProps, };
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@pdfme/generator",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.2.0",
|
4
4
|
"sideEffects": false,
|
5
5
|
"author": "hand-dot",
|
6
6
|
"license": "MIT",
|
@@ -46,11 +46,11 @@
|
|
46
46
|
"prune": "ts-prune src"
|
47
47
|
},
|
48
48
|
"dependencies": {
|
49
|
-
"@
|
50
|
-
"@pdfme/
|
49
|
+
"@pdfme/common": "file:../common",
|
50
|
+
"@pdfme/pdf-lib": "^1.17.3",
|
51
51
|
"atob": "^2.1.2",
|
52
52
|
"bwip-js": "^3.2.2",
|
53
|
-
"
|
53
|
+
"fontkit": "^2.0.2"
|
54
54
|
},
|
55
55
|
"devDependencies": {
|
56
56
|
"@types/bwip-js": "^3.0.0",
|
package/src/generate.ts
CHANGED
@@ -1,7 +1,16 @@
|
|
1
|
-
import { PDFDocument } from 'pdf-lib';
|
2
|
-
import fontkit from '
|
3
|
-
import type {
|
4
|
-
|
1
|
+
import { PDFDocument } from '@pdfme/pdf-lib';
|
2
|
+
import * as fontkit from 'fontkit';
|
3
|
+
import type {
|
4
|
+
Font,
|
5
|
+
GenerateProps,
|
6
|
+
SchemaInputs,
|
7
|
+
Template,
|
8
|
+
} from '@pdfme/common';
|
9
|
+
import {
|
10
|
+
getDefaultFont,
|
11
|
+
getFallbackFontName,
|
12
|
+
checkGenerateProps,
|
13
|
+
} from '@pdfme/common';
|
5
14
|
import {
|
6
15
|
getEmbeddedPagesAndEmbedPdfBoxes,
|
7
16
|
drawInputByTemplateSchema,
|
@@ -11,25 +20,20 @@ import {
|
|
11
20
|
} from './helper.js';
|
12
21
|
import { TOOL_NAME } from './constants.js';
|
13
22
|
|
14
|
-
const preprocessing = async (arg: {
|
15
|
-
inputs: { [key: string]: string }[];
|
16
|
-
template: Template;
|
17
|
-
font: Font;
|
18
|
-
}) => {
|
23
|
+
const preprocessing = async (arg: { inputs: SchemaInputs[]; template: Template; font: Font }) => {
|
19
24
|
const { template, font } = arg;
|
20
|
-
|
21
25
|
const { basePdf } = template;
|
26
|
+
const fallbackFontName = getFallbackFontName(font);
|
22
27
|
|
23
28
|
const pdfDoc = await PDFDocument.create();
|
24
29
|
pdfDoc.registerFontkit(fontkit);
|
25
30
|
|
26
|
-
const
|
27
|
-
const fontObj = await embedAndGetFontObj({ pdfDoc, font });
|
31
|
+
const pdfFontObj = await embedAndGetFontObj({ pdfDoc, font });
|
28
32
|
|
29
33
|
const pagesAndBoxes = await getEmbeddedPagesAndEmbedPdfBoxes({ pdfDoc, basePdf });
|
30
34
|
const { embeddedPages, embedPdfBoxes } = pagesAndBoxes;
|
31
35
|
|
32
|
-
return { pdfDoc,
|
36
|
+
return { pdfDoc, pdfFontObj, fallbackFontName, embeddedPages, embedPdfBoxes };
|
33
37
|
};
|
34
38
|
|
35
39
|
const postProcessing = (pdfDoc: PDFDocument) => {
|
@@ -40,11 +44,13 @@ const postProcessing = (pdfDoc: PDFDocument) => {
|
|
40
44
|
const generate = async (props: GenerateProps) => {
|
41
45
|
checkGenerateProps(props);
|
42
46
|
const { inputs, template, options = {} } = props;
|
43
|
-
const { font = getDefaultFont()
|
47
|
+
const { font = getDefaultFont() } = options;
|
44
48
|
const { schemas } = template;
|
45
49
|
|
50
|
+
|
51
|
+
|
46
52
|
const preRes = await preprocessing({ inputs, template, font });
|
47
|
-
const { pdfDoc,
|
53
|
+
const { pdfDoc, pdfFontObj, fallbackFontName, embeddedPages, embedPdfBoxes } = preRes;
|
48
54
|
|
49
55
|
const inputImageCache: InputImageCache = {};
|
50
56
|
for (let i = 0; i < inputs.length; i += 1) {
|
@@ -63,16 +69,15 @@ const generate = async (props: GenerateProps) => {
|
|
63
69
|
const schema = schemas[j];
|
64
70
|
const templateSchema = schema[key];
|
65
71
|
const input = inputObj[key];
|
66
|
-
const
|
72
|
+
const fontSetting = { font, pdfFontObj, fallbackFontName };
|
67
73
|
|
68
|
-
// eslint-disable-next-line no-await-in-loop
|
69
74
|
await drawInputByTemplateSchema({
|
70
75
|
input,
|
71
76
|
templateSchema,
|
72
77
|
pdfDoc,
|
73
78
|
page,
|
74
79
|
pageHeight,
|
75
|
-
|
80
|
+
fontSetting,
|
76
81
|
inputImageCache,
|
77
82
|
});
|
78
83
|
}
|