Я использую Phantom-html-to-pdf для создания документов. В моем приложении узла я создаю строку HTML с шаблоном EJS, а затем сохраняю документы в папке.
В моем 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:
Я действительно застрял на этом, есть идеи?
Спасибо