作者:mobiledu2502898543 | 来源:互联网 | 2023-01-30 17:03
我有一个html模板页面,我想通过EJS填写数据,之后我想将这个完成的页面传递给PDF创建者; 最终的结果是我的页面的一个漂亮的PDF版本充满了我的数据.
对于PDF创建者,我正在使用NPM html-pdf
进行转换.问题是,我不知道我可以用我的数据呈现页面,自动保存,然后将完成的页面传递给PDF创建者,因为PDF创建者只接受保存网页的服务器路径.
也许我正在接近这个错误的方式,但下面是我目前所拥有的,但事实并非如此.任何正确方向的帮助将不胜感激.
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();
Natsathorn..
5
这是解决方案.我们读了EJS的模板文件,然后将其编译成PDF格式.
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
<%= text %>
1> Natsathorn..:
这是解决方案.我们读了EJS的模板文件,然后将其编译成PDF格式.
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
<%= text %>