用可变数据呈现HTML并将其转换为PDF

我有一个html模板页面,我想通过EJS填写数据,之后我想把这个完成的页面传递给PDF创build者; 最终的结果是我的页面充满了我的数据很好的PDF版本。

对于PDF创build者,我使用NPM html-pdf进行转换。 问题是,我不知道我可以用我的数据渲染页面,自动保存页面,然后将完成的页面传递给PDF创build者,因为PDF创build者只接受保存网页的服务器path。

也许我正在接近这个错误的方式,但下面是我目前所知道的,这确实不是很多。 任何帮助在正确的方向将不胜感激。

 var renderPDF = function() { var pdf = require('html-pdf'); // pulls html page var html = fs.readFileSync('views/assets/html/render.ejs', 'utf8'); var options = {}; // creates views/test.pdf pdf.create(html, options).toFile('views/test.pdf', function(err, res) { if (err) return console.log(err); console.log(res); }); }; // this is how I usually render ejs files with data response.render('assets/html/render.ejs', {myDataOject}); // start the conversion renderPDF(); 

这是解决scheme。 我们阅读模板文件,然后用EJS进行编译。

index.js

 var fs = require('fs'); var ejs = require('ejs'); var pdf = require('html-pdf') var compiled = ejs.compile(fs.readFileSync(__dirname + '/template.html', 'utf8')); var html = compiled({ title : 'EJS', text : 'Hello, World!' }); pdf.create(html).toFile('./result.pdf',() => { console.log('pdf done') }) 

template.html

 <html> <head> <title><%= title %></title> </head> <body> <p><%= text %></p> </body>