UNPKG

zater-docx-pdf2

Version:
55 lines (45 loc) 6.93 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } const fs = require('fs'); const pdf = require('dynamic-html-pdf'); const bufferConverter = require('arraybuffer-to-string'); const path = require('path'); const ContractType = require('../../domain/ContractTypeEnum'); const options = { format: 'Letter', base: path.join('file:///', __dirname, '../../../assets/') }; class PdfGenerator { constructor(type) { this.type = type; } generate(contract, file_name) { var _this = this; return _asyncToGenerator(function* () { const resol = yield Promise.resolve(contract).then(function (res) { return res; }); resol.image = 'data:image/png;base64,' + bufferConverter(resol.image, 'base64'); return new Promise(function (resolve, reject) { try { let html = ''; if (_this.type == ContractType.MUTUO_TRADING) html = fs.readFileSync(path.join(__dirname, '../../../assets/MutuoComTrading.html'), 'utf8'); if (_this.type == ContractType.MUTUO_SEM_TRADING) html = fs.readFileSync(path.join(__dirname, '../../../assets/MutuoSemTrading.html'), 'utf8'); const document = { type: 'file', // 'file' or 'buffer' template: html, context: { contract: resol }, path: './' + file_name + '.pdf' // it is not required if type is buffer }; resolve(pdf.create(document, options)); } catch (err) { reject(err); } }); })(); } } exports.default = type => new PdfGenerator(type); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcm92aWRlcnMvUGRmR2VuZXJhdG9yLmpzIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsInBkZiIsImJ1ZmZlckNvbnZlcnRlciIsInBhdGgiLCJDb250cmFjdFR5cGUiLCJvcHRpb25zIiwiZm9ybWF0IiwiYmFzZSIsImpvaW4iLCJfX2Rpcm5hbWUiLCJQZGZHZW5lcmF0b3IiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJnZW5lcmF0ZSIsImNvbnRyYWN0IiwiZmlsZV9uYW1lIiwicmVzb2wiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJyZXMiLCJpbWFnZSIsInJlamVjdCIsImh0bWwiLCJNVVRVT19UUkFESU5HIiwicmVhZEZpbGVTeW5jIiwiTVVUVU9fU0VNX1RSQURJTkciLCJkb2N1bWVudCIsInRlbXBsYXRlIiwiY29udGV4dCIsImNyZWF0ZSIsImVyciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxNQUFNQSxLQUFLQyxRQUFRLElBQVIsQ0FBWDtBQUNBLE1BQU1DLE1BQU1ELFFBQVEsa0JBQVIsQ0FBWjtBQUNBLE1BQU1FLGtCQUFrQkYsUUFBUSx1QkFBUixDQUF4QjtBQUNBLE1BQU1HLE9BQU9ILFFBQVEsTUFBUixDQUFiO0FBQ0EsTUFBTUksZUFBZUosUUFBUSwrQkFBUixDQUFyQjtBQUNBLE1BQU1LLFVBQVUsRUFBRUMsUUFBUSxRQUFWLEVBQW9CQyxNQUFNSixLQUFLSyxJQUFMLENBQVUsVUFBVixFQUFzQkMsU0FBdEIsRUFBaUMsa0JBQWpDLENBQTFCLEVBQWhCOztBQUdBLE1BQU1DLFlBQU4sQ0FBa0I7QUFDZEMsZ0JBQVlDLElBQVosRUFBa0I7QUFDZCxhQUFLQSxJQUFMLEdBQVlBLElBQVo7QUFDSDs7QUFFS0MsWUFBTixDQUFlQyxRQUFmLEVBQXlCQyxTQUF6QixFQUFtQztBQUFBOztBQUFBO0FBQy9CLGtCQUFNQyxRQUFRLE1BQU1DLFFBQVFDLE9BQVIsQ0FBZ0JKLFFBQWhCLEVBQTBCSyxJQUExQixDQUErQjtBQUFBLHVCQUFPQyxHQUFQO0FBQUEsYUFBL0IsQ0FBcEI7QUFDQUosa0JBQU1LLEtBQU4sR0FBYywyQkFBMkJuQixnQkFBZ0JjLE1BQU1LLEtBQXRCLEVBQTZCLFFBQTdCLENBQXpDO0FBQ0EsbUJBQU8sSUFBSUosT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUksTUFBVixFQUFxQjtBQUNwQyxvQkFBRztBQUNDLHdCQUFJQyxPQUFPLEVBQVg7QUFDQSx3QkFBSSxNQUFLWCxJQUFMLElBQWFSLGFBQWFvQixhQUE5QixFQUNJRCxPQUFPeEIsR0FBRzBCLFlBQUgsQ0FBZ0J0QixLQUFLSyxJQUFMLENBQVVDLFNBQVYsRUFBcUIsc0NBQXJCLENBQWhCLEVBQThFLE1BQTlFLENBQVA7O0FBRUosd0JBQUksTUFBS0csSUFBTCxJQUFhUixhQUFhc0IsaUJBQTlCLEVBQ0lILE9BQU94QixHQUFHMEIsWUFBSCxDQUFnQnRCLEtBQUtLLElBQUwsQ0FBVUMsU0FBVixFQUFxQixzQ0FBckIsQ0FBaEIsRUFBOEUsTUFBOUUsQ0FBUDs7QUFFSiwwQkFBTWtCLFdBQVc7QUFDYmYsOEJBQU0sTUFETyxFQUNDO0FBQ2RnQixrQ0FBVUwsSUFGRztBQUdiTSxpQ0FBUztBQUNMZixzQ0FBVUU7QUFETCx5QkFISTtBQU1iYiw4QkFBTSxPQUFPWSxTQUFQLEdBQW1CLE1BTlosQ0FNb0I7QUFOcEIscUJBQWpCOztBQVNBRyw0QkFBUWpCLElBQUk2QixNQUFKLENBQVdILFFBQVgsRUFBcUJ0QixPQUFyQixDQUFSO0FBRUgsaUJBbkJELENBbUJFLE9BQU0wQixHQUFOLEVBQVU7QUFDUlQsMkJBQU9TLEdBQVA7QUFDSDtBQUNKLGFBdkJNLENBQVA7QUFIK0I7QUEyQmxDO0FBaENhOztrQkFtQ0ZuQixJQUFELElBQVUsSUFBSUYsWUFBSixDQUFpQkUsSUFBakIsQyIsImZpbGUiOiJQZGZHZW5lcmF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5jb25zdCBwZGYgPSByZXF1aXJlKCdkeW5hbWljLWh0bWwtcGRmJyk7XG5jb25zdCBidWZmZXJDb252ZXJ0ZXIgPSByZXF1aXJlKCdhcnJheWJ1ZmZlci10by1zdHJpbmcnKTtcbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5jb25zdCBDb250cmFjdFR5cGUgPSByZXF1aXJlKCcuLi8uLi9kb21haW4vQ29udHJhY3RUeXBlRW51bScpO1xuY29uc3Qgb3B0aW9ucyA9IHsgZm9ybWF0OiAnTGV0dGVyJywgYmFzZTogcGF0aC5qb2luKCdmaWxlOi8vLycsIF9fZGlybmFtZSwgJy4uLy4uLy4uL2Fzc2V0cy8nKSB9O1xuXG5cbmNsYXNzIFBkZkdlbmVyYXRvcntcbiAgICBjb25zdHJ1Y3Rvcih0eXBlKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2VuZXJhdGUoY29udHJhY3QsIGZpbGVfbmFtZSl7XG4gICAgICAgIGNvbnN0IHJlc29sID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGNvbnRyYWN0KS50aGVuKHJlcyA9PiByZXMpOyAgICAgICAgXG4gICAgICAgIHJlc29sLmltYWdlID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnICsgYnVmZmVyQ29udmVydGVyKHJlc29sLmltYWdlLCAnYmFzZTY0Jyk7ICAgICAgICBcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRyeXtcbiAgICAgICAgICAgICAgICBsZXQgaHRtbCA9ICcnO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT0gQ29udHJhY3RUeXBlLk1VVFVPX1RSQURJTkcpXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uL2Fzc2V0cy9NdXR1b0NvbVRyYWRpbmcuaHRtbCcpLCAndXRmOCcpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBDb250cmFjdFR5cGUuTVVUVU9fU0VNX1RSQURJTkcpXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uL2Fzc2V0cy9NdXR1b1NlbVRyYWRpbmcuaHRtbCcpLCAndXRmOCcpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZG9jdW1lbnQgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdmaWxlJywgLy8gJ2ZpbGUnIG9yICdidWZmZXInXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiBodG1sLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdDogcmVzb2xcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogJy4vJyArIGZpbGVfbmFtZSArICcucGRmJyAgLy8gaXQgaXMgbm90IHJlcXVpcmVkIGlmIHR5cGUgaXMgYnVmZmVyXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJlc29sdmUocGRmLmNyZWF0ZShkb2N1bWVudCwgb3B0aW9ucykpO1xuXG4gICAgICAgICAgICB9IGNhdGNoKGVycil7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgKHR5cGUpID0+IG5ldyBQZGZHZW5lcmF0b3IodHlwZSk7XG4iXX0=