@pdfme/generator 1.0.18 → 1.1.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.
Files changed (47) hide show
  1. package/dist/cjs/__tests__/assets/templates/index.js +111 -0
  2. package/dist/cjs/__tests__/assets/templates/index.js.map +1 -0
  3. package/dist/cjs/__tests__/generate.test.js +362 -0
  4. package/dist/cjs/__tests__/generate.test.js.map +1 -0
  5. package/dist/cjs/__tests__/helper.test.js +53 -0
  6. package/dist/cjs/__tests__/helper.test.js.map +1 -0
  7. package/dist/cjs/src/constants.js +5 -0
  8. package/dist/cjs/src/constants.js.map +1 -0
  9. package/dist/cjs/src/generate.js +75 -0
  10. package/dist/cjs/src/generate.js.map +1 -0
  11. package/dist/cjs/src/helper.js +296 -0
  12. package/dist/cjs/src/helper.js.map +1 -0
  13. package/dist/cjs/src/index.js +20 -0
  14. package/dist/cjs/src/index.js.map +1 -0
  15. package/dist/esm/__tests__/assets/templates/index.js +109 -0
  16. package/dist/esm/__tests__/assets/templates/index.js.map +1 -0
  17. package/dist/esm/__tests__/generate.test.js +334 -0
  18. package/dist/esm/__tests__/generate.test.js.map +1 -0
  19. package/dist/esm/__tests__/helper.test.js +48 -0
  20. package/dist/esm/__tests__/helper.test.js.map +1 -0
  21. package/dist/esm/src/constants.js +2 -0
  22. package/dist/esm/src/constants.js.map +1 -0
  23. package/dist/esm/src/generate.js +70 -0
  24. package/dist/esm/src/generate.js.map +1 -0
  25. package/dist/esm/src/helper.js +285 -0
  26. package/dist/esm/src/helper.js.map +1 -0
  27. package/dist/esm/src/index.js +4 -0
  28. package/dist/esm/src/index.js.map +1 -0
  29. package/dist/types/__tests__/assets/templates/index.d.ts +1563 -0
  30. package/dist/types/__tests__/generate.test.d.ts +1 -0
  31. package/dist/types/__tests__/helper.test.d.ts +1 -0
  32. package/dist/types/{constants.d.ts → src/constants.d.ts} +0 -0
  33. package/dist/types/{generate.d.ts → src/generate.d.ts} +0 -0
  34. package/dist/types/{helper.d.ts → src/helper.d.ts} +1 -0
  35. package/dist/types/{index.d.ts → src/index.d.ts} +1 -1
  36. package/package.json +18 -12
  37. package/src/generate.ts +2 -2
  38. package/src/helper.ts +3 -5
  39. package/src/index.ts +1 -1
  40. package/tsconfig.cjs.json +9 -0
  41. package/tsconfig.esm.json +9 -0
  42. package/declaration.d.ts +0 -3
  43. package/dist/index.js +0 -3
  44. package/dist/index.js.LICENSE.txt +0 -43
  45. package/dist/index.js.map +0 -1
  46. package/tsconfig.json +0 -21
  47. package/webpack.config.js +0 -59
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const common_1 = require("@pdfme/common");
4
+ /* eslint global-require: off*/
5
+ /* eslint @typescript-eslint/no-var-requires: off*/
6
+ const レターパック = require('./レターパック.json');
7
+ const レターパックライト = require('./レターパックライト.json');
8
+ const レターパックプラス = require('./レターパックプラス.json');
9
+ const 宛名8面 = require('./宛名8面.json');
10
+ const 装飾なしラベル24面 = require('./装飾なしラベル24面.json');
11
+ const 装飾なしラベル24面中央揃え = require('./装飾なしラベル24面中央揃え.json');
12
+ const スマートレター = require('./スマートレター.json');
13
+ const ストライプラベル24面 = require('./ストライプラベル24面.json');
14
+ const フレームラベル24面 = require('./フレームラベル24面.json');
15
+ const シンプルラベル24面 = require('./シンプルラベル24面.json');
16
+ const シンプルラベル24面BASE = require('./シンプルラベル24面BASE.json');
17
+ const 郵便はがき横書き = require('./郵便はがき横書き.json');
18
+ const 長形3号封筒 = require('./長形3号封筒.json');
19
+ const 洋長3号封筒 = require('./洋長3号封筒.json');
20
+ const 角形2号封筒 = require('./角形2号封筒.json');
21
+ const BASEロゴ入り洋長3号封筒 = require('./BASEロゴ入り洋長3号封筒.json');
22
+ const BASEロゴ入り1面 = require('./BASEロゴ入り1面.json');
23
+ const 名刺サイズの名札 = require('./名刺サイズの名札.json');
24
+ const connpass名札 = require('./connpass名札.json');
25
+ const ゆうパケット = require('./ゆうパケット.json');
26
+ const Aone31555QRコード = require('./Aone31555QRコード.json');
27
+ const Aone31553QRコード = require('./Aone31553QRコード.json');
28
+ const Aone72230JANコード短縮 = require('./Aone72230JANコード短縮.json');
29
+ const Aone72230JANコード標準 = require('./Aone72230JANコード標準.json');
30
+ const Aone72312宛名 = require('./Aone72312宛名.json');
31
+ const 領収書x4 = require('./領収書x4.json');
32
+ const 領収書 = require('./領収書.json');
33
+ const 表彰状 = require('./表彰状.json');
34
+ const 見積書 = require('./見積書.json');
35
+ const 請求書 = require('./請求書.json');
36
+ const 納品書 = require('./納品書.json');
37
+ const 書類送付状 = require('./書類送付状.json');
38
+ const 履歴書 = require('./履歴書.json');
39
+ const 労働条件通知書 = require('./労働条件通知書.json');
40
+ const z97mmx210mm = require('./z97mmx210mm.json');
41
+ const barcodes = require('./barcodes.json');
42
+ const canvasPdf = require('./canvasPdf.json');
43
+ const background = require('./background.json');
44
+ exports.default = {
45
+ test: {
46
+ sampledata: [{ a: 'a1', b: 'b1', c: 'c1' }],
47
+ schemas: [
48
+ {
49
+ a: {
50
+ type: 'text',
51
+ position: { x: 0, y: 0 },
52
+ width: 10,
53
+ height: 10,
54
+ },
55
+ b: {
56
+ type: 'text',
57
+ position: { x: 10, y: 10 },
58
+ width: 10,
59
+ height: 10,
60
+ },
61
+ c: {
62
+ type: 'text',
63
+ position: { x: 20, y: 20 },
64
+ width: 10,
65
+ height: 10,
66
+ },
67
+ },
68
+ ],
69
+ basePdf: common_1.BLANK_PDF,
70
+ fontName: 'SauceHanSansJP',
71
+ },
72
+ 宛名8面,
73
+ シンプルラベル24面,
74
+ シンプルラベル24面BASE,
75
+ フレームラベル24面,
76
+ ストライプラベル24面,
77
+ 装飾なしラベル24面,
78
+ 装飾なしラベル24面中央揃え,
79
+ 郵便はがき横書き,
80
+ レターパック,
81
+ レターパックライト,
82
+ レターパックプラス,
83
+ スマートレター,
84
+ 長形3号封筒,
85
+ 洋長3号封筒,
86
+ 角形2号封筒,
87
+ BASEロゴ入り洋長3号封筒,
88
+ BASEロゴ入り1面,
89
+ 名刺サイズの名札,
90
+ connpass名札,
91
+ ゆうパケット,
92
+ Aone31555QRコード,
93
+ Aone31553QRコード,
94
+ Aone72230JANコード短縮,
95
+ Aone72230JANコード標準,
96
+ Aone72312宛名,
97
+ 領収書,
98
+ 領収書x4,
99
+ 表彰状,
100
+ 見積書,
101
+ 請求書,
102
+ 納品書,
103
+ 書類送付状,
104
+ 履歴書,
105
+ 労働条件通知書,
106
+ z97mmx210mm,
107
+ barcodes,
108
+ canvasPdf,
109
+ background,
110
+ };
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../__tests__/assets/templates/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,362 @@
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
+ 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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const fs_1 = require("fs");
39
+ const path = __importStar(require("path"));
40
+ const generate_1 = __importDefault(require("../src/generate"));
41
+ const templates_1 = __importDefault(require("./assets/templates"));
42
+ const common_1 = require("@pdfme/common");
43
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
44
+ const PDFParser = require('pdf2json');
45
+ const SauceHanSansJPData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/SauceHanSansJP.ttf`));
46
+ const SauceHanSerifJPData = (0, fs_1.readFileSync)(path.join(__dirname, `/assets/fonts/SauceHanSerifJP.ttf`));
47
+ const getFont = () => ({
48
+ SauceHanSansJP: { fallback: true, data: SauceHanSansJPData },
49
+ SauceHanSerifJP: { data: SauceHanSerifJPData },
50
+ });
51
+ const getPdf = (pdfFilePath) => {
52
+ const pdfParser = new PDFParser();
53
+ return new Promise((resolve, reject) => {
54
+ pdfParser.on('pdfParser_dataError', reject);
55
+ pdfParser.on('pdfParser_dataReady', resolve);
56
+ pdfParser.loadPDF(pdfFilePath);
57
+ });
58
+ };
59
+ const getPdfPath = (dir, fileName) => path.join(__dirname, `assets/pdfs/${dir}/${fileName}`);
60
+ const getPdfTmpPath = (fileName) => getPdfPath('tmp', fileName);
61
+ const getPdfAssertPath = (fileName) => getPdfPath('assert', fileName);
62
+ describe('generate integrate test', () => {
63
+ afterAll(() => {
64
+ const dir = path.join(__dirname, 'assets/pdfs/tmp');
65
+ const unLinkFile = (file) => {
66
+ if (file !== '.gitkeep') {
67
+ (0, fs_1.unlink)(`${dir}/${file}`, (e) => {
68
+ if (e) {
69
+ throw e;
70
+ }
71
+ });
72
+ }
73
+ };
74
+ (0, fs_1.readdir)(dir, (err, files) => {
75
+ if (err) {
76
+ throw err;
77
+ }
78
+ files.forEach(unLinkFile);
79
+ });
80
+ });
81
+ // TODO Slow test... need speed up, use Promise.all?
82
+ describe('use labelmake.jp template', () => {
83
+ const entries = Object.entries(templates_1.default);
84
+ for (let l = 0; l < entries.length; l += 1) {
85
+ const [key, template] = entries[l];
86
+ // eslint-disable-next-line no-loop-func
87
+ test(`snapshot ${key}`, () => __awaiter(void 0, void 0, void 0, function* () {
88
+ const inputs = template.sampledata;
89
+ const font = getFont();
90
+ font.SauceHanSansJP.fallback = false;
91
+ font.SauceHanSerifJP.fallback = false;
92
+ // @ts-ignore
93
+ font[template.fontName].fallback = true;
94
+ const hrstart = process.hrtime();
95
+ const pdf = yield (0, generate_1.default)({
96
+ inputs,
97
+ template,
98
+ options: {
99
+ font,
100
+ splitThreshold: 0,
101
+ },
102
+ });
103
+ const hrend = process.hrtime(hrstart);
104
+ expect(hrend[0]).toBeLessThanOrEqual(1);
105
+ const tmpFile = getPdfTmpPath(`${key}.pdf`);
106
+ const assertFile = getPdfAssertPath(`${key}.pdf`);
107
+ (0, fs_1.writeFileSync)(tmpFile, pdf);
108
+ const res = yield Promise.all([getPdf(tmpFile), getPdf(assertFile)]);
109
+ const [a, e] = res;
110
+ expect(a.Pages).toEqual(e.Pages);
111
+ }));
112
+ }
113
+ });
114
+ describe('use nofont template', () => {
115
+ test(`sample`, () => __awaiter(void 0, void 0, void 0, function* () {
116
+ const inputs = [{ a: 'here is Helvetica' }];
117
+ const template = {
118
+ basePdf: common_1.BLANK_PDF,
119
+ schemas: [
120
+ {
121
+ a: {
122
+ type: 'text',
123
+ position: { x: 0, y: 0 },
124
+ width: 100,
125
+ height: 100,
126
+ },
127
+ },
128
+ ],
129
+ };
130
+ const pdf = yield (0, generate_1.default)({ inputs, template });
131
+ const tmpFile = getPdfTmpPath(`nofont.pdf`);
132
+ const assertFile = getPdfAssertPath(`nofont.pdf`);
133
+ (0, fs_1.writeFileSync)(tmpFile, pdf);
134
+ const res = yield Promise.all([getPdf(tmpFile), getPdf(assertFile)]);
135
+ const [a, e] = res;
136
+ expect(a.Pages).toEqual(e.Pages);
137
+ }));
138
+ describe('use fontColor template', () => {
139
+ test(`sample`, () => __awaiter(void 0, void 0, void 0, function* () {
140
+ const inputs = [{ name: 'here is purple color' }];
141
+ const template = {
142
+ basePdf: common_1.BLANK_PDF,
143
+ schemas: [
144
+ {
145
+ name: {
146
+ type: 'text',
147
+ position: { x: 30, y: 30 },
148
+ width: 100,
149
+ height: 20,
150
+ fontColor: '#7d2ae8',
151
+ },
152
+ },
153
+ ],
154
+ };
155
+ const pdf = yield (0, generate_1.default)({ inputs, template });
156
+ const tmpFile = getPdfTmpPath(`fontColor.pdf`);
157
+ const assertFile = getPdfAssertPath(`fontColor.pdf`);
158
+ (0, fs_1.writeFileSync)(tmpFile, pdf);
159
+ const res = yield Promise.all([getPdf(tmpFile), getPdf(assertFile)]);
160
+ const [a, e] = res;
161
+ expect(a.Pages).toEqual(e.Pages);
162
+ }));
163
+ });
164
+ describe('use fontSubset template', () => {
165
+ test(`sample`, () => __awaiter(void 0, void 0, void 0, function* () {
166
+ const inputs = [{ field1: 'SauceHanSansJP', field2: 'SauceHanSerifJP' }];
167
+ const template = {
168
+ basePdf: common_1.BLANK_PDF,
169
+ schemas: [
170
+ {
171
+ field1: {
172
+ type: 'text',
173
+ position: { x: 30, y: 30 },
174
+ width: 100,
175
+ height: 20,
176
+ fontName: 'SauceHanSansJP',
177
+ },
178
+ field2: {
179
+ type: 'text',
180
+ position: { x: 60, y: 60 },
181
+ width: 100,
182
+ height: 20,
183
+ fontName: 'SauceHanSerifJP',
184
+ },
185
+ },
186
+ ],
187
+ };
188
+ jest.setTimeout(30000);
189
+ const pdf = yield (0, generate_1.default)({
190
+ inputs,
191
+ template,
192
+ options: {
193
+ font: {
194
+ SauceHanSansJP: {
195
+ data: SauceHanSansJPData,
196
+ fallback: true,
197
+ subset: false,
198
+ },
199
+ SauceHanSerifJP: {
200
+ data: SauceHanSerifJPData,
201
+ subset: false,
202
+ },
203
+ },
204
+ },
205
+ });
206
+ const tmpFile = getPdfTmpPath(`fontSubset.pdf`);
207
+ const assertFile = getPdfAssertPath(`fontSubset.pdf`);
208
+ (0, fs_1.writeFileSync)(tmpFile, pdf);
209
+ const res = yield Promise.all([getPdf(tmpFile), getPdf(assertFile)]);
210
+ const [a, e] = res;
211
+ expect(a.Pages).toEqual(e.Pages);
212
+ }), 10000);
213
+ });
214
+ });
215
+ });
216
+ describe('check validation', () => {
217
+ test(`inputs length is 0`, () => __awaiter(void 0, void 0, void 0, function* () {
218
+ const inputs = [];
219
+ const template = {
220
+ basePdf: common_1.BLANK_PDF,
221
+ schemas: [
222
+ {
223
+ a: {
224
+ type: 'text',
225
+ position: { x: 0, y: 0 },
226
+ width: 100,
227
+ height: 100,
228
+ },
229
+ },
230
+ ],
231
+ };
232
+ try {
233
+ yield (0, generate_1.default)({ inputs, template, options: { font: getFont() } });
234
+ fail();
235
+ }
236
+ catch (e) {
237
+ expect(e.message).toEqual(`Invalid argument:
238
+ --------------------------
239
+ ERROR POSITION: inputs
240
+ ERROR MESSAGE: Array must contain at least 1 element(s)
241
+ --------------------------`);
242
+ }
243
+ }));
244
+ test(`missing fallback font`, () => __awaiter(void 0, void 0, void 0, function* () {
245
+ const inputs = [{ a: 'test' }];
246
+ const template = {
247
+ basePdf: common_1.BLANK_PDF,
248
+ schemas: [
249
+ {
250
+ a: {
251
+ type: 'text',
252
+ position: { x: 0, y: 0 },
253
+ width: 100,
254
+ height: 100,
255
+ },
256
+ },
257
+ ],
258
+ };
259
+ const font = getFont();
260
+ font.SauceHanSansJP.fallback = false;
261
+ font.SauceHanSerifJP.fallback = false;
262
+ try {
263
+ yield (0, generate_1.default)({ inputs, template, options: { font } });
264
+ fail();
265
+ }
266
+ catch (e) {
267
+ expect(e.message).toEqual('fallback flag is not found in font. true fallback flag must be only one.');
268
+ }
269
+ }));
270
+ test(`too many fallback font`, () => __awaiter(void 0, void 0, void 0, function* () {
271
+ const inputs = [{ a: 'test' }];
272
+ const template = {
273
+ basePdf: common_1.BLANK_PDF,
274
+ schemas: [
275
+ {
276
+ a: {
277
+ type: 'text',
278
+ position: { x: 0, y: 0 },
279
+ width: 100,
280
+ height: 100,
281
+ },
282
+ },
283
+ ],
284
+ };
285
+ const font = getFont();
286
+ font.SauceHanSansJP.fallback = true;
287
+ font.SauceHanSerifJP.fallback = true;
288
+ try {
289
+ yield (0, generate_1.default)({ inputs, template, options: { font } });
290
+ fail();
291
+ }
292
+ catch (e) {
293
+ expect(e.message).toEqual('2 fallback flags found in font. true fallback flag must be only one.');
294
+ }
295
+ }));
296
+ test(`missing font in template.schemas`, () => __awaiter(void 0, void 0, void 0, function* () {
297
+ const inputs = [{ a: 'test' }];
298
+ const template = {
299
+ basePdf: common_1.BLANK_PDF,
300
+ schemas: [
301
+ {
302
+ a: {
303
+ type: 'text',
304
+ fontName: 'SauceHanSansJP2',
305
+ position: { x: 0, y: 0 },
306
+ width: 100,
307
+ height: 100,
308
+ },
309
+ b: {
310
+ type: 'text',
311
+ position: { x: 0, y: 0 },
312
+ width: 100,
313
+ height: 100,
314
+ },
315
+ },
316
+ ],
317
+ };
318
+ try {
319
+ yield (0, generate_1.default)({ inputs, template, options: { font: getFont() } });
320
+ fail();
321
+ }
322
+ catch (e) {
323
+ expect(e.message).toEqual('SauceHanSansJP2 of template.schemas is not found in font.');
324
+ }
325
+ }));
326
+ test(`check digit error`, () => __awaiter(void 0, void 0, void 0, function* () {
327
+ const inputs = [{ a: 'worng text', b: 'worng text', c: 'worng text' }];
328
+ const template = {
329
+ basePdf: common_1.BLANK_PDF,
330
+ schemas: [
331
+ {
332
+ a: {
333
+ type: 'ean8',
334
+ position: { x: 0, y: 0 },
335
+ width: 100,
336
+ height: 100,
337
+ },
338
+ b: {
339
+ type: 'ean13',
340
+ position: { x: 0, y: 100 },
341
+ width: 100,
342
+ height: 100,
343
+ },
344
+ c: {
345
+ type: 'nw7',
346
+ position: { x: 0, y: 200 },
347
+ width: 100,
348
+ height: 100,
349
+ },
350
+ },
351
+ ],
352
+ };
353
+ try {
354
+ yield (0, generate_1.default)({ inputs, template });
355
+ }
356
+ catch (e) {
357
+ fail();
358
+ }
359
+ expect(true).toEqual(true);
360
+ }));
361
+ });
362
+ //# sourceMappingURL=generate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.test.js","sourceRoot":"","sources":["../../../__tests__/generate.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const helper_1 = require("../src/helper");
16
+ const jsqr_1 = __importDefault(require("jsqr"));
17
+ const pngjs_1 = require("pngjs");
18
+ /**
19
+ * 生成したQRコード(png)画像から入力データが正常に読み取れるかをテスト
20
+ */
21
+ describe('createBarCode', () => {
22
+ describe('qrcode', () => {
23
+ // テスト名, input, expected
24
+ const tests = [
25
+ ['URL', 'https://www.google.com/', 'https://www.google.com/'],
26
+ ['ひらがな', 'てすとです', 'てすとです'],
27
+ ['ひらがな2', 'あいうえおあいうえお2', 'あいうえおあいうえお2'],
28
+ ['カタカナ', 'テストです', 'テストです'],
29
+ ['漢字', 'お正月', 'お正月'],
30
+ ['中国語', '新年快乐', '新年快乐'],
31
+ ['タイ語', 'สวัสดีปีใหม่', 'สวัสดีปีใหม่'],
32
+ ];
33
+ for (const t of tests) {
34
+ // eslint-disable-next-line no-loop-func
35
+ test(`${t[0]}: ${t[1]}`, () => __awaiter(void 0, void 0, void 0, function* () {
36
+ const buffer = (yield (0, helper_1.createBarCode)({
37
+ type: 'qrcode',
38
+ input: t[1],
39
+ width: 10,
40
+ height: 10,
41
+ backgroundColor: '00000000', // 背景色を指定しないとjsQRでうまく解析できない
42
+ }));
43
+ const png = pngjs_1.PNG.sync.read(buffer);
44
+ const pngData = new Uint8ClampedArray(png.data);
45
+ const qr = (0, jsqr_1.default)(pngData, png.width, png.height);
46
+ expect(qr).not.toBeNull();
47
+ const dataBuffer = Buffer.from(qr.binaryData);
48
+ expect(dataBuffer.toString('utf8')).toEqual(t[2]);
49
+ }));
50
+ }
51
+ });
52
+ });
53
+ //# sourceMappingURL=helper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.test.js","sourceRoot":"","sources":["../../../__tests__/helper.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0CAA8C;AAC9C,gDAAoC;AACpC,iCAA4B;AAE5B;;GAEG;AACH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,wBAAwB;QACxB,MAAM,KAAK,GAAG;YACZ,CAAC,KAAK,EAAE,yBAAyB,EAAE,yBAAyB,CAAC;YAC7D,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;YAC1B,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC;YACvC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;YAC1B,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;YACpB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;YACvB,CAAC,KAAK,EAAE,cAAc,EAAE,cAAc,CAAC;SACxC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,wCAAwC;YACxC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAS,EAAE;gBAClC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAA,sBAAa,EAAC;oBAClC,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBACX,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,UAAU,EAAE,2BAA2B;iBACzD,CAAC,CAAW,CAAC;gBACd,MAAM,GAAG,GAAG,WAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,EAAE,GAAG,IAAA,cAAI,EAAC,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAW,CAAC;gBAC1D,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;gBAC9C,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC,CAAA,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOOL_NAME = void 0;
4
+ exports.TOOL_NAME = 'pdfme (https://github.com/hand-dot/pdfme)';
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,2CAAoD,CAAC"}
@@ -0,0 +1,75 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const pdf_lib_1 = require("pdf-lib");
16
+ const fontkit_1 = __importDefault(require("@pdf-lib/fontkit"));
17
+ const common_1 = require("@pdfme/common");
18
+ const helper_js_1 = require("./helper.js");
19
+ const constants_js_1 = require("./constants.js");
20
+ const preprocessing = (arg) => __awaiter(void 0, void 0, void 0, function* () {
21
+ const { template, font } = arg;
22
+ const { basePdf } = template;
23
+ const pdfDoc = yield pdf_lib_1.PDFDocument.create();
24
+ pdfDoc.registerFontkit(fontkit_1.default);
25
+ 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 });
28
+ const { embeddedPages, embedPdfBoxes } = pagesAndBoxes;
29
+ return { pdfDoc, fontObj, fallbackFontName, embeddedPages, embedPdfBoxes };
30
+ });
31
+ const postProcessing = (pdfDoc) => {
32
+ pdfDoc.setProducer(constants_js_1.TOOL_NAME);
33
+ pdfDoc.setCreator(constants_js_1.TOOL_NAME);
34
+ };
35
+ const generate = (props) => __awaiter(void 0, void 0, void 0, function* () {
36
+ (0, common_1.checkGenerateProps)(props);
37
+ const { inputs, template, options = {} } = props;
38
+ const { font = (0, common_1.getDefaultFont)(), splitThreshold = 3 } = options;
39
+ const { schemas } = template;
40
+ const preRes = yield preprocessing({ inputs, template, font });
41
+ const { pdfDoc, fontObj, fallbackFontName, embeddedPages, embedPdfBoxes } = preRes;
42
+ const inputImageCache = {};
43
+ for (let i = 0; i < inputs.length; i += 1) {
44
+ const inputObj = inputs[i];
45
+ const keys = Object.keys(inputObj);
46
+ for (let j = 0; j < embeddedPages.length; j += 1) {
47
+ const embeddedPage = embeddedPages[j];
48
+ const { width: pageWidth, height: pageHeight } = embeddedPage;
49
+ const embedPdfBox = embedPdfBoxes[j];
50
+ const page = pdfDoc.addPage([pageWidth, pageHeight]);
51
+ (0, helper_js_1.drawEmbeddedPage)({ page, embeddedPage, embedPdfBox });
52
+ for (let l = 0; l < keys.length; l += 1) {
53
+ const key = keys[l];
54
+ const schema = schemas[j];
55
+ const templateSchema = schema[key];
56
+ const input = inputObj[key];
57
+ const textSchemaSetting = { fontObj, fallbackFontName, splitThreshold };
58
+ // eslint-disable-next-line no-await-in-loop
59
+ yield (0, helper_js_1.drawInputByTemplateSchema)({
60
+ input,
61
+ templateSchema,
62
+ pdfDoc,
63
+ page,
64
+ pageHeight,
65
+ textSchemaSetting,
66
+ inputImageCache,
67
+ });
68
+ }
69
+ }
70
+ }
71
+ postProcessing(pdfDoc);
72
+ return pdfDoc.save();
73
+ });
74
+ exports.default = generate;
75
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/generate.ts"],"names":[],"mappings":"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"}