UNPKG

zater-docx-pdf2

Version:
96 lines (73 loc) 7.93 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _jszip = require('jszip'); var _jszip2 = _interopRequireDefault(_jszip); var _docxtemplater = require('docxtemplater'); var _docxtemplater2 = _interopRequireDefault(_docxtemplater); var _openDocxtemplaterImageModule = require('open-docxtemplater-image-module'); var _openDocxtemplaterImageModule2 = _interopRequireDefault(_openDocxtemplaterImageModule); var _util = require('util'); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _ErrorDocxPdf = require('./../../lib/ErrorDocxPdf'); var _ErrorDocxPdf2 = _interopRequireDefault(_ErrorDocxPdf); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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"); }); }; } class Docx { constructor() { const readFileAsync = (0, _util.promisify)(_fs2.default.readFile); this.readFileAsync = readFileAsync; this.opts = { getImage: image => image, getSize: () => [320, 40], centered: false }; } setDocx(file) { return this.readFileAsync(file, { encoding: 'binary' }).then(res => { const zip = new _jszip2.default(res); const docx = new _docxtemplater2.default(); this.docx = docx.loadZip(zip); }); } makeData(data) { if (typeof data !== 'object') { const err = new _ErrorDocxPdf2.default('makeData aceita apenas objeto!', 400, 'ZTX_DOC2PDF_003'); return Promise.reject(err); } const imageModule = new _openDocxtemplaterImageModule2.default(this.opts); return this.docx.setData(data).attachModule(imageModule); } render() { var _this = this; return _asyncToGenerator(function* () { try { yield _this.docx.render(); return true; } catch (e) { const err = new _ErrorDocxPdf2.default(e.message, 500, 'ZTR_DOC2PDF_002'); return Promise.reject(err); } })(); } makeContract(file, data) { var _this2 = this; return _asyncToGenerator(function* () { try { const resol = yield Promise.resolve(data).then(function (res) { return res; }); yield _this2.setDocx(file); yield _this2.makeData(resol); yield _this2.render(); return _this2.docx.getZip().generate({ type: 'nodebuffer' }); } catch (e) { return Promise.reject(e); } })(); } } exports.default = () => new Docx(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcm92aWRlcnMvRG9jeC5qcyJdLCJuYW1lcyI6WyJEb2N4IiwiY29uc3RydWN0b3IiLCJyZWFkRmlsZUFzeW5jIiwiZnMiLCJyZWFkRmlsZSIsIm9wdHMiLCJnZXRJbWFnZSIsImltYWdlIiwiZ2V0U2l6ZSIsImNlbnRlcmVkIiwic2V0RG9jeCIsImZpbGUiLCJlbmNvZGluZyIsInRoZW4iLCJyZXMiLCJ6aXAiLCJKU1ppcCIsImRvY3giLCJEb2N4dGVtcGxhdGVyIiwibG9hZFppcCIsIm1ha2VEYXRhIiwiZGF0YSIsImVyciIsIkVycm9yRG9jeFBkZiIsIlByb21pc2UiLCJyZWplY3QiLCJpbWFnZU1vZHVsZSIsIkltYWdlTW9kdWxlIiwic2V0RGF0YSIsImF0dGFjaE1vZHVsZSIsInJlbmRlciIsImUiLCJtZXNzYWdlIiwibWFrZUNvbnRyYWN0IiwicmVzb2wiLCJyZXNvbHZlIiwiZ2V0WmlwIiwiZ2VuZXJhdGUiLCJ0eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7OztBQUNBOzs7Ozs7OztBQUVBLE1BQU1BLElBQU4sQ0FBVztBQUNUQyxnQkFBYztBQUNaLFVBQU1DLGdCQUFnQixxQkFBVUMsYUFBR0MsUUFBYixDQUF0QjtBQUNBLFNBQUtGLGFBQUwsR0FBcUJBLGFBQXJCO0FBQ0EsU0FBS0csSUFBTCxHQUFZO0FBQ1ZDLGdCQUFVQyxTQUFTQSxLQURUO0FBRVZDLGVBQVMsTUFBTSxDQUFDLEdBQUQsRUFBTSxFQUFOLENBRkw7QUFHVkMsZ0JBQVU7QUFIQSxLQUFaO0FBS0Q7O0FBRURDLFVBQVFDLElBQVIsRUFBYztBQUNaLFdBQU8sS0FBS1QsYUFBTCxDQUFtQlMsSUFBbkIsRUFBeUIsRUFBRUMsVUFBVSxRQUFaLEVBQXpCLEVBQ0pDLElBREksQ0FDRUMsR0FBRCxJQUFTO0FBQ2IsWUFBTUMsTUFBTSxJQUFJQyxlQUFKLENBQVVGLEdBQVYsQ0FBWjtBQUNBLFlBQU1HLE9BQU8sSUFBSUMsdUJBQUosRUFBYjtBQUNBLFdBQUtELElBQUwsR0FBWUEsS0FBS0UsT0FBTCxDQUFhSixHQUFiLENBQVo7QUFDRCxLQUxJLENBQVA7QUFNRDs7QUFFREssV0FBU0MsSUFBVCxFQUFlO0FBQ2IsUUFBSSxPQUFPQSxJQUFQLEtBQWdCLFFBQXBCLEVBQThCO0FBQzVCLFlBQU1DLE1BQU0sSUFBSUMsc0JBQUosQ0FBaUIsZ0NBQWpCLEVBQW1ELEdBQW5ELEVBQXdELGlCQUF4RCxDQUFaO0FBQ0EsYUFBT0MsUUFBUUMsTUFBUixDQUFlSCxHQUFmLENBQVA7QUFDRDtBQUNELFVBQU1JLGNBQWMsSUFBSUMsc0NBQUosQ0FBZ0IsS0FBS3RCLElBQXJCLENBQXBCO0FBQ0EsV0FBTyxLQUFLWSxJQUFMLENBQVVXLE9BQVYsQ0FBa0JQLElBQWxCLEVBQXdCUSxZQUF4QixDQUFxQ0gsV0FBckMsQ0FBUDtBQUNEOztBQUVLSSxRQUFOLEdBQWU7QUFBQTs7QUFBQTtBQUNiLFVBQUk7QUFDRixjQUFNLE1BQUtiLElBQUwsQ0FBVWEsTUFBVixFQUFOO0FBQ0EsZUFBTyxJQUFQO0FBQ0QsT0FIRCxDQUdFLE9BQU9DLENBQVAsRUFBVTtBQUNWLGNBQU1ULE1BQU0sSUFBSUMsc0JBQUosQ0FBaUJRLEVBQUVDLE9BQW5CLEVBQTRCLEdBQTVCLEVBQWlDLGlCQUFqQyxDQUFaO0FBQ0EsZUFBT1IsUUFBUUMsTUFBUixDQUFlSCxHQUFmLENBQVA7QUFDRDtBQVBZO0FBUWQ7O0FBRUtXLGNBQU4sQ0FBbUJ0QixJQUFuQixFQUF5QlUsSUFBekIsRUFBK0I7QUFBQTs7QUFBQTtBQUM3QixVQUFJO0FBQ0YsY0FBTWEsUUFBUSxNQUFNVixRQUFRVyxPQUFSLENBQWdCZCxJQUFoQixFQUFzQlIsSUFBdEIsQ0FBMkI7QUFBQSxpQkFBT0MsR0FBUDtBQUFBLFNBQTNCLENBQXBCOztBQUVBLGNBQU0sT0FBS0osT0FBTCxDQUFhQyxJQUFiLENBQU47QUFDQSxjQUFNLE9BQUtTLFFBQUwsQ0FBY2MsS0FBZCxDQUFOO0FBQ0EsY0FBTSxPQUFLSixNQUFMLEVBQU47QUFDQSxlQUFPLE9BQUtiLElBQUwsQ0FBVW1CLE1BQVYsR0FDSkMsUUFESSxDQUNLLEVBQUVDLE1BQU0sWUFBUixFQURMLENBQVA7QUFFRCxPQVJELENBUUUsT0FBT1AsQ0FBUCxFQUFVO0FBQ1YsZUFBT1AsUUFBUUMsTUFBUixDQUFlTSxDQUFmLENBQVA7QUFDRDtBQVg0QjtBQVk5QjtBQW5EUTs7a0JBc0RJLE1BQU0sSUFBSS9CLElBQUosRSIsImZpbGUiOiJEb2N4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEpTWmlwIGZyb20gJ2pzemlwJztcbmltcG9ydCBEb2N4dGVtcGxhdGVyIGZyb20gJ2RvY3h0ZW1wbGF0ZXInO1xuaW1wb3J0IEltYWdlTW9kdWxlIGZyb20gJ29wZW4tZG9jeHRlbXBsYXRlci1pbWFnZS1tb2R1bGUnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IEVycm9yRG9jeFBkZiBmcm9tICcuLy4uLy4uL2xpYi9FcnJvckRvY3hQZGYnO1xuXG5jbGFzcyBEb2N4IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgcmVhZEZpbGVBc3luYyA9IHByb21pc2lmeShmcy5yZWFkRmlsZSk7XG4gICAgdGhpcy5yZWFkRmlsZUFzeW5jID0gcmVhZEZpbGVBc3luYztcbiAgICB0aGlzLm9wdHMgPSB7XG4gICAgICBnZXRJbWFnZTogaW1hZ2UgPT4gaW1hZ2UsXG4gICAgICBnZXRTaXplOiAoKSA9PiBbMzIwLCA0MF0sXG4gICAgICBjZW50ZXJlZDogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIHNldERvY3goZmlsZSkge1xuICAgIHJldHVybiB0aGlzLnJlYWRGaWxlQXN5bmMoZmlsZSwgeyBlbmNvZGluZzogJ2JpbmFyeScgfSlcbiAgICAgIC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgY29uc3QgemlwID0gbmV3IEpTWmlwKHJlcyk7XG4gICAgICAgIGNvbnN0IGRvY3ggPSBuZXcgRG9jeHRlbXBsYXRlcigpO1xuICAgICAgICB0aGlzLmRvY3ggPSBkb2N4LmxvYWRaaXAoemlwKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbWFrZURhdGEoZGF0YSkge1xuICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvckRvY3hQZGYoJ21ha2VEYXRhIGFjZWl0YSBhcGVuYXMgb2JqZXRvIScsIDQwMCwgJ1pUWF9ET0MyUERGXzAwMycpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycik7XG4gICAgfVxuICAgIGNvbnN0IGltYWdlTW9kdWxlID0gbmV3IEltYWdlTW9kdWxlKHRoaXMub3B0cyk7XG4gICAgcmV0dXJuIHRoaXMuZG9jeC5zZXREYXRhKGRhdGEpLmF0dGFjaE1vZHVsZShpbWFnZU1vZHVsZSk7XG4gIH1cblxuICBhc3luYyByZW5kZXIoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZG9jeC5yZW5kZXIoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvckRvY3hQZGYoZS5tZXNzYWdlLCA1MDAsICdaVFJfRE9DMlBERl8wMDInKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG1ha2VDb250cmFjdChmaWxlLCBkYXRhKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc29sID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGRhdGEpLnRoZW4ocmVzID0+IHJlcyk7XG5cbiAgICAgIGF3YWl0IHRoaXMuc2V0RG9jeChmaWxlKTtcbiAgICAgIGF3YWl0IHRoaXMubWFrZURhdGEocmVzb2wpO1xuICAgICAgYXdhaXQgdGhpcy5yZW5kZXIoKTtcbiAgICAgIHJldHVybiB0aGlzLmRvY3guZ2V0WmlwKClcbiAgICAgICAgLmdlbmVyYXRlKHsgdHlwZTogJ25vZGVidWZmZXInIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4gbmV3IERvY3goKTtcbiJdfQ==