如何使用html-pdf-node保存PDF文件?生成缓冲却无法保存至当前目录
问题原因
你的代码仅调用generatePdf生成了PDF缓冲,但没有执行文件写入操作——html-pdf-node的generatePdf方法默认返回内存中的Buffer对象,不会自动将内容写入磁盘,因此无法在目录中生成PDF文件。
解决代码
使用Node.js内置的fs模块将PDF缓冲写入本地文件,修改后的代码如下:
const html_to_pdf = require('html-pdf-node'); const fs = require('fs'); let options = { format: 'A4' }; let file = { content: "<h1>Welcome to html-pdf-node</h1>" }; html_to_pdf.generatePdf(file, options).then(pdfBuffer => { // 将缓冲写入当前目录的output.pdf文件 fs.writeFileSync('./output.pdf', pdfBuffer); console.log("PDF文件已成功保存到当前目录"); }).catch(err => { console.error("生成或保存PDF时出错:", err); });
补充说明
fs是Node.js内置模块,无需额外安装依赖- 如果需要异步写入(避免阻塞主线程),可以替换为
fs.writeFile:fs.writeFile('./output.pdf', pdfBuffer, (err) => { if (err) throw err; console.log("PDF文件已保存"); }); - 可自行修改
./output.pdf的路径和文件名,比如./reports/my-document.pdf指定子目录保存
内容的提问来源于stack exchange,提问作者PriteshSurale
相关产品推荐
相关产品推荐

