Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return new Promise((resolve, reject) => {
// get the template with the data added to it
var resultHTML = template({ meals: data })
if (resultHTML && data) { // if we have both data and a resulting html from executing the template
var today = new Date()
var year = today.getFullYear() + 1
var month = today.getMonth() + 1
var day = today.getDate()
var filePath = "./reports/report-" + year + "-" + month + "-" + day + ".pdf"
var fileName = "report-" + year + "-" + month + "-" + day + ".pdf"
// create the pdf landscape to fit the table
pdf.create(resultHTML, { format: 'Letter',"orientation": "letter" }).toFile(filePath, function(error, result){
// create file to send pdf file back to user does not take up space on our server
if (error) { // report pdf creation error
console.log("Could not create PDF")
console.log(error)
return reject(error)
}
return resolve(fileName)
})
} else { // report the lack of data or output or both
return reject("no report data")
}
})
}
return new Promise((resolve, reject) => {
if (!document || !document.template || !document.context) {
reject(new Error("Some, or all, options are missing."));
}
if (document.type !== 'buffer' && !document.path) {
reject(new Error("Please provide path parameter to save file or if you want buffer as output give parameter type = 'buffer'"));
}
var html = Handlebars.compile(document.template)(document.context);
var pdfPromise = pdf.create(html, options);
if (document.type === 'buffer') {
// Create PDF from html template generated by handlebars
//Output will be buffer
pdfPromise.toBuffer((err, buff) => {
if (!err)
resolve(buff);
else
reject(err);
});
} else {
// Create PDF from html template generated by handlebars
// Output will be PDF file
pdfPromise.toFile(document.path, (err, res) => {
if (!err)
resolve(res);
else
app.renderToHTML(req, res, '/nametags', params).then(html => {
if (format === 'html') {
return res.send(html);
}
const options = {
pageFormat: pageFormat === 'A4' ? 'A4' : 'Letter',
renderDelay: 3000,
};
// html = html.replace(/)<[^<]*)*<\/script>/gi,'');
const filename = `${moment().format('YYYYMMDD')}-${collectiveSlug}-${eventSlug}-attendees.pdf`;
res.setHeader('content-type', 'application/pdf');
res.setHeader('content-disposition', `inline; filename="${filename}"`); // or attachment?
pdf.create(html, options).toStream((err, stream) => {
if (err) {
logger.error('>>> Error while generating pdf at %s', req.url, err);
return next(err);
}
stream.pipe(res);
});
});
});
memberHtml = memberHtml.replace("{TOTAL_CONTRIBUTIONS}","Total Contributions: $" + parseFloat(totalContributions).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,'))
memberHtml = memberHtml.replace("{FOOTER}","No goods or services were provided in return for these contributions, other than intangible religious benefits.");
if (i + 1 === church.members.length) {
memberHtml = memberHtml.replace("<div class="\"member">","<div class="\"member-margin\"">");
}
members = members + memberHtml;
});
html = html.replace('{MEMBERS}',members);
//res.send(html);
pdf.create(html, options).toStream(function(err, stream){
if (err) return console.log(err);
stream.pipe(res);
});
});
</div></div>
return new Promise((resolve, reject) => {
pdf.create(html, options).toFile(output, function (err) {
if (err) {
console.log(err);
reject(err);
}
resolve();
});
})
}
const generatePDF = (html, fileName) => {
try {
pdf.create(html).toFile(`${temp}/${fileName}`, (error, response) => {
if (error) {
module.reject(error)
} else {
console.log(response)
module.resolve({ fileName, base64: getBase64String(response.filename) })
}
})
} catch (exception) {
module.reject(exception)
}
}
members = members
+ ""
+ ""
+ member.lastName
+ ", " + member.firstName
+ ""
+ ""
+ moment(member.dateOfDeath).format("MM/DD/YYYY")
+ ""
+ "";
});
html = html.replace('{MEMBERS}',members);
//res.send(html);
pdf.create(html, options).toStream(function(err, stream){
if (err) return console.log(err);
stream.pipe(res);
});
});
members = members
+ ""
+ ""
+ member.lastName
+ ", " + member.firstName
+ ""
+ ""
+ moment(member.dateOfBirth).format("MM/DD/YYYY")
+ ""
+ "";
});
html = html.replace('{MEMBERS}',members);
//res.send(html);
pdf.create(html, options).toStream(function(err, stream){
if (err) return console.log(err);
stream.pipe(res);
});
});
return new Promise(function(resolve, reject){
setHeader(res, filename);
pdf.create(content, options).toStream(function(err, stream){
if(err){
reject(err);
}else{
stream.pipe(res);
stream.on('end', function(){
res.end();
resolve();
})
}
});
});
}