zater-docx-pdf2
Version:
ZAter doc2pdf
55 lines (45 loc) • 6.93 kB
JavaScript
;
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=