const doc = new PDFDocument();
// do stuff here
const writeStream = fs.createWriteStream('output.pdf')
doc.pipe(writeStream);
doc.end();
上面的代码生成pdf文件,但无法打开pdf,显示文件已损坏的错误。
您可能遇到异步问题,在文档写入磁盘之前尝试访问/返回文档。
用处理程序修复:
writeStream.on('finish', () => { .. your code here .. });
在 AlienWebguy 的答案之上,如果您处于异步函数中,则可以执行以下操作:
import { once } from 'events'
async function main () {
const doc = new PDFDocument();
// do stuff here
const writeStream = fs.createWriteStream('output.pdf')
doc.pipe(writeStream);
doc.end();
await once(writeStream, 'finish');
}
当
main()
完成执行时,您可以保证流已完成写入磁盘,并且可以再次安全地操作文件,或退出进程。