我正在Node.js 10.x和angular 6.x中构建一个Web应用程序。我希望生成一个PDF并通过浏览器下载。
generatePDF(params): any {
return this.http.post(this.url('generatePDF'), params, this.getRequestOptions())
.pipe(map((res: any) => {
return res;
})
);
}
async generatePDF(options = { format:'A4' }) {
return new Promise((resolve, reject) => { ejs.renderFile(this.templateName, this.data, (err, res) => {
if (err) {
return reject(err);
}
pdf.create(res, options)
.toFile(this.fileName, (err, res) => {
if (err) {
return reject(err);
}
resolve(res);
});
});
});
}
答案 0 :(得分:0)
我已经如下解决了这个问题。
Node.js
let pdffilename = username + '_' + gameName.replace(/ /g, "_") + '.pdf';
pdfReport = new Report(gameName, ejsfilename, pdffilename, refined_score);
await pdfReport.generatePDF();
res.sendFile(pdfReport.fileName);
答案 1 :(得分:0)
创建PDF路径后,您可以使用以下代码下载文件
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'X-Requested-With');
res.header('content-type', 'application/pdf');
res.download(PDF_PATH, PDF_NAME + '.pdf');