@pdfme/generator 1.1.4 → 1.1.6

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.
@@ -15,7 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const pdf_lib_1 = require("pdf-lib");
16
16
  const fontkit_1 = __importDefault(require("@pdf-lib/fontkit"));
17
17
  const common_1 = require("@pdfme/common");
18
- const helper_js_1 = require("./helper.js");
18
+ const index_js_1 = require("./helper/index.js");
19
+ const draw_js_1 = require("./helper/draw.js");
19
20
  const constants_js_1 = require("./constants.js");
20
21
  const preprocessing = (arg) => __awaiter(void 0, void 0, void 0, function* () {
21
22
  const { template, font } = arg;
@@ -23,8 +24,8 @@ const preprocessing = (arg) => __awaiter(void 0, void 0, void 0, function* () {
23
24
  const pdfDoc = yield pdf_lib_1.PDFDocument.create();
24
25
  pdfDoc.registerFontkit(fontkit_1.default);
25
26
  const fallbackFontName = (0, common_1.getFallbackFontName)(font);
26
- const fontObj = yield (0, helper_js_1.embedAndGetFontObj)({ pdfDoc, font });
27
- const pagesAndBoxes = yield (0, helper_js_1.getEmbeddedPagesAndEmbedPdfBoxes)({ pdfDoc, basePdf });
27
+ const fontObj = yield (0, index_js_1.embedAndGetFontObj)({ pdfDoc, font });
28
+ const pagesAndBoxes = yield (0, index_js_1.getEmbeddedPagesAndEmbedPdfBoxes)({ pdfDoc, basePdf });
28
29
  const { embeddedPages, embedPdfBoxes } = pagesAndBoxes;
29
30
  return { pdfDoc, fontObj, fallbackFontName, embeddedPages, embedPdfBoxes };
30
31
  });
@@ -48,7 +49,7 @@ const generate = (props) => __awaiter(void 0, void 0, void 0, function* () {
48
49
  const { width: pageWidth, height: pageHeight } = embeddedPage;
49
50
  const embedPdfBox = embedPdfBoxes[j];
50
51
  const page = pdfDoc.addPage([pageWidth, pageHeight]);
51
- (0, helper_js_1.drawEmbeddedPage)({ page, embeddedPage, embedPdfBox });
52
+ (0, draw_js_1.drawEmbeddedPage)({ page, embeddedPage, embedPdfBox });
52
53
  for (let l = 0; l < keys.length; l += 1) {
53
54
  const key = keys[l];
54
55
  const schema = schemas[j];
@@ -56,7 +57,7 @@ const generate = (props) => __awaiter(void 0, void 0, void 0, function* () {
56
57
  const input = inputObj[key];
57
58
  const textSchemaSetting = { fontObj, fallbackFontName, splitThreshold };
58
59
  // eslint-disable-next-line no-await-in-loop
59
- yield (0, helper_js_1.drawInputByTemplateSchema)({
60
+ yield (0, draw_js_1.drawInputByTemplateSchema)({
60
61
  input,
61
62
  templateSchema,
62
63
  pdfDoc,
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.drawEmbeddedPage = exports.drawInputByTemplateSchema = void 0;
13
+ const pdf_lib_1 = require("pdf-lib");
14
+ const common_1 = require("@pdfme/common");
15
+ const index_js_1 = require("./index.js");
16
+ const drawInputByTextSchema = (arg) => {
17
+ const { input, textSchema, page, pageHeight, textSchemaSetting } = arg;
18
+ const { fontObj, fallbackFontName, splitThreshold } = textSchemaSetting;
19
+ const fontValue = fontObj[textSchema.fontName ? textSchema.fontName : fallbackFontName];
20
+ const opt = (0, index_js_1.getDrawOption)({ schema: textSchema, pageHeight });
21
+ if (textSchema.backgroundColor) {
22
+ page.drawRectangle(Object.assign(Object.assign({}, opt), { color: (0, index_js_1.hex2RgbColor)(textSchema.backgroundColor) }));
23
+ }
24
+ const { width, rotate } = opt;
25
+ const { size, color, alignment, lineHeight, characterSpacing } = (0, index_js_1.getFontProp)(textSchema);
26
+ page.pushOperators((0, pdf_lib_1.setCharacterSpacing)(characterSpacing));
27
+ let beforeLineOver = 0;
28
+ input.split(/\r|\n|\r\n/g).forEach((inputLine, inputLineIndex) => {
29
+ const isOverEval = (testString) => {
30
+ const testStringWidth = fontValue.widthOfTextAtSize(testString, size) + (testString.length - 1) * characterSpacing;
31
+ /**
32
+ * split if the difference is less then two pixel
33
+ * (found out / tested this threshold heuristically, most probably widthOfTextAtSize is unprecise)
34
+ **/
35
+ return width - testStringWidth <= splitThreshold;
36
+ };
37
+ const splitedLines = (0, index_js_1.getSplittedLines)(inputLine, isOverEval);
38
+ const drawLine = (splitedLine, splitedLineIndex) => {
39
+ const textWidth = fontValue.widthOfTextAtSize(splitedLine, size) +
40
+ (splitedLine.length - 1) * characterSpacing;
41
+ page.drawText(splitedLine, {
42
+ x: (0, index_js_1.calcX)(textSchema.position.x, alignment, width, textWidth),
43
+ y: (0, index_js_1.calcY)(textSchema.position.y, pageHeight, size) -
44
+ lineHeight * size * (inputLineIndex + splitedLineIndex + beforeLineOver) -
45
+ (lineHeight === 0 ? 0 : ((lineHeight - 1) * size) / 2),
46
+ rotate,
47
+ size,
48
+ color,
49
+ lineHeight: lineHeight * size,
50
+ maxWidth: width,
51
+ font: fontValue,
52
+ wordBreaks: [''],
53
+ });
54
+ if (splitedLines.length === splitedLineIndex + 1)
55
+ beforeLineOver += splitedLineIndex;
56
+ };
57
+ splitedLines.forEach(drawLine);
58
+ });
59
+ };
60
+ const getCacheKey = (schema, input) => `${schema.type}${input}`;
61
+ const drawInputByImageSchema = (arg) => __awaiter(void 0, void 0, void 0, function* () {
62
+ const { input, imageSchema, pageHeight, pdfDoc, page, inputImageCache } = arg;
63
+ const inputImageCacheKey = getCacheKey(imageSchema, input);
64
+ let image = inputImageCache[inputImageCacheKey];
65
+ if (!image) {
66
+ const isPng = input.startsWith('data:image/png;');
67
+ image = yield (isPng ? pdfDoc.embedPng(input) : pdfDoc.embedJpg(input));
68
+ }
69
+ inputImageCache[inputImageCacheKey] = image;
70
+ page.drawImage(image, (0, index_js_1.getDrawOption)({ schema: imageSchema, pageHeight }));
71
+ });
72
+ const drawInputByBarcodeSchema = (arg) => __awaiter(void 0, void 0, void 0, function* () {
73
+ const { input, barcodeSchema, pageHeight, pdfDoc, page, inputImageCache } = arg;
74
+ if (!(0, common_1.validateBarcodeInput)(barcodeSchema.type, input))
75
+ return;
76
+ const inputBarcodeCacheKey = getCacheKey(barcodeSchema, input);
77
+ let image = inputImageCache[inputBarcodeCacheKey];
78
+ if (!image) {
79
+ const imageBuf = yield (0, index_js_1.createBarCode)(Object.assign(barcodeSchema, { type: barcodeSchema.type, input }));
80
+ image = yield pdfDoc.embedPng(imageBuf);
81
+ }
82
+ inputImageCache[inputBarcodeCacheKey] = image;
83
+ page.drawImage(image, (0, index_js_1.getDrawOption)({ schema: barcodeSchema, pageHeight }));
84
+ });
85
+ const drawInputByTemplateSchema = (arg) => __awaiter(void 0, void 0, void 0, function* () {
86
+ if (!arg.input || !arg.templateSchema)
87
+ return;
88
+ if ((0, common_1.isTextSchema)(arg.templateSchema)) {
89
+ const templateSchema = arg.templateSchema;
90
+ drawInputByTextSchema(Object.assign(Object.assign({}, arg), { textSchema: templateSchema }));
91
+ }
92
+ else if ((0, common_1.isImageSchema)(arg.templateSchema)) {
93
+ const templateSchema = arg.templateSchema;
94
+ yield drawInputByImageSchema(Object.assign(Object.assign({}, arg), { imageSchema: templateSchema }));
95
+ }
96
+ else if ((0, common_1.isBarcodeSchema)(arg.templateSchema)) {
97
+ const templateSchema = arg.templateSchema;
98
+ yield drawInputByBarcodeSchema(Object.assign(Object.assign({}, arg), { barcodeSchema: templateSchema }));
99
+ }
100
+ });
101
+ exports.drawInputByTemplateSchema = drawInputByTemplateSchema;
102
+ const drawEmbeddedPage = (arg) => {
103
+ const { page, embeddedPage, embedPdfBox } = arg;
104
+ page.drawPage(embeddedPage);
105
+ const { mediaBox: mb, bleedBox: bb, trimBox: tb } = embedPdfBox;
106
+ page.setMediaBox(mb.x, mb.y, mb.width, mb.height);
107
+ page.setBleedBox(bb.x, bb.y, bb.width, bb.height);
108
+ page.setTrimBox(tb.x, tb.y, tb.width, tb.height);
109
+ };
110
+ exports.drawEmbeddedPage = drawEmbeddedPage;
111
+ //# sourceMappingURL=draw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw.js","sourceRoot":"","sources":["../../../../src/helper/draw.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.drawEmbeddedPage = exports.drawInputByTemplateSchema = exports.getEmbeddedPagesAndEmbedPdfBoxes = exports.embedAndGetFontObj = exports.createBarCode = void 0;
15
+ exports.getSplittedLines = exports.calcY = exports.calcX = exports.getFontProp = exports.hex2RgbColor = exports.getDrawOption = exports.getEmbeddedPagesAndEmbedPdfBoxes = exports.embedAndGetFontObj = exports.createBarCode = void 0;
16
16
  const pdf_lib_1 = require("pdf-lib");
17
17
  const bwip_js_1 = __importDefault(require("bwip-js"));
18
18
  const common_1 = require("@pdfme/common");
@@ -41,8 +41,15 @@ const createBarCode = (arg) => __awaiter(void 0, void 0, void 0, function* () {
41
41
  exports.createBarCode = createBarCode;
42
42
  const embedAndGetFontObj = (arg) => __awaiter(void 0, void 0, void 0, function* () {
43
43
  const { pdfDoc, font } = arg;
44
- const fontValues = yield Promise.all(Object.values(font).map((v) => pdfDoc.embedFont(v.data, {
45
- subset: typeof v.subset === 'undefined' ? true : v.subset,
44
+ const fontValues = yield Promise.all(Object.values(font).map((v) => __awaiter(void 0, void 0, void 0, function* () {
45
+ let font = v.data;
46
+ if (typeof v.data === 'string' && v.data.startsWith('http')) {
47
+ const url = v.data;
48
+ font = yield fetch(url).then((res) => res.arrayBuffer());
49
+ }
50
+ return pdfDoc.embedFont(v.data, {
51
+ subset: typeof v.subset === 'undefined' ? true : v.subset,
52
+ });
46
53
  })));
47
54
  return Object.keys(font).reduce((acc, cur, i) => Object.assign(acc, { [cur]: fontValues[i] }), {});
48
55
  });
@@ -73,12 +80,20 @@ const mm2pt = (mm) => {
73
80
  const ptRatio = 2.8346;
74
81
  return parseFloat(String(mm)) * ptRatio;
75
82
  };
76
- const getSchemaSizeAndRotate = (schema) => {
83
+ const getDrawOption = (arg) => {
84
+ const { schema, pageHeight } = arg;
77
85
  const width = mm2pt(schema.width);
78
86
  const height = mm2pt(schema.height);
79
87
  const rotate = (0, pdf_lib_1.degrees)(schema.rotate ? schema.rotate : 0);
80
- return { width, height, rotate };
88
+ rotate.angle = rotate.angle * -1;
89
+ const alignment = (0, common_1.isTextSchema)(schema) ? schema.alignment || 'left' : 'left';
90
+ const x = (0, exports.calcX)(schema.position.x, alignment, width, width);
91
+ const y = (0, exports.calcY)(schema.position.y, pageHeight, height);
92
+ // TODO adjust x, y by rotate angle
93
+ // because pdf-lib rotate from letf-top, but we rotate from center
94
+ return { x, y, rotate, width, height };
81
95
  };
96
+ exports.getDrawOption = getDrawOption;
82
97
  const hex2rgb = (hex) => {
83
98
  if (hex.slice(0, 1) === '#')
84
99
  hex = hex.slice(1);
@@ -100,15 +115,17 @@ const hex2RgbColor = (hexString) => {
100
115
  // eslint-disable-next-line no-undefined
101
116
  return undefined;
102
117
  };
118
+ exports.hex2RgbColor = hex2RgbColor;
103
119
  const getFontProp = (schema) => {
104
120
  var _a, _b, _c, _d, _e;
105
121
  const size = (_a = schema.fontSize) !== null && _a !== void 0 ? _a : common_1.DEFAULT_FONT_SIZE;
106
- const color = hex2RgbColor((_b = schema.fontColor) !== null && _b !== void 0 ? _b : common_1.DEFAULT_FONT_COLOR);
122
+ const color = (0, exports.hex2RgbColor)((_b = schema.fontColor) !== null && _b !== void 0 ? _b : common_1.DEFAULT_FONT_COLOR);
107
123
  const alignment = (_c = schema.alignment) !== null && _c !== void 0 ? _c : common_1.DEFAULT_ALIGNMENT;
108
124
  const lineHeight = (_d = schema.lineHeight) !== null && _d !== void 0 ? _d : common_1.DEFAULT_LINE_HEIGHT;
109
125
  const characterSpacing = (_e = schema.characterSpacing) !== null && _e !== void 0 ? _e : common_1.DEFAULT_CHARACTER_SPACING;
110
126
  return { size, color, alignment, lineHeight, characterSpacing };
111
127
  };
128
+ exports.getFontProp = getFontProp;
112
129
  const calcX = (x, alignment, boxWidth, textWidth) => {
113
130
  let addition = 0;
114
131
  if (alignment === 'center') {
@@ -119,21 +136,9 @@ const calcX = (x, alignment, boxWidth, textWidth) => {
119
136
  }
120
137
  return mm2pt(x) + addition;
121
138
  };
139
+ exports.calcX = calcX;
122
140
  const calcY = (y, height, itemHeight) => height - mm2pt(y) - itemHeight;
123
- const drawBackgroundColor = (arg) => {
124
- const { templateSchema, page, pageHeight } = arg;
125
- if (!templateSchema.backgroundColor)
126
- return;
127
- const { width, height } = getSchemaSizeAndRotate(templateSchema);
128
- const color = hex2RgbColor(templateSchema.backgroundColor);
129
- page.drawRectangle({
130
- x: calcX(templateSchema.position.x, 'left', width, width),
131
- y: calcY(templateSchema.position.y, pageHeight, height),
132
- width,
133
- height,
134
- color,
135
- });
136
- };
141
+ exports.calcY = calcY;
137
142
  /**
138
143
  * Incrementally check the current line for it's real length
139
144
  * and return the position where it exceeds the box width.
@@ -183,114 +188,7 @@ const getSplittedLines = (inputLine, isOverEval) => {
183
188
  if (rest.length === 0) {
184
189
  return [splittedLine];
185
190
  }
186
- return [splittedLine, ...getSplittedLines(rest, isOverEval)];
187
- };
188
- const drawInputByTextSchema = (arg) => {
189
- const { input, templateSchema, page, pageHeight, textSchemaSetting } = arg;
190
- const { fontObj, fallbackFontName, splitThreshold } = textSchemaSetting;
191
- const fontValue = fontObj[templateSchema.fontName ? templateSchema.fontName : fallbackFontName];
192
- drawBackgroundColor({ templateSchema, page, pageHeight });
193
- const { width, rotate } = getSchemaSizeAndRotate(templateSchema);
194
- const { size, color, alignment, lineHeight, characterSpacing } = getFontProp(templateSchema);
195
- page.pushOperators((0, pdf_lib_1.setCharacterSpacing)(characterSpacing));
196
- let beforeLineOver = 0;
197
- input.split(/\r|\n|\r\n/g).forEach((inputLine, inputLineIndex) => {
198
- const isOverEval = (testString) => {
199
- const testStringWidth = fontValue.widthOfTextAtSize(testString, size) + (testString.length - 1) * characterSpacing;
200
- /**
201
- * split if the difference is less then two pixel
202
- * (found out / tested this threshold heuristically, most probably widthOfTextAtSize is unprecise)
203
- **/
204
- return width - testStringWidth <= splitThreshold;
205
- };
206
- const splitedLines = getSplittedLines(inputLine, isOverEval);
207
- const drawLine = (splitedLine, splitedLineIndex) => {
208
- const textWidth = fontValue.widthOfTextAtSize(splitedLine, size) +
209
- (splitedLine.length - 1) * characterSpacing;
210
- page.drawText(splitedLine, {
211
- x: calcX(templateSchema.position.x, alignment, width, textWidth),
212
- y: calcY(templateSchema.position.y, pageHeight, size) -
213
- lineHeight * size * (inputLineIndex + splitedLineIndex + beforeLineOver) -
214
- (lineHeight === 0 ? 0 : ((lineHeight - 1) * size) / 2),
215
- rotate,
216
- size,
217
- color,
218
- lineHeight: lineHeight * size,
219
- maxWidth: width,
220
- font: fontValue,
221
- wordBreaks: [''],
222
- });
223
- if (splitedLines.length === splitedLineIndex + 1)
224
- beforeLineOver += splitedLineIndex;
225
- };
226
- splitedLines.forEach(drawLine);
227
- });
228
- };
229
- const getCacheKey = (templateSchema, input) => `${templateSchema.type}${input}`;
230
- const drawInputByImageSchema = (arg) => __awaiter(void 0, void 0, void 0, function* () {
231
- const { input, templateSchema, pageHeight, pdfDoc, page, inputImageCache } = arg;
232
- const { width, height, rotate } = getSchemaSizeAndRotate(templateSchema);
233
- const opt = {
234
- x: calcX(templateSchema.position.x, 'left', width, width),
235
- y: calcY(templateSchema.position.y, pageHeight, height),
236
- rotate,
237
- width,
238
- height,
239
- };
240
- const inputImageCacheKey = getCacheKey(templateSchema, input);
241
- let image = inputImageCache[inputImageCacheKey];
242
- if (!image) {
243
- const isPng = input.startsWith('data:image/png;');
244
- image = yield (isPng ? pdfDoc.embedPng(input) : pdfDoc.embedJpg(input));
245
- }
246
- inputImageCache[inputImageCacheKey] = image;
247
- page.drawImage(image, opt);
248
- });
249
- const drawInputByBarcodeSchema = (arg) => __awaiter(void 0, void 0, void 0, function* () {
250
- const { input, templateSchema, pageHeight, pdfDoc, page, inputImageCache } = arg;
251
- if (!(0, common_1.validateBarcodeInput)(templateSchema.type, input))
252
- return;
253
- const { width, height, rotate } = getSchemaSizeAndRotate(templateSchema);
254
- const opt = {
255
- x: calcX(templateSchema.position.x, 'left', width, width),
256
- y: calcY(templateSchema.position.y, pageHeight, height),
257
- rotate,
258
- width,
259
- height,
260
- };
261
- const inputBarcodeCacheKey = getCacheKey(templateSchema, input);
262
- let image = inputImageCache[inputBarcodeCacheKey];
263
- if (!image) {
264
- const imageBuf = yield (0, exports.createBarCode)(Object.assign(templateSchema, { type: templateSchema.type, input }));
265
- image = yield pdfDoc.embedPng(imageBuf);
266
- }
267
- inputImageCache[inputBarcodeCacheKey] = image;
268
- page.drawImage(image, opt);
269
- });
270
- const drawInputByTemplateSchema = (arg) => __awaiter(void 0, void 0, void 0, function* () {
271
- if (!arg.input || !arg.templateSchema)
272
- return;
273
- if ((0, common_1.isTextSchema)(arg.templateSchema)) {
274
- const templateSchema = arg.templateSchema;
275
- drawInputByTextSchema(Object.assign(Object.assign({}, arg), { templateSchema }));
276
- }
277
- else if ((0, common_1.isImageSchema)(arg.templateSchema)) {
278
- const templateSchema = arg.templateSchema;
279
- yield drawInputByImageSchema(Object.assign(Object.assign({}, arg), { templateSchema }));
280
- }
281
- else if ((0, common_1.isBarcodeSchema)(arg.templateSchema)) {
282
- const templateSchema = arg.templateSchema;
283
- yield drawInputByBarcodeSchema(Object.assign(Object.assign({}, arg), { templateSchema }));
284
- }
285
- });
286
- exports.drawInputByTemplateSchema = drawInputByTemplateSchema;
287
- const drawEmbeddedPage = (arg) => {
288
- const { page, embeddedPage, embedPdfBox } = arg;
289
- page.drawPage(embeddedPage);
290
- const { mediaBox: mb, bleedBox: bb, trimBox: tb } = embedPdfBox;
291
- page.setMediaBox(mb.x, mb.y, mb.width, mb.height);
292
- page.setBleedBox(bb.x, bb.y, bb.width, bb.height);
293
- page.setTrimBox(tb.x, tb.y, tb.width, tb.height);
191
+ return [splittedLine, ...(0, exports.getSplittedLines)(rest, isOverEval)];
294
192
  };
295
- exports.drawEmbeddedPage = drawEmbeddedPage;
296
- //# sourceMappingURL=helper.js.map
193
+ exports.getSplittedLines = getSplittedLines;
194
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helper/index.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.validateBarcodeInput = exports.checkGenerateProps = exports.checkDesignerProps = exports.checkPreviewProps = exports.checkUIProps = exports.checkTemplate = exports.isBarcodeSchema = exports.isImageSchema = exports.isTextSchema = exports.BLANK_PDF = exports.generate = void 0;
6
+ exports.validateBarcodeInput = exports.checkGenerateProps = exports.checkDesignerProps = exports.checkPreviewProps = exports.checkUIProps = exports.checkTemplate = exports.isBarcodeSchema = exports.isImageSchema = exports.isTextSchema = exports.HELVETICA = exports.BLANK_PDF = exports.generate = void 0;
7
7
  const generate_js_1 = __importDefault(require("./generate.js"));
8
8
  exports.generate = generate_js_1.default;
9
- var common_1 = require("@pdfme/common");
9
+ const common_1 = require("@pdfme/common");
10
10
  Object.defineProperty(exports, "BLANK_PDF", { enumerable: true, get: function () { return common_1.BLANK_PDF; } });
11
+ Object.defineProperty(exports, "HELVETICA", { enumerable: true, get: function () { return common_1.HELVETICA; } });
11
12
  Object.defineProperty(exports, "isTextSchema", { enumerable: true, get: function () { return common_1.isTextSchema; } });
12
13
  Object.defineProperty(exports, "isImageSchema", { enumerable: true, get: function () { return common_1.isImageSchema; } });
13
14
  Object.defineProperty(exports, "isBarcodeSchema", { enumerable: true, get: function () { return common_1.isBarcodeSchema; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAE5B,mBAFF,qBAAQ,CAEE;AAyBjB,wCAWuB;AAVrB,mGAAA,SAAS,OAAA;AACT,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AACZ,2GAAA,iBAAiB,OAAA;AACjB,4GAAA,kBAAkB,OAAA;AAClB,4GAAA,kBAAkB,OAAA;AAClB,8GAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAsCnC,mBAtCK,qBAAQ,CAsCL;AArCV,0CAYuB;AA0BrB,0FArCA,kBAAS,OAqCA;AACT,0FArCA,kBAAS,OAqCA;AACT,6FArCA,qBAAY,OAqCA;AACZ,8FArCA,sBAAa,OAqCA;AACb,gGArCA,wBAAe,OAqCA;AACf,8FArCA,sBAAa,OAqCA;AACb,6FArCA,qBAAY,OAqCA;AACZ,kGArCA,0BAAiB,OAqCA;AACjB,mGArCA,2BAAkB,OAqCA;AAClB,mGArCA,2BAAkB,OAqCA;AAClB,qGArCA,6BAAoB,OAqCA"}
@@ -10,7 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { PDFDocument } from 'pdf-lib';
11
11
  import fontkit from '@pdf-lib/fontkit';
12
12
  import { getDefaultFont, getFallbackFontName, checkGenerateProps } from '@pdfme/common';
13
- import { getEmbeddedPagesAndEmbedPdfBoxes, drawInputByTemplateSchema, drawEmbeddedPage, embedAndGetFontObj, } from './helper.js';
13
+ import { getEmbeddedPagesAndEmbedPdfBoxes, embedAndGetFontObj } from './helper/index.js';
14
+ import { drawInputByTemplateSchema, drawEmbeddedPage } from './helper/draw.js';
14
15
  import { TOOL_NAME } from './constants.js';
15
16
  const preprocessing = (arg) => __awaiter(void 0, void 0, void 0, function* () {
16
17
  const { template, font } = arg;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { setCharacterSpacing } from 'pdf-lib';
11
+ import { validateBarcodeInput, isTextSchema, isImageSchema, isBarcodeSchema, } from '@pdfme/common';
12
+ import { getDrawOption, hex2RgbColor, calcX, calcY, createBarCode, getFontProp, getSplittedLines, } from './index.js';
13
+ const drawInputByTextSchema = (arg) => {
14
+ const { input, textSchema, page, pageHeight, textSchemaSetting } = arg;
15
+ const { fontObj, fallbackFontName, splitThreshold } = textSchemaSetting;
16
+ const fontValue = fontObj[textSchema.fontName ? textSchema.fontName : fallbackFontName];
17
+ const opt = getDrawOption({ schema: textSchema, pageHeight });
18
+ if (textSchema.backgroundColor) {
19
+ page.drawRectangle(Object.assign(Object.assign({}, opt), { color: hex2RgbColor(textSchema.backgroundColor) }));
20
+ }
21
+ const { width, rotate } = opt;
22
+ const { size, color, alignment, lineHeight, characterSpacing } = getFontProp(textSchema);
23
+ page.pushOperators(setCharacterSpacing(characterSpacing));
24
+ let beforeLineOver = 0;
25
+ input.split(/\r|\n|\r\n/g).forEach((inputLine, inputLineIndex) => {
26
+ const isOverEval = (testString) => {
27
+ const testStringWidth = fontValue.widthOfTextAtSize(testString, size) + (testString.length - 1) * characterSpacing;
28
+ /**
29
+ * split if the difference is less then two pixel
30
+ * (found out / tested this threshold heuristically, most probably widthOfTextAtSize is unprecise)
31
+ **/
32
+ return width - testStringWidth <= splitThreshold;
33
+ };
34
+ const splitedLines = getSplittedLines(inputLine, isOverEval);
35
+ const drawLine = (splitedLine, splitedLineIndex) => {
36
+ const textWidth = fontValue.widthOfTextAtSize(splitedLine, size) +
37
+ (splitedLine.length - 1) * characterSpacing;
38
+ page.drawText(splitedLine, {
39
+ x: calcX(textSchema.position.x, alignment, width, textWidth),
40
+ y: calcY(textSchema.position.y, pageHeight, size) -
41
+ lineHeight * size * (inputLineIndex + splitedLineIndex + beforeLineOver) -
42
+ (lineHeight === 0 ? 0 : ((lineHeight - 1) * size) / 2),
43
+ rotate,
44
+ size,
45
+ color,
46
+ lineHeight: lineHeight * size,
47
+ maxWidth: width,
48
+ font: fontValue,
49
+ wordBreaks: [''],
50
+ });
51
+ if (splitedLines.length === splitedLineIndex + 1)
52
+ beforeLineOver += splitedLineIndex;
53
+ };
54
+ splitedLines.forEach(drawLine);
55
+ });
56
+ };
57
+ const getCacheKey = (schema, input) => `${schema.type}${input}`;
58
+ const drawInputByImageSchema = (arg) => __awaiter(void 0, void 0, void 0, function* () {
59
+ const { input, imageSchema, pageHeight, pdfDoc, page, inputImageCache } = arg;
60
+ const inputImageCacheKey = getCacheKey(imageSchema, input);
61
+ let image = inputImageCache[inputImageCacheKey];
62
+ if (!image) {
63
+ const isPng = input.startsWith('data:image/png;');
64
+ image = yield (isPng ? pdfDoc.embedPng(input) : pdfDoc.embedJpg(input));
65
+ }
66
+ inputImageCache[inputImageCacheKey] = image;
67
+ page.drawImage(image, getDrawOption({ schema: imageSchema, pageHeight }));
68
+ });
69
+ const drawInputByBarcodeSchema = (arg) => __awaiter(void 0, void 0, void 0, function* () {
70
+ const { input, barcodeSchema, pageHeight, pdfDoc, page, inputImageCache } = arg;
71
+ if (!validateBarcodeInput(barcodeSchema.type, input))
72
+ return;
73
+ const inputBarcodeCacheKey = getCacheKey(barcodeSchema, input);
74
+ let image = inputImageCache[inputBarcodeCacheKey];
75
+ if (!image) {
76
+ const imageBuf = yield createBarCode(Object.assign(barcodeSchema, { type: barcodeSchema.type, input }));
77
+ image = yield pdfDoc.embedPng(imageBuf);
78
+ }
79
+ inputImageCache[inputBarcodeCacheKey] = image;
80
+ page.drawImage(image, getDrawOption({ schema: barcodeSchema, pageHeight }));
81
+ });
82
+ export const drawInputByTemplateSchema = (arg) => __awaiter(void 0, void 0, void 0, function* () {
83
+ if (!arg.input || !arg.templateSchema)
84
+ return;
85
+ if (isTextSchema(arg.templateSchema)) {
86
+ const templateSchema = arg.templateSchema;
87
+ drawInputByTextSchema(Object.assign(Object.assign({}, arg), { textSchema: templateSchema }));
88
+ }
89
+ else if (isImageSchema(arg.templateSchema)) {
90
+ const templateSchema = arg.templateSchema;
91
+ yield drawInputByImageSchema(Object.assign(Object.assign({}, arg), { imageSchema: templateSchema }));
92
+ }
93
+ else if (isBarcodeSchema(arg.templateSchema)) {
94
+ const templateSchema = arg.templateSchema;
95
+ yield drawInputByBarcodeSchema(Object.assign(Object.assign({}, arg), { barcodeSchema: templateSchema }));
96
+ }
97
+ });
98
+ export const drawEmbeddedPage = (arg) => {
99
+ const { page, embeddedPage, embedPdfBox } = arg;
100
+ page.drawPage(embeddedPage);
101
+ const { mediaBox: mb, bleedBox: bb, trimBox: tb } = embedPdfBox;
102
+ page.setMediaBox(mb.x, mb.y, mb.width, mb.height);
103
+ page.setBleedBox(bb.x, bb.y, bb.width, bb.height);
104
+ page.setTrimBox(tb.x, tb.y, tb.width, tb.height);
105
+ };
106
+ //# sourceMappingURL=draw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw.js","sourceRoot":"","sources":["../../../../src/helper/draw.ts"],"names":[],"mappings":"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"}