我有一个 html 模板页面,我想通过 EJS 填充数据,之后我想将这个完成的页面传递给 PDF 创建者;最终结果是我的页面的一个漂亮的 PDF 版本,其中充满了我的数据。
对于 PDF 创建者,我使用 NPMhtml-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();
这是解决方案。
我们读取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')
})
模板.html
<html>
<head>
<title><%= title %></title>
</head>
<body>
<p><%= text %></p>
</body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)