@pdfme/generator 1.1.5 → 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.
- package/dist/cjs/src/generate.js +6 -5
- package/dist/cjs/src/generate.js.map +1 -1
- package/dist/cjs/src/helper/draw.js +111 -0
- package/dist/cjs/src/helper/draw.js.map +1 -0
- package/dist/cjs/src/{helper.js → helper/index.js} +28 -130
- package/dist/cjs/src/helper/index.js.map +1 -0
- package/dist/cjs/src/index.js +3 -2
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/esm/src/generate.js +2 -1
- package/dist/esm/src/generate.js.map +1 -1
- package/dist/esm/src/helper/draw.js +106 -0
- package/dist/esm/src/helper/draw.js.map +1 -0
- package/dist/esm/src/helper/index.js +179 -0
- package/dist/esm/src/helper/index.js.map +1 -0
- package/dist/esm/src/index.js +2 -2
- package/dist/esm/src/index.js.map +1 -1
- package/dist/types/src/helper/draw.d.ts +17 -0
- package/dist/types/src/helper/index.d.ts +51 -0
- package/dist/types/src/index.d.ts +4 -3
- package/package.json +2 -2
- package/src/generate.ts +3 -7
- package/src/helper/draw.ts +165 -0
- package/src/helper/index.ts +236 -0
- package/src/index.ts +39 -5
- package/src/type.d.ts +19 -0
- package/dist/cjs/src/helper.js.map +0 -1
- package/dist/esm/src/helper.js +0 -285
- package/dist/esm/src/helper.js.map +0 -1
- package/dist/types/src/helper.d.ts +0 -68
- package/src/helper.ts +0 -423
    
        package/dist/cjs/src/generate.js
    CHANGED
    
    | @@ -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  | 
| 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,  | 
| 27 | 
            -
                const pagesAndBoxes = yield (0,  | 
| 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,  | 
| 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,  | 
| 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":";;;;;;;;;;;;;;AAAA,qCAAsC;AACtC,+DAAuC;AAEvC,0CAAwF;AACxF, | 
| 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. | 
| 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) =>  | 
| 45 | 
            -
                     | 
| 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  | 
| 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 | 
            -
                 | 
| 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 | 
            -
             | 
| 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. | 
| 296 | 
            -
            //# sourceMappingURL= | 
| 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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"}
         | 
    
        package/dist/cjs/src/index.js
    CHANGED
    
    | @@ -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 | 
            -
             | 
| 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; | 
| 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"}
         | 
    
        package/dist/esm/src/generate.js
    CHANGED
    
    | @@ -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,  | 
| 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":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO, | 
| 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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"}
         |