我已经实现了这一点,但它是一种将 html 转换为 pdf 的方式略有不同。在下面的代码中,我使用jade(现在称为pug)来允许这个pdf在结构上不会改变的情况下是动态的,只是值。换句话说,它是一个可重用的模板。另外,我是异步执行此操作的,这是您遇到问题的潜在原因。您编写同步代码是否有特定原因?
在您的代码中,有几个变量您没有显示定义,所以我看不出这是否是问题所在。如果您包含您的代码,我将能够为您提供更多帮助。我希望我的代码在此期间对您有所帮助。
let fs = require('fs');
let path = require('path');
let jade = require('jade');
let pdf = require('html-pdf');
let filepath = path.resolve(__dirname, '../views/example.jade');
let templateVariables = {}; // If you have any to pass in
fs.readFile(filepath, 'utf8', function(err, data) {
if (err) throw err;
let fn = jade.compile(data);
let html = fn(templateVariables);
let options = {
pageSize: 'Letter',
marginTop: '0.5in',
marginLeft: '0.25in',
marginRight: '1.0in',
marginBottom: '0.5in'
};
if (html) {
pdf.create(html, options).toFile('./example.pdf', function(err, res){
if (err) {
console.log(err);
cb(err);
}
if (res) {
console.log('pdf res ', res);
}
});
}
});