UNPKG

html-to-pdf-maker

Version:

An html to pdf converter utility

69 lines (61 loc) 2.18 kB
var Handlebars = require('handlebars'); var pdf = require('html-pdf'); var createFile = function(document, options) { return new Promise((resolve, reject) => { if (!document || !document.html || !document.data) { reject(new Error("Some, or all, options are missing.")); } // Compiles a template var html = Handlebars.compile(document.html)(document.data); var pdfPromise = pdf.create(html, options); // Create PDF from html template generated by handlebars // Output will be PDF file pdfPromise.toFile(document.path, (err, res) => { if (!err) resolve(res); else reject(err); }); }); } var createBuffer = function(document, options) { return new Promise((resolve, reject) => { if (!document || !document.html || !document.data) { reject(new Error("Some, or all, options are missing.")); } // Compiles a template var html = Handlebars.compile(document.html)(document.data); var pdfPromise = pdf.create(html, options); // Create PDF from html template generated by handlebars // Output will be PDF file pdfPromise.toBuffer((err, res) => { if (!err) resolve(res); else reject(err); }); }); } var createStream = function(document, options) { return new Promise((resolve, reject) => { if (!document || !document.html || !document.data) { reject(new Error("Some, or all, options are missing.")); } // Compiles a template var html = Handlebars.compile(document.html)(document.data); var pdfPromise = pdf.create(html, options); // Create PDF from html template generated by handlebars // Output will be PDF file pdfPromise.toStream((err, res) => { if (!err) resolve(res); else reject(err); }); }); } module.exports = { createFile, createBuffer, createStream }