我正在使用Phantom-html-to-pdf创建文档。在我的节点应用程序中,我使用EJS模板创建HTML字符串,然后将文档保存到文件夹中。
在我的EJS文件中,我导入了css文件,但是对于20%的PDF生成的css似乎没有加载。 所以错误是字体没有加载,即使使用后备字体,我也得到了空白PDF
我的功能:
function createPdf (data, template, directory) {
var options = {};
var type = template.indexOf('avoir') >= 0 ? true : false
var tva = [];
var items = listeItem(data);
var list = calculeTva(data.Liste_item, type);
Societe.findOne({}, (err, doc) => {
data.Liste_tva = list ;
data.societe = doc ;
data.items = items ;
var html = ejs.renderFile(__dirname + `/template/${template}.ejs`, {data: data}, options, function(err, str){
if(err){
return err
}
return str
});
var option = {
html : html,
}
var filename = directory === 'archive' ? data.Référence + '-' + Date.now() : data.Référence;
var conversion = require("phantom-html-to-pdf")();
// var conversion = require("phantom-html-to-pdf")({
// phantomPath: require("phantomjs-prebuilt").path
// });
conversion({
html: html,
paperSize: {
format: 'A4',
orientation: 'portrait',
margin: {bottom: '0cm', left: '0.5cm', right: '0.5cm', top: '0.5cm'},
}
}, function(err, pdf) {
console.log('ERR', err)
var output = fs.createWriteStream(`documents/${directory}/${filename}.pdf`)
pdf.stream.pipe(output);
response = {success: false, err: err}
return response
});
});
}
我的EJS:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://mywebsite.com/css/uikitx.css" />
<link href="https://mywebsite.com/css/custom.css" rel="stylesheet"/>
</head>
<body style="font-family: 'AvenirNext', Helvetica, sans-serif;">
我真的坚持这个,知道吗?
谢谢