Фантом html-to-pdf Документ поврежден - PullRequest
0 голосов
/ 26 августа 2018

Я использую 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:

<!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;">

Я действительно застрял на этом, есть идеи?

Спасибо

...