@resolveio/server-lib 12.1.45 → 12.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/methods/pdf.js CHANGED
@@ -38,10 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.loadPDFMethods = void 0;
40
40
  var fs = require("fs");
41
- var bent = require("bent");
42
41
  var simpl_schema_1 = require("simpl-schema");
43
- var file_collection_1 = require("../collections/file.collection");
44
- var mongo_manager_1 = require("../managers/mongo.manager");
45
42
  var pdf_lib_1 = require("pdf-lib");
46
43
  var puppeteer = require("puppeteer");
47
44
  var path = require("path");
@@ -149,7 +146,7 @@ function loadPDFMethods(methodManager) {
149
146
  printBackground: true,
150
147
  displayHeaderFooter: true,
151
148
  headerTemplate: "\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t",
152
- footerTemplate: "\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\t\tfont-size: 8px;\n\t\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<div style=\"font-size: 12px; padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\t\tPage&nbsp;<span class=\"pageNumber\"></span>&nbsp;of&nbsp;<span class=\"totalPages\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t",
149
+ footerTemplate: "\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\t\tPage&nbsp;<span class=\"pageNumber\"></span>&nbsp;of&nbsp;<span class=\"totalPages\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t",
153
150
  path: tmpFileName
154
151
  })];
155
152
  case 5:
@@ -191,140 +188,6 @@ function loadPDFMethods(methodManager) {
191
188
  }); });
192
189
  }
193
190
  },
194
- compressBase64AndUploadPDF: {
195
- check: new simpl_schema_1.default({
196
- id_file: {
197
- type: String
198
- },
199
- fileName: {
200
- type: String
201
- },
202
- filePath: {
203
- type: String
204
- },
205
- fileContent: {
206
- type: String
207
- }
208
- }),
209
- function: function (id_file, fileName, filePath, fileContent) {
210
- var _this = this;
211
- return new Promise(function (resolve, reject) {
212
- _this.callMethodInternal('getCCProcessURL').then(function (resCC) { return __awaiter(_this, void 0, void 0, function () {
213
- var request, body, error_1;
214
- return __generator(this, function (_a) {
215
- switch (_a.label) {
216
- case 0:
217
- request = bent('https:' + resCC.url, 'POST', 'json', 200);
218
- _a.label = 1;
219
- case 1:
220
- _a.trys.push([1, 3, , 4]);
221
- return [4 /*yield*/, request('', {
222
- mode: 'compress',
223
- input: 'base64',
224
- file: fileContent,
225
- filename: fileName,
226
- outputformat: 'pdf',
227
- wait: true,
228
- output: {
229
- 's3': {
230
- 'accesskeyid': process.env.AWS_ACCESS_KEY,
231
- 'secretaccesskey': process.env.AWS_SECRET_KEY,
232
- 'region': process.env.AWS_REGION,
233
- 'bucket': process.env.AWS_S3_BUCKET,
234
- 'path': filePath
235
- }
236
- }
237
- })];
238
- case 2:
239
- body = _a.sent();
240
- if (body.output.size) {
241
- file_collection_1.Files.updateOne({ _id: id_file }, { $set: { size: body.output.size } });
242
- resolve(true);
243
- }
244
- else {
245
- reject('Compressed file has no size, compress failed');
246
- }
247
- return [3 /*break*/, 4];
248
- case 3:
249
- error_1 = _a.sent();
250
- reject(error_1);
251
- return [3 /*break*/, 4];
252
- case 4: return [2 /*return*/];
253
- }
254
- });
255
- }); }, function (errCC) { return reject(errCC); });
256
- });
257
- }
258
- },
259
- compressPDFOnS3: {
260
- check: new simpl_schema_1.default({
261
- id_file: {
262
- type: String
263
- },
264
- fileName: {
265
- type: String
266
- },
267
- filePath: {
268
- type: String
269
- }
270
- }),
271
- function: function (id_file, fileName, filePath) {
272
- var _this = this;
273
- return new Promise(function (resolve, reject) {
274
- _this.callMethodInternal('getCCProcessURL').then(function (resCC) { return __awaiter(_this, void 0, void 0, function () {
275
- var request, body, error_2;
276
- return __generator(this, function (_a) {
277
- switch (_a.label) {
278
- case 0:
279
- request = bent('https:' + resCC.url, 'POST', 'json', 200);
280
- _a.label = 1;
281
- case 1:
282
- _a.trys.push([1, 3, , 4]);
283
- return [4 /*yield*/, request('', {
284
- mode: 'compress',
285
- input: {
286
- 's3': {
287
- 'accesskeyid': process.env.AWS_ACCESS_KEY,
288
- 'secretaccesskey': process.env.AWS_SECRET_KEY,
289
- 'region': process.env.AWS_REGION,
290
- 'bucket': process.env.AWS_S3_BUCKET,
291
- }
292
- },
293
- file: filePath,
294
- filename: fileName,
295
- outputformat: 'pdf',
296
- wait: true,
297
- output: {
298
- 's3': {
299
- 'accesskeyid': process.env.AWS_ACCESS_KEY,
300
- 'secretaccesskey': process.env.AWS_SECRET_KEY,
301
- 'region': process.env.AWS_REGION,
302
- 'bucket': process.env.AWS_S3_BUCKET,
303
- 'path': filePath
304
- }
305
- }
306
- })];
307
- case 2:
308
- body = _a.sent();
309
- if (body.output.size) {
310
- file_collection_1.Files.updateOne({ _id: id_file }, { $set: { size: body.output.size } });
311
- resolve(true);
312
- }
313
- else {
314
- reject('Compressed file has no size, compress failed');
315
- }
316
- return [3 /*break*/, 4];
317
- case 3:
318
- error_2 = _a.sent();
319
- reject(error_2);
320
- return [3 /*break*/, 4];
321
- case 4: return [2 /*return*/];
322
- }
323
- });
324
- }); }, function (errCC) { return reject(errCC); });
325
- });
326
- }
327
- },
328
191
  mergePDFResolve: {
329
192
  check: new simpl_schema_1.default({
330
193
  fileKeys: {
@@ -454,267 +317,7 @@ function loadPDFMethods(methodManager) {
454
317
  });
455
318
  });
456
319
  }
457
- },
458
- mergePDF: {
459
- check: new simpl_schema_1.default({
460
- fileKeys: {
461
- type: Array
462
- },
463
- 'fileKeys.$': {
464
- type: String
465
- },
466
- fileName: {
467
- type: String
468
- },
469
- fileType: {
470
- type: String,
471
- optional: true
472
- }
473
- }),
474
- function: function (fileKeys, fileName, fileType) {
475
- var _this = this;
476
- return new Promise(function (resolve, reject) {
477
- var mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;
478
- _this.callMethodInternal('createCloudConvertJob', fileKeys, ['merge', 'optimize'], mergeFileName, fileName).then(function (resCCJob) {
479
- if (resCCJob) {
480
- var resFile_1 = {
481
- _id: mongo_manager_1.objectIdHexString(),
482
- __v: 0,
483
- name: fileName,
484
- size: resCCJob.data.tasks.filter(function (a) { return a.name === 'task-2'; })[0].result.files[0].size,
485
- key: mergeFileName,
486
- type: fileType ? fileType : '',
487
- order: -1
488
- };
489
- if (resFile_1.size) {
490
- _this.callMethodInternal('insertDocument', 'files', resFile_1, function (errUpFile, resUpFile) {
491
- if (resUpFile) {
492
- resFile_1.status = 'Uploaded';
493
- resolve(resFile_1);
494
- }
495
- else {
496
- reject(errUpFile);
497
- }
498
- });
499
- }
500
- else {
501
- reject('Merged file has no size, merge failed');
502
- }
503
- }
504
- }, function (err) {
505
- console.log('Create Cloud Convert Job Error', err);
506
- reject(err);
507
- });
508
- });
509
- }
510
- },
511
- mergePDFV1: {
512
- check: new simpl_schema_1.default({
513
- fileKeys: {
514
- type: Array
515
- },
516
- 'fileKeys.$': {
517
- type: String
518
- },
519
- fileName: {
520
- type: String
521
- },
522
- fileType: {
523
- type: String,
524
- optional: true
525
- }
526
- }),
527
- function: function (fileKeys, fileName, fileType) {
528
- var _this = this;
529
- return new Promise(function (resolve, reject) {
530
- _this.callMethodInternal('getCCProcessURL').then(function (resCC) { return __awaiter(_this, void 0, void 0, function () {
531
- var mergeFileName, request, body, resFile_2, error_3;
532
- var _this = this;
533
- return __generator(this, function (_a) {
534
- switch (_a.label) {
535
- case 0:
536
- mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;
537
- request = bent('https:' + resCC.url, 'POST', 'json', 200);
538
- _a.label = 1;
539
- case 1:
540
- _a.trys.push([1, 3, , 4]);
541
- return [4 /*yield*/, request('', {
542
- mode: 'combine',
543
- input: {
544
- s3: {
545
- 'accesskeyid': process.env.AWS_ACCESS_KEY,
546
- 'secretaccesskey': process.env.AWS_SECRET_KEY,
547
- 'region': process.env.AWS_REGION,
548
- 'bucket': process.env.AWS_S3_BUCKET,
549
- }
550
- },
551
- files: fileKeys,
552
- outputformat: 'pdf',
553
- wait: true,
554
- output: {
555
- 's3': {
556
- 'accesskeyid': process.env.AWS_ACCESS_KEY,
557
- 'secretaccesskey': process.env.AWS_SECRET_KEY,
558
- 'region': process.env.AWS_REGION,
559
- 'bucket': process.env.AWS_S3_BUCKET,
560
- 'path': mergeFileName
561
- }
562
- },
563
- converteroptions: {
564
- 'resize': '612x792',
565
- 'resizemode': 'scale',
566
- 'resizeenlarge': null,
567
- 'grayscale': null,
568
- 'auto_orient': null,
569
- 'strip_metatags': false,
570
- 'density': 72,
571
- 'rotate': null,
572
- 'command': null
573
- }
574
- })];
575
- case 2:
576
- body = _a.sent();
577
- resFile_2 = {
578
- _id: mongo_manager_1.objectIdHexString(),
579
- __v: 0,
580
- name: fileName,
581
- size: body.output.size,
582
- key: mergeFileName,
583
- type: fileType ? fileType : '',
584
- order: -1
585
- };
586
- if (body.output.size) {
587
- this.callMethodInternal('insertDocument', 'files', resFile_2, function (errUpFile, resUpFile) {
588
- if (resUpFile) {
589
- resFile_2.status = 'Uploaded';
590
- _this.callMethodInternal('compressPDFOnS3', resFile_2._id, fileName, mergeFileName, function (errCompress, resCompress) {
591
- if (resCompress) {
592
- resolve(resFile_2);
593
- }
594
- else {
595
- reject(errCompress);
596
- }
597
- });
598
- }
599
- else {
600
- reject(errUpFile);
601
- }
602
- });
603
- }
604
- else {
605
- reject('Merged file has no size, merge failed');
606
- }
607
- return [3 /*break*/, 4];
608
- case 3:
609
- error_3 = _a.sent();
610
- reject(error_3);
611
- return [3 /*break*/, 4];
612
- case 4: return [2 /*return*/];
613
- }
614
- });
615
- }); }, function (errCC) { return reject(errCC); });
616
- });
617
- }
618
- },
619
- mergePDFNoUpload: {
620
- check: new simpl_schema_1.default({
621
- fileKeys: {
622
- type: Array
623
- },
624
- 'fileKeys.$': {
625
- type: String
626
- },
627
- fileName: {
628
- type: String
629
- },
630
- fileType: {
631
- type: String,
632
- optional: true
633
- }
634
- }),
635
- function: function (fileKeys, fileName, fileType) {
636
- var _this = this;
637
- return new Promise(function (resolve, reject) {
638
- _this.callMethodInternal('getCCProcessURL').then(function (resCC) { return __awaiter(_this, void 0, void 0, function () {
639
- var mergeFileName, request, body, resFile_3, error_4;
640
- var _this = this;
641
- return __generator(this, function (_a) {
642
- switch (_a.label) {
643
- case 0:
644
- mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;
645
- request = bent('https:' + resCC.url, 'POST', 'json', 200);
646
- _a.label = 1;
647
- case 1:
648
- _a.trys.push([1, 3, , 4]);
649
- return [4 /*yield*/, request('', {
650
- mode: 'combine',
651
- input: {
652
- s3: {
653
- 'accesskeyid': process.env.AWS_ACCESS_KEY,
654
- 'secretaccesskey': process.env.AWS_SECRET_KEY,
655
- 'region': process.env.AWS_REGION,
656
- 'bucket': process.env.AWS_S3_BUCKET,
657
- }
658
- },
659
- files: fileKeys,
660
- outputformat: 'pdf',
661
- wait: true,
662
- output: {
663
- 's3': {
664
- 'accesskeyid': process.env.AWS_ACCESS_KEY,
665
- 'secretaccesskey': process.env.AWS_SECRET_KEY,
666
- 'region': process.env.AWS_REGION,
667
- 'bucket': process.env.AWS_S3_BUCKET,
668
- 'path': mergeFileName
669
- }
670
- },
671
- converteroptions: {
672
- 'resize': '612x792',
673
- 'resizemode': 'scale',
674
- 'resizeenlarge': null,
675
- 'grayscale': null,
676
- 'auto_orient': null,
677
- 'strip_metatags': false,
678
- 'density': 72,
679
- 'rotate': null,
680
- 'command': null
681
- },
682
- })];
683
- case 2:
684
- body = _a.sent();
685
- resFile_3 = {
686
- _id: mongo_manager_1.objectIdHexString(),
687
- __v: 0,
688
- name: fileName,
689
- size: body.output.size,
690
- key: mergeFileName,
691
- type: fileType ? fileType : '',
692
- order: -1
693
- };
694
- this.callMethodInternal('insertDocument', 'files', resFile_3, function (errUpFile, resUpFile) {
695
- if (resUpFile) {
696
- resFile_3.status = 'Uploaded';
697
- resolve(resFile_3);
698
- setTimeout(function () {
699
- _this.callMethodInternal('deleteFile', mergeFileName);
700
- }, 60000);
701
- }
702
- else {
703
- reject(errUpFile);
704
- }
705
- });
706
- return [3 /*break*/, 4];
707
- case 3:
708
- error_4 = _a.sent();
709
- reject(error_4);
710
- return [3 /*break*/, 4];
711
- case 4: return [2 /*return*/];
712
- }
713
- });
714
- }); }, function (errCC) { return reject(errCC); });
715
- });
716
- }
717
- },
320
+ }
718
321
  });
719
322
  }
720
323
  exports.loadPDFMethods = loadPDFMethods;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/pdf.ts"],"names":[],"mappings":"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","file":"pdf.js","sourcesContent":["import * as fs from 'fs';\nimport { FileModel } from '../models/file.model';\nimport { MethodManager } from '../managers/method.manager';\nimport * as bent from 'bent';\nimport SimpleSchema from 'simpl-schema';\nimport { Files } from '../collections/file.collection';\nimport { objectIdHexString } from '../managers/mongo.manager';\nimport { PDFDocument } from 'pdf-lib';\nimport * as puppeteer from 'puppeteer';\nimport * as path from 'path';\n\nlet pdfCnt = 0;\n\nexport function loadPDFMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tgeneratePDF: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtml: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\torientation: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tupload: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileOrder: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tconst args = [\n\t\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t\t];\n\n\t\t\t\t\tconst browser = await puppeteer.launch({\n\t\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\t\tignoreHTTPSErrors: true, // ignore https error\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"],\n\t\t\t\t\t}); // run browser\n\t\t\t\t\t\n\t\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\t\tlet pathToFont = '';\n\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\t\tlet content = `\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\t\n\t\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/\\W/g), '');\t\n\t\t\t\t\n\t\t\t\t\tawait page.pdf({\n\t\t\t\t\t\tscale: 1,\n\t\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\t\tformat: 'letter',\n\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tprintBackground: true,\n\t\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\t\tfont-size: 8px;\n\t\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<div style=\"font-size: 12px; padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\t\tPage&nbsp;<span class=\"pageNumber\"></span>&nbsp;of&nbsp;<span class=\"totalPages\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tpath: tmpFileName\n\t\t\t\t\t});\n\t\t\t\t\tawait browser.close();\n\t\t\t\t\t\n\t\t\t\t\tif (fs.existsSync(tmpFileName)) {\n\t\t\t\t\t\tfs.readFile(tmpFileName, (errRead, data) => {\n\t\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\t\tfs.unlinkSync(tmpFileName);\n\t\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\t\tresolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false, (err, res) => {\n\t\t\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No file');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\treject('No tmp file');\n\t\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcompressBase64AndUploadPDF: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfilePath: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileContent: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, fileName: string, filePath: string, fileContent: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'compress',\n\t\t\t\t\t\t\t\tinput: 'base64',\n\t\t\t\t\t\t\t\tfile: fileContent,\n\t\t\t\t\t\t\t\tfilename: fileName,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': process.env.AWS_ACCESS_KEY,\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': process.env.AWS_SECRET_KEY,\n\t\t\t\t\t\t\t\t\t\t'region': process.env.AWS_REGION,\n\t\t\t\t\t\t\t\t\t\t'bucket': process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\t\t\t\t'path': filePath\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (body.output.size) {\n\t\t\t\t\t\t\t\tFiles.updateOne({_id: id_file}, {$set: {size: body.output.size}});\n\n\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('Compressed file has no size, compress failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcompressPDFOnS3: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfilePath: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, fileName: string, filePath: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'compress',\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': process.env.AWS_ACCESS_KEY,\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': process.env.AWS_SECRET_KEY,\n\t\t\t\t\t\t\t\t\t\t'region': process.env.AWS_REGION,\n\t\t\t\t\t\t\t\t\t\t'bucket': process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfile: filePath,\n\t\t\t\t\t\t\t\tfilename: fileName,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': process.env.AWS_ACCESS_KEY,\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': process.env.AWS_SECRET_KEY,\n\t\t\t\t\t\t\t\t\t\t'region': process.env.AWS_REGION,\n\t\t\t\t\t\t\t\t\t\t'bucket': process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\t\t\t\t'path': filePath\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (body.output.size) {\n\t\t\t\t\t\t\t\tFiles.updateOne({_id: id_file}, {$set: {size: body.output.size}});\n\n\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('Compressed file has no size, compress failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFResolve: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileKeys: string[], fileName: string, fileType?: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tthis.callMethodInternal('getSignedUrls', fileKeys, 900, (errSigneds, resSigneds) => {\n\t\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\t\t\tresSigneds.forEach(signedUrl => {\n\t\t\t\t\t\t\t\tpromises.push(this.callMethodInternal('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tPromise.all(promises).then(async fileDatas => {\n\t\t\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\t\t\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\t\t\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData);\n\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\tlet imgDim = img.size();\n\t\t\t\t\t\t\t\t\t\tif (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n\t\t\t\t\t\t\t\t\t\t\timgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\timg.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\tlet imgDim = img.size();\n\t\t\t\t\t\t\t\t\t\tif (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n\t\t\t\t\t\t\t\t\t\t\timgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\timg.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst b64PDF = await mergedPdf.saveAsBase64({ dataUri: true });\n\n\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false, (errUp, resUp) => {\n\t\t\t\t\t\t\t\t\tresolve(resUp);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'PDF Merge - getSignedUrls', [\n\t\t\t\t\t\t\t\tfileKeys,\n\t\t\t\t\t\t\t\terrSigneds\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\treject(errSigneds);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDF: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileKeys: string[], fileName: string, fileType?: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tlet mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\n\t\t\t\t\tthis.callMethodInternal('createCloudConvertJob', fileKeys, ['merge', 'optimize'], mergeFileName, fileName).then(resCCJob => {\n\t\t\t\t\t\tif (resCCJob) {\n\t\t\t\t\t\t\tlet resFile: FileModel = {\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tname: fileName,\n\t\t\t\t\t\t\t\tsize: resCCJob.data.tasks.filter(a => a.name === 'task-2')[0].result.files[0].size,\n\t\t\t\t\t\t\t\tkey: mergeFileName,\n\t\t\t\t\t\t\t\ttype: fileType ? fileType : '',\n\t\t\t\t\t\t\t\torder: -1\n\t\t\t\t\t\t\t};\n\t\n\t\t\t\t\t\t\tif (resFile.size) {\n\t\t\t\t\t\t\t\tthis.callMethodInternal('insertDocument', 'files', resFile, (errUpFile, resUpFile) => {\n\t\t\t\t\t\t\t\t\tif (resUpFile) {\n\t\t\t\t\t\t\t\t\t\tresFile.status = 'Uploaded';\n\t\t\t\t\t\t\t\t\t\tresolve(resFile);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject(errUpFile);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('Merged file has no size, merge failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, (err) => {\n\t\t\t\t\t\tconsole.log('Create Cloud Convert Job Error', err);\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFV1: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileKeys: string[], fileName: string, fileType?: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\t\t\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'combine',\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\ts3: {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': process.env.AWS_ACCESS_KEY,\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': process.env.AWS_SECRET_KEY,\n\t\t\t\t\t\t\t\t\t\t'region': process.env.AWS_REGION,\n\t\t\t\t\t\t\t\t\t\t'bucket': process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfiles: fileKeys,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': process.env.AWS_ACCESS_KEY,\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': process.env.AWS_SECRET_KEY,\n\t\t\t\t\t\t\t\t\t\t'region': process.env.AWS_REGION,\n\t\t\t\t\t\t\t\t\t\t'bucket': process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\t\t\t\t'path': mergeFileName\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tconverteroptions: {\n\t\t\t\t\t\t\t\t\t'resize': '612x792',\n\t\t\t\t\t\t\t\t\t'resizemode': 'scale',\n\t\t\t\t\t\t\t\t\t'resizeenlarge': null,\n\t\t\t\t\t\t\t\t\t'grayscale': null,\n\t\t\t\t\t\t\t\t\t'auto_orient': null,\n\t\t\t\t\t\t\t\t\t'strip_metatags': false,\n\t\t\t\t\t\t\t\t\t'density': 72,\n\t\t\t\t\t\t\t\t\t'rotate': null,\n\t\t\t\t\t\t\t\t\t'command': null\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tlet resFile: FileModel = {\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tname: fileName,\n\t\t\t\t\t\t\t\tsize: body.output.size,\n\t\t\t\t\t\t\t\tkey: mergeFileName,\n\t\t\t\t\t\t\t\ttype: fileType ? fileType : '',\n\t\t\t\t\t\t\t\torder: -1\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (body.output.size) {\n\t\t\t\t\t\t\t\tthis.callMethodInternal('insertDocument', 'files', resFile, (errUpFile, resUpFile) => {\n\t\t\t\t\t\t\t\t\tif (resUpFile) {\n\t\t\t\t\t\t\t\t\t\tresFile.status = 'Uploaded';\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('compressPDFOnS3', resFile._id, fileName, mergeFileName, (errCompress, resCompress) => {\n\t\t\t\t\t\t\t\t\t\t\tif (resCompress) {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(resFile);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\treject(errCompress);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject(errUpFile);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('Merged file has no size, merge failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFNoUpload: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileKeys: string[], fileName: string, fileType?: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\tlet mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'combine',\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\ts3: {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': process.env.AWS_ACCESS_KEY,\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': process.env.AWS_SECRET_KEY,\n\t\t\t\t\t\t\t\t\t\t'region': process.env.AWS_REGION,\n\t\t\t\t\t\t\t\t\t\t'bucket': process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfiles: fileKeys,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': process.env.AWS_ACCESS_KEY,\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': process.env.AWS_SECRET_KEY,\n\t\t\t\t\t\t\t\t\t\t'region': process.env.AWS_REGION,\n\t\t\t\t\t\t\t\t\t\t'bucket': process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\t\t\t\t'path': mergeFileName\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tconverteroptions: {\n\t\t\t\t\t\t\t\t\t'resize': '612x792',\n\t\t\t\t\t\t\t\t\t'resizemode': 'scale',\n\t\t\t\t\t\t\t\t\t'resizeenlarge': null,\n\t\t\t\t\t\t\t\t\t'grayscale': null,\n\t\t\t\t\t\t\t\t\t'auto_orient': null,\n\t\t\t\t\t\t\t\t\t'strip_metatags': false,\n\t\t\t\t\t\t\t\t\t'density': 72,\n\t\t\t\t\t\t\t\t\t'rotate': null,\n\t\t\t\t\t\t\t\t\t'command': null\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tlet resFile: FileModel = {\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tname: fileName,\n\t\t\t\t\t\t\t\tsize: body.output.size,\n\t\t\t\t\t\t\t\tkey: mergeFileName,\n\t\t\t\t\t\t\t\ttype: fileType ? fileType : '',\n\t\t\t\t\t\t\t\torder: -1\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tthis.callMethodInternal('insertDocument', 'files', resFile, (errUpFile, resUpFile) => {\n\t\t\t\t\t\t\t\tif (resUpFile) {\n\t\t\t\t\t\t\t\t\tresFile.status = 'Uploaded';\n\n\t\t\t\t\t\t\t\t\tresolve(resFile);\n\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('deleteFile', mergeFileName);\n\t\t\t\t\t\t\t\t\t}, 60000);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treject(errUpFile);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/methods/pdf.ts"],"names":[],"mappings":"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","file":"pdf.js","sourcesContent":["import * as fs from 'fs';\nimport { MethodManager } from '../managers/method.manager';\nimport SimpleSchema from 'simpl-schema';\nimport { PDFDocument } from 'pdf-lib';\nimport * as puppeteer from 'puppeteer';\nimport * as path from 'path';\n\nlet pdfCnt = 0;\n\nexport function loadPDFMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tgeneratePDF: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtml: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\torientation: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tupload: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileOrder: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tconst args = [\n\t\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t\t];\n\n\t\t\t\t\tconst browser = await puppeteer.launch({\n\t\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\t\tignoreHTTPSErrors: true, // ignore https error\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"],\n\t\t\t\t\t}); // run browser\n\t\t\t\t\t\n\t\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\t\tlet pathToFont = '';\n\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\t\tlet content = `\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\t\n\t\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/\\W/g), '');\t\n\t\t\t\t\n\t\t\t\t\tawait page.pdf({\n\t\t\t\t\t\tscale: 1,\n\t\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\t\tformat: 'letter',\n\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tprintBackground: true,\n\t\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\t\tPage&nbsp;<span class=\"pageNumber\"></span>&nbsp;of&nbsp;<span class=\"totalPages\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tpath: tmpFileName\n\t\t\t\t\t});\n\t\t\t\t\tawait browser.close();\n\t\t\t\t\t\n\t\t\t\t\tif (fs.existsSync(tmpFileName)) {\n\t\t\t\t\t\tfs.readFile(tmpFileName, (errRead, data) => {\n\t\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\t\tfs.unlinkSync(tmpFileName);\n\t\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\t\tresolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false, (err, res) => {\n\t\t\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No file');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\treject('No tmp file');\n\t\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFResolve: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileKeys: string[], fileName: string, fileType?: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tthis.callMethodInternal('getSignedUrls', fileKeys, 900, (errSigneds, resSigneds) => {\n\t\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\t\t\tresSigneds.forEach(signedUrl => {\n\t\t\t\t\t\t\t\tpromises.push(this.callMethodInternal('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tPromise.all(promises).then(async fileDatas => {\n\t\t\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\t\t\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\t\t\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData);\n\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\tlet imgDim = img.size();\n\t\t\t\t\t\t\t\t\t\tif (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n\t\t\t\t\t\t\t\t\t\t\timgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\timg.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\tlet imgDim = img.size();\n\t\t\t\t\t\t\t\t\t\tif (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n\t\t\t\t\t\t\t\t\t\t\timgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\timg.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst b64PDF = await mergedPdf.saveAsBase64({ dataUri: true });\n\n\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false, (errUp, resUp) => {\n\t\t\t\t\t\t\t\t\tresolve(resUp);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.callMethodInternal('insertErrorLog', 'PDF Merge - getSignedUrls', [\n\t\t\t\t\t\t\t\tfileKeys,\n\t\t\t\t\t\t\t\terrSigneds\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\treject(errSigneds);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}"]}