html-to-pdf-maker
Version:
An html to pdf converter utility
69 lines (61 loc) • 2.18 kB
JavaScript
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
}