UNPKG

html-template-pdf

Version:

This is the swiss army knife of html to pdf render'ers. Support for EJS, Mustache, Handlebars, Pug, or HAML to PDF

70 lines (66 loc) 2.13 kB
var templateCompiler = require('./lib/templateCompiler'); var pdfGenerator = require('./lib/pdfGenerator'); var awsUpload = require('./lib/awsUpload'); var saveFile = require('./lib/saveFile'); var validateOptions = require('./lib/validateOptions'); var fs = require('fs') var del = require('del'); module.exports = function config(options) { return new Promise(function (resolve, reject) { var renderedTemplates; if (validateOptions(options) === false ) { reject("Malformed Options"); return; }; if (options.html) { renderedTemplates = options.html; } else { renderedTemplates = templateCompiler(options.templateOptions); } pdfGenerator(options.pdfOptions, renderedTemplates, options.fileName, options.pdftkPath) .then(function (tempFile) { if (options.aws) { awsUpload(options.aws, tempFile, options.fileName) .then(function (success) { resolve(success); del('./tmp/**'); }) .catch(function (err) { reject(err); console.error(err); del('./tmp/**'); return; }); } else if (options.buffer === true) { //return a buffer fs.readFile(tempFile, function (err, data) { if (err) { reject(err); console.error('error', err); return; } resolve(data) del('./tmp/**'); }) } else { saveFile(tempFile, options.filePath, options.fileName) .then(function (success) { resolve(success); del('./tmp/**'); }) .catch(function (err) { reject(err) del('./tmp/**'); console.error(err); return; }) } }) .catch(function (err) { reject(err) del('./tmp/**'); console.error(err); return; }) }); };