目前,我正在测试html-pdf模块,以便从html生成pdfs。我已经成功地生成了一个。但问题是html中的文本/数据此时是固定的。
我试图做的是在前端有一个html表单,用户填写,然后生成一个pdf,其中包括用户键入的内容。
到目前为止,我所做的是:
app.post('/pdf',function(req, res) {
pdf.create(html, options).toFile('./businesscard.pdf', function(err, res) {
if (err) return console.log(err);
console.log(res);
});
});这可以使用html-pdf吗?任何帮助都将不胜感激。
发布于 2016-10-06 20:18:36
不幸的是,html-pdf模块不能处理动态数据。您可以查看执行屏幕截图的phantomjs。
实际上,html-pdf模块在后台使用了"phantomjs“。但是,它使用了phantomjs的小功能。
发布于 2021-12-05 15:20:08
你可以查看dynamic-html-pdf
只需按照以下步骤操作:
使用此命令npm install dynamic-html-pdf --save安装
var fs = require('fs');var pdf = require('dynamic- html -pdf');var html= fs.readFileSync('template.html','utf8');pdf.registerHelper('ifCond',function (v1,v2,options) ){ if (v1 === v2) { return options.fn(this);} return options.inverse(this);}) var options ={ format:"A3",orientation:“纵向”,边框:“10 fs”};//您的动态数据var用户={姓名:'aaa',年龄: 24,道布:‘1991-01’},{姓名:'bbb',年龄: 25,道布:‘1995-01’},{姓名:'ccc',年龄: 24,道布:‘1994-01’};var document ={ type:' buffer ',// 'file‘或'buffer’模板: html,context:{ users: users },path:"./output.pdf“//类型为buffer}时不需要;pdf.create(document,options) .then(res => { console.log(res) }) .catch(error => { console.error(error) });
发布于 2022-02-01 09:34:57
我正在寻找同样的解决方案,并找到了一个解决方案。
https://medium.com/free-code-camp/how-to-generate-dynamic-pdfs-using-react-and-nodejs-eac9e9cb4dde
你可以在博客中查看这项工作。他简单地调用了一个返回HTML字符串的函数,并对动态数据使用了反引号。
https://stackoverflow.com/questions/39892918
复制相似问题