zater-docx-pdf2
Version:
ZAter doc2pdf
63 lines (51 loc) • 7.95 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');
console.log('contrato: ', contract);
console.log('path', path.join('file:///', __dirname, '../../../assets/'));
const document = {
type: 'file', // 'file' or 'buffer'
template: html,
header: {
height: "50px",
contents: ""
},
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcm92aWRlcnMvUGRmR2VuZXJhdG9yLmpzIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsInBkZiIsImJ1ZmZlckNvbnZlcnRlciIsInBhdGgiLCJDb250cmFjdFR5cGUiLCJvcHRpb25zIiwiZm9ybWF0IiwiYmFzZSIsImpvaW4iLCJfX2Rpcm5hbWUiLCJQZGZHZW5lcmF0b3IiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJnZW5lcmF0ZSIsImNvbnRyYWN0IiwiZmlsZV9uYW1lIiwicmVzb2wiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJyZXMiLCJpbWFnZSIsInJlamVjdCIsImh0bWwiLCJNVVRVT19UUkFESU5HIiwicmVhZEZpbGVTeW5jIiwiTVVUVU9fU0VNX1RSQURJTkciLCJjb25zb2xlIiwibG9nIiwiZG9jdW1lbnQiLCJ0ZW1wbGF0ZSIsImhlYWRlciIsImhlaWdodCIsImNvbnRlbnRzIiwiY29udGV4dCIsImNyZWF0ZSIsImVyciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxNQUFNQSxLQUFLQyxRQUFRLElBQVIsQ0FBWDtBQUNBLE1BQU1DLE1BQU1ELFFBQVEsa0JBQVIsQ0FBWjtBQUNBLE1BQU1FLGtCQUFrQkYsUUFBUSx1QkFBUixDQUF4QjtBQUNBLE1BQU1HLE9BQU9ILFFBQVEsTUFBUixDQUFiO0FBQ0EsTUFBTUksZUFBZUosUUFBUSwrQkFBUixDQUFyQjtBQUNBLE1BQU1LLFVBQVUsRUFBRUMsUUFBUSxRQUFWLEVBQW9CQyxNQUFNSixLQUFLSyxJQUFMLENBQVUsVUFBVixFQUFzQkMsU0FBdEIsRUFBaUMsa0JBQWpDLENBQTFCLEVBQWhCOztBQUdBLE1BQU1DLFlBQU4sQ0FBa0I7QUFDZEMsZ0JBQVlDLElBQVosRUFBa0I7QUFDZCxhQUFLQSxJQUFMLEdBQVlBLElBQVo7QUFDSDs7QUFFS0MsWUFBTixDQUFlQyxRQUFmLEVBQXlCQyxTQUF6QixFQUFtQztBQUFBOztBQUFBOztBQUUvQixrQkFBTUMsUUFBUSxNQUFNQyxRQUFRQyxPQUFSLENBQWdCSixRQUFoQixFQUEwQkssSUFBMUIsQ0FBK0I7QUFBQSx1QkFBT0MsR0FBUDtBQUFBLGFBQS9CLENBQXBCO0FBQ0FKLGtCQUFNSyxLQUFOLEdBQWMsMkJBQTJCbkIsZ0JBQWdCYyxNQUFNSyxLQUF0QixFQUE2QixRQUE3QixDQUF6QztBQUNBLG1CQUFPLElBQUlKLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVJLE1BQVYsRUFBcUI7QUFDcEMsb0JBQUc7QUFDQyx3QkFBSUMsT0FBTyxFQUFYO0FBQ0Esd0JBQUksTUFBS1gsSUFBTCxJQUFhUixhQUFhb0IsYUFBOUIsRUFDSUQsT0FBT3hCLEdBQUcwQixZQUFILENBQWdCdEIsS0FBS0ssSUFBTCxDQUFVQyxTQUFWLEVBQXFCLHNDQUFyQixDQUFoQixFQUE4RSxNQUE5RSxDQUFQOztBQUVKLHdCQUFJLE1BQUtHLElBQUwsSUFBYVIsYUFBYXNCLGlCQUE5QixFQUNJSCxPQUFPeEIsR0FBRzBCLFlBQUgsQ0FBZ0J0QixLQUFLSyxJQUFMLENBQVVDLFNBQVYsRUFBcUIsc0NBQXJCLENBQWhCLEVBQThFLE1BQTlFLENBQVA7O0FBRUprQiw0QkFBUUMsR0FBUixDQUFZLFlBQVosRUFBMEJkLFFBQTFCO0FBQ0FhLDRCQUFRQyxHQUFSLENBQVksTUFBWixFQUFvQnpCLEtBQUtLLElBQUwsQ0FBVSxVQUFWLEVBQXNCQyxTQUF0QixFQUFpQyxrQkFBakMsQ0FBcEI7O0FBRUEsMEJBQU1vQixXQUFXO0FBQ2JqQiw4QkFBTSxNQURPLEVBQ0M7QUFDZGtCLGtDQUFVUCxJQUZHO0FBR2JRLGdDQUFRO0FBQ0pDLG9DQUFRLE1BREo7QUFFSkMsc0NBQVU7QUFGTix5QkFISztBQU9iQyxpQ0FBUztBQUNMcEIsc0NBQVVFO0FBREwseUJBUEk7QUFVYmIsOEJBQU0sT0FBT1ksU0FBUCxHQUFtQixNQVZaLENBVW9CO0FBVnBCLHFCQUFqQjs7QUFhQUcsNEJBQVFqQixJQUFJa0MsTUFBSixDQUFXTixRQUFYLEVBQXFCeEIsT0FBckIsQ0FBUjtBQUVILGlCQTFCRCxDQTBCRSxPQUFNK0IsR0FBTixFQUFVO0FBQ1JkLDJCQUFPYyxHQUFQO0FBQ0g7QUFDSixhQTlCTSxDQUFQO0FBSitCO0FBbUNsQztBQXhDYTs7a0JBMkNGeEIsSUFBRCxJQUFVLElBQUlGLFlBQUosQ0FBaUJFLElBQWpCLEMiLCJmaWxlIjoiUGRmR2VuZXJhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuY29uc3QgcGRmID0gcmVxdWlyZSgnZHluYW1pYy1odG1sLXBkZicpO1xuY29uc3QgYnVmZmVyQ29udmVydGVyID0gcmVxdWlyZSgnYXJyYXlidWZmZXItdG8tc3RyaW5nJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgQ29udHJhY3RUeXBlID0gcmVxdWlyZSgnLi4vLi4vZG9tYWluL0NvbnRyYWN0VHlwZUVudW0nKTtcbmNvbnN0IG9wdGlvbnMgPSB7IGZvcm1hdDogJ0xldHRlcicsIGJhc2U6IHBhdGguam9pbignZmlsZTovLy8nLCBfX2Rpcm5hbWUsICcuLi8uLi8uLi9hc3NldHMvJykgfTtcblxuXG5jbGFzcyBQZGZHZW5lcmF0b3J7XG4gICAgY29uc3RydWN0b3IodHlwZSkge1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIH1cblxuICAgIGFzeW5jIGdlbmVyYXRlKGNvbnRyYWN0LCBmaWxlX25hbWUpe1xuICAgICAgICBcbiAgICAgICAgY29uc3QgcmVzb2wgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoY29udHJhY3QpLnRoZW4ocmVzID0+IHJlcyk7ICAgICAgICBcbiAgICAgICAgcmVzb2wuaW1hZ2UgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcgKyBidWZmZXJDb252ZXJ0ZXIocmVzb2wuaW1hZ2UsICdiYXNlNjQnKTsgICAgICAgIFxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdHJ5e1xuICAgICAgICAgICAgICAgIGxldCBodG1sID0gJyc7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBDb250cmFjdFR5cGUuTVVUVU9fVFJBRElORylcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vYXNzZXRzL011dHVvQ29tVHJhZGluZy5odG1sJyksICd1dGY4Jyk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlID09IENvbnRyYWN0VHlwZS5NVVRVT19TRU1fVFJBRElORylcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vYXNzZXRzL011dHVvU2VtVHJhZGluZy5odG1sJyksICd1dGY4Jyk7XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnY29udHJhdG86ICcsIGNvbnRyYWN0KTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncGF0aCcsIHBhdGguam9pbignZmlsZTovLy8nLCBfX2Rpcm5hbWUsICcuLi8uLi8uLi9hc3NldHMvJykpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50ID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZmlsZScsIC8vICdmaWxlJyBvciAnYnVmZmVyJ1xuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogaHRtbCxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiNTBweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3Q6IHJlc29sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICcuLycgKyBmaWxlX25hbWUgKyAnLnBkZicgIC8vIGl0IGlzIG5vdCByZXF1aXJlZCBpZiB0eXBlIGlzIGJ1ZmZlclxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXNvbHZlKHBkZi5jcmVhdGUoZG9jdW1lbnQsIG9wdGlvbnMpKTtcblxuICAgICAgICAgICAgfSBjYXRjaChlcnIpe1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0ICh0eXBlKSA9PiBuZXcgUGRmR2VuZXJhdG9yKHR5cGUpO1xuIl19
;