@pdfme/generator 3.0.1 → 3.1.0-dev.1
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__/assets/templates/index.js +23 -46
- package/dist/cjs/__tests__/assets/templates/index.js.map +1 -1
- package/dist/cjs/__tests__/generate.test.js +36 -181
- package/dist/cjs/__tests__/generate.test.js.map +1 -1
- package/dist/cjs/__tests__/integration1.test.js +44 -0
- package/dist/cjs/__tests__/integration1.test.js.map +1 -0
- package/dist/cjs/__tests__/integration2.test.js +44 -0
- package/dist/cjs/__tests__/integration2.test.js.map +1 -0
- package/dist/cjs/__tests__/integration3.test.js +44 -0
- package/dist/cjs/__tests__/integration3.test.js.map +1 -0
- package/dist/cjs/__tests__/utils.js +59 -0
- package/dist/cjs/__tests__/utils.js.map +1 -0
- package/dist/cjs/src/generate.js +14 -24
- package/dist/cjs/src/generate.js.map +1 -1
- package/dist/cjs/src/pdfUtils.js +5 -14
- package/dist/cjs/src/pdfUtils.js.map +1 -1
- package/dist/esm/__tests__/assets/templates/index.js +22 -46
- package/dist/esm/__tests__/assets/templates/index.js.map +1 -1
- package/dist/esm/__tests__/generate.test.js +29 -151
- package/dist/esm/__tests__/generate.test.js.map +1 -1
- package/dist/esm/__tests__/integration1.test.js +39 -0
- package/dist/esm/__tests__/integration1.test.js.map +1 -0
- package/dist/esm/__tests__/integration2.test.js +39 -0
- package/dist/esm/__tests__/integration2.test.js.map +1 -0
- package/dist/esm/__tests__/integration3.test.js +39 -0
- package/dist/esm/__tests__/integration3.test.js.map +1 -0
- package/dist/esm/__tests__/utils.js +29 -0
- package/dist/esm/__tests__/utils.js.map +1 -0
- package/dist/esm/src/generate.js +11 -21
- package/dist/esm/src/generate.js.map +1 -1
- package/dist/esm/src/pdfUtils.js +5 -14
- package/dist/esm/src/pdfUtils.js.map +1 -1
- package/dist/types/__tests__/assets/templates/index.d.ts +29 -83
- package/dist/types/__tests__/integration1.test.d.ts +1 -0
- package/dist/types/__tests__/integration2.test.d.ts +1 -0
- package/dist/types/__tests__/integration3.test.d.ts +1 -0
- package/dist/types/__tests__/utils.d.ts +5 -0
- package/package.json +6 -3
- package/src/generate.ts +2 -2
- package/teardown.js +17 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const fs_1 = require("fs");
|
7
|
+
const generate_1 = __importDefault(require("../src/generate"));
|
8
|
+
const templates_1 = require("./assets/templates");
|
9
|
+
const schemas_1 = require("@pdfme/schemas");
|
10
|
+
const utils_1 = require("./utils");
|
11
|
+
describe('generate integration test(textType, other)', () => {
|
12
|
+
describe.each([templates_1.textType, templates_1.other])('%i', (templateData) => {
|
13
|
+
const entries = Object.entries(templateData);
|
14
|
+
for (let l = 0; l < entries.length; l += 1) {
|
15
|
+
const [key, template] = entries[l];
|
16
|
+
// eslint-disable-next-line no-loop-func
|
17
|
+
test(`snapshot ${key}`, async () => {
|
18
|
+
const inputs = template.sampledata;
|
19
|
+
const font = (0, utils_1.getFont)();
|
20
|
+
font.SauceHanSansJP.fallback = false;
|
21
|
+
font.SauceHanSerifJP.fallback = false;
|
22
|
+
font['NotoSerifJP-Regular'].fallback = false;
|
23
|
+
// @ts-ignore
|
24
|
+
font[template.fontName].fallback = true;
|
25
|
+
const hrstart = process.hrtime();
|
26
|
+
const pdf = await (0, generate_1.default)({
|
27
|
+
inputs,
|
28
|
+
template,
|
29
|
+
plugins: { text: schemas_1.text, image: schemas_1.image },
|
30
|
+
options: { font },
|
31
|
+
});
|
32
|
+
const hrend = process.hrtime(hrstart);
|
33
|
+
expect(hrend[0]).toBeLessThanOrEqual(1);
|
34
|
+
const tmpFile = (0, utils_1.getPdfTmpPath)(`${key}.pdf`);
|
35
|
+
const assertFile = (0, utils_1.getPdfAssertPath)(`${key}.pdf`);
|
36
|
+
(0, fs_1.writeFileSync)(tmpFile, pdf);
|
37
|
+
const res = await Promise.all([(0, utils_1.getPdf)(tmpFile), (0, utils_1.getPdf)(assertFile)]);
|
38
|
+
const [a, e] = res;
|
39
|
+
expect(a.Pages).toEqual(e.Pages);
|
40
|
+
});
|
41
|
+
}
|
42
|
+
});
|
43
|
+
});
|
44
|
+
//# sourceMappingURL=integration3.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"integration3.test.js","sourceRoot":"","sources":["../../../__tests__/integration3.test.ts"],"names":[],"mappings":";;;;;AAAA,2BAAmC;AACnC,+DAAuC;AACvC,kDAAqD;AACrD,4CAA6C;AAC7C,mCAA2E;AAE3E,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,QAAQ,CAAC,IAAI,CAAC,CAAC,oBAAQ,EAAE,iBAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1C,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAEnC,wCAAwC;YACxC,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAW,CAAC;gBAEpC,MAAM,IAAI,GAAG,IAAA,eAAO,GAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC7C,aAAa;gBACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAExC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAEjC,MAAM,GAAG,GAAG,MAAM,IAAA,kBAAQ,EAAC;oBACzB,MAAM;oBACN,QAAQ;oBACR,OAAO,EAAE,EAAE,IAAI,EAAJ,cAAI,EAAE,KAAK,EAAL,eAAK,EAAE;oBACxB,OAAO,EAAE,EAAE,IAAI,EAAE;iBAClB,CAAC,CAAC;gBAEH,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;gBAExC,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,GAAG,GAAG,MAAM,CAAC,CAAC;gBAC5C,MAAM,UAAU,GAAG,IAAA,wBAAgB,EAAC,GAAG,GAAG,MAAM,CAAC,CAAC;gBAElD,IAAA,kBAAa,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC5B,MAAM,GAAG,GAAQ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAA,cAAM,EAAC,OAAO,CAAC,EAAE,IAAA,cAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1E,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;gBACnB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.getPdfAssertPath = exports.getPdfTmpPath = exports.getPdf = exports.getFont = void 0;
|
27
|
+
const fs_1 = require("fs");
|
28
|
+
const path = __importStar(require("path"));
|
29
|
+
const PDFParser = require('pdf2json');
|
30
|
+
const SauceHanSansJPData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/SauceHanSansJP.ttf`));
|
31
|
+
const SauceHanSerifJPData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/SauceHanSerifJP.ttf`));
|
32
|
+
const NotoSerifJPRegularData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/NotoSerifJP-Regular.otf`));
|
33
|
+
const GloriaHallelujahRegularData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/GloriaHallelujah-Regular.ttf`));
|
34
|
+
const GreatVibesRegularData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/GreatVibes-Regular.ttf`));
|
35
|
+
const JuliusSansOneRegularData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/JuliusSansOne-Regular.ttf`));
|
36
|
+
const getFont = () => ({
|
37
|
+
SauceHanSansJP: { fallback: true, data: SauceHanSansJPData },
|
38
|
+
SauceHanSerifJP: { data: SauceHanSerifJPData },
|
39
|
+
'NotoSerifJP-Regular': { data: NotoSerifJPRegularData },
|
40
|
+
'GloriaHallelujah-Regular': { data: GloriaHallelujahRegularData },
|
41
|
+
'GreatVibes-Regular': { data: GreatVibesRegularData },
|
42
|
+
'JuliusSansOne-Regular': { data: JuliusSansOneRegularData },
|
43
|
+
});
|
44
|
+
exports.getFont = getFont;
|
45
|
+
const getPdf = (pdfFilePath) => {
|
46
|
+
const pdfParser = new PDFParser();
|
47
|
+
return new Promise((resolve, reject) => {
|
48
|
+
pdfParser.on('pdfParser_dataError', reject);
|
49
|
+
pdfParser.on('pdfParser_dataReady', resolve);
|
50
|
+
pdfParser.loadPDF(pdfFilePath);
|
51
|
+
});
|
52
|
+
};
|
53
|
+
exports.getPdf = getPdf;
|
54
|
+
const getPdfPath = (dir, fileName) => path.join(__dirname, `assets/pdfs/${dir}/${fileName}`);
|
55
|
+
const getPdfTmpPath = (fileName) => getPdfPath('tmp', fileName);
|
56
|
+
exports.getPdfTmpPath = getPdfTmpPath;
|
57
|
+
const getPdfAssertPath = (fileName) => getPdfPath('assert', fileName);
|
58
|
+
exports.getPdfAssertPath = getPdfAssertPath;
|
59
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../__tests__/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAkC;AAClC,2CAA6B;AAG7B,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,kBAAkB,GAAG,IAAA,iBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC,CAAC;AAClG,MAAM,mBAAmB,GAAG,IAAA,iBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC,CAAC;AACpG,MAAM,sBAAsB,GAAG,IAAA,iBAAY,EACzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uCAAuC,CAAC,CAC9D,CAAC;AACF,MAAM,2BAA2B,GAAG,IAAA,iBAAY,EAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,4CAA4C,CAAC,CACnE,CAAC;AACF,MAAM,qBAAqB,GAAG,IAAA,iBAAY,EACxC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAC7D,CAAC;AACF,MAAM,wBAAwB,GAAG,IAAA,iBAAY,EAC3C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAChE,CAAC;AAEK,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,CAAC;IAClC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAC5D,eAAe,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAC9C,qBAAqB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACvD,0BAA0B,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;IACjE,oBAAoB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;IACrD,uBAAuB,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;CAC5D,CAAC,CAAC;AAPU,QAAA,OAAO,WAOjB;AAEI,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC5C,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAElC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,SAAS,CAAC,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC5C,SAAS,CAAC,EAAE,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC7C,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AARW,QAAA,MAAM,UAQjB;AAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAE,EAAE,CACnD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC;AAElD,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAAlE,QAAA,aAAa,iBAAqD;AACxE,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAAxE,QAAA,gBAAgB,oBAAwD"}
|
package/dist/cjs/src/generate.js
CHANGED
@@ -22,40 +22,30 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
22
|
__setModuleDefault(result, mod);
|
23
23
|
return result;
|
24
24
|
};
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
32
|
-
});
|
33
|
-
};
|
34
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
35
26
|
const pdfLib = __importStar(require("@pdfme/pdf-lib"));
|
36
27
|
const fontkit = __importStar(require("fontkit"));
|
37
28
|
const common_1 = require("@pdfme/common");
|
38
29
|
const schemas_1 = require("@pdfme/schemas");
|
39
|
-
const
|
40
|
-
const
|
41
|
-
const preprocessing = ({ template }) =>
|
30
|
+
const pdfUtils_js_1 = require("./pdfUtils.js");
|
31
|
+
const constants_js_1 = require("./constants.js");
|
32
|
+
const preprocessing = async ({ template }) => {
|
42
33
|
const { basePdf } = template;
|
43
|
-
const pdfDoc =
|
34
|
+
const pdfDoc = await pdfLib.PDFDocument.create();
|
44
35
|
// @ts-ignore
|
45
36
|
pdfDoc.registerFontkit(fontkit);
|
46
|
-
const pagesAndBoxes =
|
37
|
+
const pagesAndBoxes = await (0, pdfUtils_js_1.getEmbeddedPagesAndEmbedPdfBoxes)({ pdfDoc, basePdf });
|
47
38
|
const { embeddedPages, embedPdfBoxes } = pagesAndBoxes;
|
48
39
|
return { pdfDoc, embeddedPages, embedPdfBoxes };
|
49
|
-
}
|
40
|
+
};
|
50
41
|
const postProcessing = ({ pdfDoc }) => {
|
51
|
-
pdfDoc.setProducer(
|
52
|
-
pdfDoc.setCreator(
|
42
|
+
pdfDoc.setProducer(constants_js_1.TOOL_NAME);
|
43
|
+
pdfDoc.setCreator(constants_js_1.TOOL_NAME);
|
53
44
|
};
|
54
|
-
const generate = (props) =>
|
55
|
-
var _a;
|
45
|
+
const generate = async (props) => {
|
56
46
|
(0, common_1.checkGenerateProps)(props);
|
57
47
|
const { inputs, template, options = {}, plugins: userPlugins = {} } = props;
|
58
|
-
const { pdfDoc, embeddedPages, embedPdfBoxes } =
|
48
|
+
const { pdfDoc, embeddedPages, embedPdfBoxes } = await preprocessing({ template });
|
59
49
|
const plugins = Object.values(userPlugins).length > 0 ? userPlugins : schemas_1.builtInPlugins;
|
60
50
|
const _cache = new Map();
|
61
51
|
for (let i = 0; i < inputs.length; i += 1) {
|
@@ -66,7 +56,7 @@ const generate = (props) => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
56
|
const { width: pageWidth, height: pageHeight } = embeddedPage;
|
67
57
|
const embedPdfBox = embedPdfBoxes[j];
|
68
58
|
const page = pdfDoc.addPage([pageWidth, pageHeight]);
|
69
|
-
(0,
|
59
|
+
(0, pdfUtils_js_1.drawEmbeddedPage)({ page, embeddedPage, embedPdfBox });
|
70
60
|
for (let l = 0; l < keys.length; l += 1) {
|
71
61
|
const key = keys[l];
|
72
62
|
const schemaObj = template.schemas[j];
|
@@ -75,17 +65,17 @@ const generate = (props) => __awaiter(void 0, void 0, void 0, function* () {
|
|
75
65
|
if (!schema || !value) {
|
76
66
|
continue;
|
77
67
|
}
|
78
|
-
const render =
|
68
|
+
const render = Object.values(plugins).find((plugin) => plugin.propPanel.defaultSchema.type === schema.type)?.pdf;
|
79
69
|
if (!render) {
|
80
70
|
throw new Error(`[@pdfme/generator] Renderer for type ${schema.type} not found.
|
81
71
|
Check this document: https://pdfme.com/docs/custom-schemas`);
|
82
72
|
}
|
83
|
-
|
73
|
+
await render({ value, schema, pdfLib, pdfDoc, page, options, _cache });
|
84
74
|
}
|
85
75
|
}
|
86
76
|
}
|
87
77
|
postProcessing({ pdfDoc });
|
88
78
|
return pdfDoc.save();
|
89
|
-
}
|
79
|
+
};
|
90
80
|
exports.default = generate;
|
91
81
|
//# sourceMappingURL=generate.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/generate.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/generate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AACzC,iDAAmC;AAEnC,0CAAmD;AACnD,4CAAgD;AAChD,+CAAmF;AACnF,iDAA2C;AAE3C,MAAM,aAAa,GAAG,KAAK,EAAE,EAAE,QAAQ,EAA0B,EAAE,EAAE;IACnE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAE7B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;IACjD,aAAa;IACb,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAEhC,MAAM,aAAa,GAAG,MAAM,IAAA,8CAAgC,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAClF,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;IAEvD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAAkC,EAAE,EAAE;IACpE,MAAM,CAAC,WAAW,CAAC,wBAAS,CAAC,CAAC;IAC9B,MAAM,CAAC,UAAU,CAAC,wBAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAoB,EAAE,EAAE;IAC9C,IAAA,2BAAkB,EAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAE5E,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,wBAAc,CAAC;IAErF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAChD,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;YAC9D,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YAErD,IAAA,8BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;YACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAE5B,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE;oBACrB,SAAS;iBACV;gBAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CACxC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAChE,EAAE,GAAG,CAAC;gBACP,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,IAAI;2DAClB,CAAC,CAAC;iBACpD;gBACD,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;aACxE;SACF;KACF;IAED,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3B,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
|
package/dist/cjs/src/pdfUtils.js
CHANGED
@@ -1,23 +1,14 @@
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
3
|
exports.drawEmbeddedPage = exports.getEmbeddedPagesAndEmbedPdfBoxes = void 0;
|
13
4
|
const pdf_lib_1 = require("@pdfme/pdf-lib");
|
14
5
|
const common_1 = require("@pdfme/common");
|
15
|
-
const getEmbeddedPagesAndEmbedPdfBoxes = (arg) =>
|
6
|
+
const getEmbeddedPagesAndEmbedPdfBoxes = async (arg) => {
|
16
7
|
const { pdfDoc, basePdf } = arg;
|
17
8
|
let embeddedPages = [];
|
18
9
|
let embedPdfBoxes = [];
|
19
|
-
const willLoadPdf = typeof basePdf === 'string' ?
|
20
|
-
const embedPdf =
|
10
|
+
const willLoadPdf = typeof basePdf === 'string' ? await (0, common_1.getB64BasePdf)(basePdf) : basePdf;
|
11
|
+
const embedPdf = await pdf_lib_1.PDFDocument.load(willLoadPdf);
|
21
12
|
const embedPdfPages = embedPdf.getPages();
|
22
13
|
embedPdfBoxes = embedPdfPages.map((p) => ({
|
23
14
|
mediaBox: p.getMediaBox(),
|
@@ -29,9 +20,9 @@ const getEmbeddedPagesAndEmbedPdfBoxes = (arg) => __awaiter(void 0, void 0, void
|
|
29
20
|
return { left: x, bottom: y, right: width, top: height + y };
|
30
21
|
});
|
31
22
|
const transformationMatrices = embedPdfPages.map(() => [1, 0, 0, 1, 0, 0]);
|
32
|
-
embeddedPages =
|
23
|
+
embeddedPages = await pdfDoc.embedPages(embedPdfPages, boundingBoxes, transformationMatrices);
|
33
24
|
return { embeddedPages, embedPdfBoxes };
|
34
|
-
}
|
25
|
+
};
|
35
26
|
exports.getEmbeddedPagesAndEmbedPdfBoxes = getEmbeddedPagesAndEmbedPdfBoxes;
|
36
27
|
const drawEmbeddedPage = (arg) => {
|
37
28
|
const { page, embeddedPage, embedPdfBox } = arg;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pdfUtils.js","sourceRoot":"","sources":["../../../src/pdfUtils.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"pdfUtils.js","sourceRoot":"","sources":["../../../src/pdfUtils.ts"],"names":[],"mappings":";;;AAAA,4CAA6F;AAC7F,0CAAuD;AAGhD,MAAM,gCAAgC,GAAG,KAAK,EAAE,GAGtD,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAChC,IAAI,aAAa,GAAsB,EAAE,CAAC;IAC1C,IAAI,aAAa,GAAkB,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAA,sBAAa,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACzF,MAAM,QAAQ,GAAG,MAAM,qBAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAE1C,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE;QACzB,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE;QACzB,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE;KACxB,CAAC,CAAC,CAAC;IAEJ,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAEhD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,aAAa,CAAC,GAAG,CAC9C,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAyB,CACjD,CAAC;IAEF,aAAa,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAC;IAE9F,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAC1C,CAAC,CAAC;AA9BW,QAAA,gCAAgC,oCA8B3C;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAIhC,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5B,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC;IAChE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B"}
|
@@ -1,6 +1,3 @@
|
|
1
|
-
import { BLANK_PDF } from '@pdfme/common';
|
2
|
-
/* eslint global-require: off*/
|
3
|
-
/* eslint @typescript-eslint/no-var-requires: off*/
|
4
1
|
const レターパック = require('./レターパック.json');
|
5
2
|
const レターパックライト = require('./レターパックライト.json');
|
6
3
|
const レターパックプラス = require('./レターパックプラス.json');
|
@@ -11,13 +8,10 @@ const スマートレター = require('./スマートレター.json');
|
|
11
8
|
const ストライプラベル24面 = require('./ストライプラベル24面.json');
|
12
9
|
const フレームラベル24面 = require('./フレームラベル24面.json');
|
13
10
|
const シンプルラベル24面 = require('./シンプルラベル24面.json');
|
14
|
-
const シンプルラベル24面BASE = require('./シンプルラベル24面BASE.json');
|
15
11
|
const 郵便はがき横書き = require('./郵便はがき横書き.json');
|
16
12
|
const 長形3号封筒 = require('./長形3号封筒.json');
|
17
13
|
const 洋長3号封筒 = require('./洋長3号封筒.json');
|
18
14
|
const 角形2号封筒 = require('./角形2号封筒.json');
|
19
|
-
const BASEロゴ入り洋長3号封筒 = require('./BASEロゴ入り洋長3号封筒.json');
|
20
|
-
const BASEロゴ入り1面 = require('./BASEロゴ入り1面.json');
|
21
15
|
const 名刺サイズの名札 = require('./名刺サイズの名札.json');
|
22
16
|
const connpass名札 = require('./connpass名札.json');
|
23
17
|
const ゆうパケット = require('./ゆうパケット.json');
|
@@ -45,37 +39,10 @@ const rotation = require('./rotation.json');
|
|
45
39
|
const verticalAlignmentTop = require('./verticalAlignmentTop.json');
|
46
40
|
const verticalAlignmentMiddle = require('./verticalAlignmentMiddle.json');
|
47
41
|
const verticalAlignmentBottom = require('./verticalAlignmentBottom.json');
|
48
|
-
|
49
|
-
|
50
|
-
sampledata: [{ a: 'a1', b: 'b1', c: 'c1' }],
|
51
|
-
schemas: [
|
52
|
-
{
|
53
|
-
a: {
|
54
|
-
type: 'text',
|
55
|
-
position: { x: 0, y: 0 },
|
56
|
-
width: 10,
|
57
|
-
height: 10,
|
58
|
-
},
|
59
|
-
b: {
|
60
|
-
type: 'text',
|
61
|
-
position: { x: 10, y: 10 },
|
62
|
-
width: 10,
|
63
|
-
height: 10,
|
64
|
-
},
|
65
|
-
c: {
|
66
|
-
type: 'text',
|
67
|
-
position: { x: 20, y: 20 },
|
68
|
-
width: 10,
|
69
|
-
height: 10,
|
70
|
-
},
|
71
|
-
},
|
72
|
-
],
|
73
|
-
basePdf: BLANK_PDF,
|
74
|
-
fontName: 'SauceHanSansJP',
|
75
|
-
},
|
42
|
+
const test = require('./test.json');
|
43
|
+
export const label = {
|
76
44
|
宛名8面,
|
77
45
|
シンプルラベル24面,
|
78
|
-
シンプルラベル24面BASE,
|
79
46
|
フレームラベル24面,
|
80
47
|
ストライプラベル24面,
|
81
48
|
装飾なしラベル24面,
|
@@ -85,19 +52,24 @@ export default {
|
|
85
52
|
レターパックライト,
|
86
53
|
レターパックプラス,
|
87
54
|
スマートレター,
|
55
|
+
ゆうパケット,
|
56
|
+
Aone72312宛名,
|
57
|
+
名刺サイズの名札,
|
58
|
+
connpass名札,
|
59
|
+
};
|
60
|
+
export const envelope = {
|
88
61
|
長形3号封筒,
|
89
62
|
洋長3号封筒,
|
90
63
|
角形2号封筒,
|
91
|
-
|
92
|
-
|
93
|
-
名刺サイズの名札,
|
94
|
-
connpass名札,
|
95
|
-
ゆうパケット,
|
64
|
+
};
|
65
|
+
export const barcode = {
|
96
66
|
Aone31555QRコード,
|
97
67
|
Aone31553QRコード,
|
98
68
|
Aone72230JANコード短縮,
|
99
69
|
Aone72230JANコード標準,
|
100
|
-
|
70
|
+
barcodes,
|
71
|
+
};
|
72
|
+
export const business = {
|
101
73
|
領収書,
|
102
74
|
領収書x4,
|
103
75
|
表彰状,
|
@@ -107,15 +79,19 @@ export default {
|
|
107
79
|
書類送付状,
|
108
80
|
履歴書,
|
109
81
|
労働条件通知書,
|
110
|
-
|
111
|
-
|
112
|
-
canvasPdf,
|
113
|
-
background,
|
82
|
+
};
|
83
|
+
export const textType = {
|
114
84
|
dynamicFontSizeHorizontal,
|
115
85
|
dynamicFontSizeVertical,
|
116
|
-
rotation,
|
117
86
|
verticalAlignmentTop,
|
118
87
|
verticalAlignmentMiddle,
|
119
88
|
verticalAlignmentBottom,
|
120
89
|
};
|
90
|
+
export const other = {
|
91
|
+
test,
|
92
|
+
z97mmx210mm,
|
93
|
+
canvasPdf,
|
94
|
+
background,
|
95
|
+
rotation,
|
96
|
+
};
|
121
97
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../__tests__/assets/templates/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../__tests__/assets/templates/index.ts"],"names":[],"mappings":"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"}
|