Какие библиотеки HTML в PDF обрабатывают javascript?


Я пытаюсь понять, как создать PDF-файл из HTML, содержащий диаграммы, созданные с помощью библиотеки javascript flot. Dompdf была моей оригинальной библиотекой преобразования, но после добавления диаграмм flot она с треском проваливается. Я так осмотрелся (особенно в https://stackoverflow.com/questions/3178448/list-of-html-to-pdf-converters ) и некоторое время гуглил, но, похоже, не нашел ничего, что явно обеспечивало бы поддержку javascript. Я работаю на PHP. Я видел, как кто-то упоминал в этом опубликуйте, что они успешно использовали php-wkhtmltox во всех случаях, кроме диаграммы, созданной другой библиотекой javascript. Это мой единственный шанс? Я мог бы заплатить до пары сотен долларов, если бы был доступен коммерческий вариант.

Если это действительно невозможно с текущими библиотеками, в чем именно заключается проблема, которая значительно усложняет преобразование html, созданного javascript, по сравнению с обычным html?

Спасибо

Author: Community, 2011-02-01

3 answers

Вы можете использовать wkhtmlтопдф

Просто извлеките его на свой сервер, выполните команду (ознакомьтесь с руководством здесь).

Благодарю вас.

 8
Author: Wazy, 2011-02-01 04:32:14

Онлайн-API Pdfcrowd HTML для PDF может запускать JavaScript. Вы можете скачать клиентскую библиотеку для PHP и попробовать ее.

Это коммерческое решение SaaS, вот документы: http://pdfcrowd.com/html-to-pdf-api/.

 3
Author: user581844, 2011-02-05 20:54:38

PDF-ФАЙЛ

sudo npm i pdfpy

Var pdfpy = требуется('pdfpy');

Файл

var pdfpy = require('pdfpy');

    var data = {
        //the key as to be same as below
        input: "./test.html",
        output: "./output.pdf"
    }
    pdfpy.file(data, function(err, res) {
        if(err) throw err

        if(res) console.log("success")
    });

URL-АДРЕС

var pdfpy = require('pdfpy');

var data = {
    //the key as to be same as below
    input: "http://google.com",
    output: "./output.pdf"
}
pdfpy.url(data, function(err, res) {
    if(err) throw err

    if(res) console.log("success")
});
 1
Author: Keerthi Niranjan, 2017-02-21 20:15:47