我现在正在做 Nodejs,尝试使用 PDFMake 生成 PDF。生成后,我希望立即下载它。但是,下载文件后,我无法打开文件。它显示“无法加载 PDF 文档”。我写的代码如下。
var docDefinition = { content: 'test', };
var pdfDoc = printer.createPdfKitDocument(docDefinition);
pdfDoc.pipe(fs.createWriteStream('name.pdf'));
pdfDoc.end();
res.download('name.pdf');
Run Code Online (Sandbox Code Playgroud)
查看我对此问题的解决方案pdfMake - cannot open file。
为什么pdfmake
无法打开文件是因为文件流fs
仍在写入内存块,这使得它无法读取并且下载的PDF会被损坏,大小为0KB。
解决方案:添加一个事件监听器fs.createWriteSteam
,等待fs
写入完成再发送文件。
var temp123;
pdfDoc.pipe(temp123 = fs.createWriteStream('./PDF/' + name), { encoding:'utf16' });
pdfDoc.end();
temp123.on('finish', async function () {
// do send PDF file
res.download('name.pdf');
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1640 次 |
最近记录: |