2015-07-08 4 views
4

Я хочу экспортировать HTML в PDF с помощью JavaScript, я видел библиотеки, такие как jsPDF и pdfMake, но они очень ограничены. Например, ни один из них я не могу экспортировать HTML-элементы, например <hr>, с jsPDF стиль очень ограничен, я видел this вопрос, но ответ для меня не работает, с pdfMake я не могу загрузить pdf, просто с chrome.Экспорт html в PDF с помощью JavaScript

+2

Лучшее, что я видел для этого, это использовать серверный процесс для запуска PhantomJS, распечатать в PDF и ответить сгенерированным файлом – Phil

+1

В моем проекте я не могу использовать сервер, я должен сделать это на клиентская сторона ... –

+0

Это проблема, с которой я сейчас борюсь, у меня есть заинтересованность в решении этой проблемы. Как я вижу, любое серверное решение должно использовать распознанный механизм рендеринга, с чем-то вроде PhantomJS, непонятным, какой механизм рендеринга он использует, поэтому результаты могут быть не такими, как хотелось бы, особенно с новыми элементами HTML5. Другая проблема - автоматизация от отдельного процесса - приложения Java. Его легко печатать в PDF из браузера, предоставляя вам драйвер печати. Я предполагаю, что у нас обоих есть потребности в автоматизации. – psycotik

ответ

0

Если вы можете получить HTML-код из URL-адреса, вы можете проверить this answer, что я написал, что объясняет, как это сделать.

Пример:

https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=show 

Это так легко поставить якорь в вашем HTML, который показывает PDF или загрузки его в вашем HTML.

Этот якорь будет показывать PDF, преобразованного из https://www.github.com страницы:

<a href="https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=show" target="_blank">Show PDF</a> 

И это один загрузит его:

<a href="https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=download&file_name=my_pdf">Download PDF</a> 

Если вы хотите попробовать это с JavaScript, вы можете создать HTML-кнопка и клик-событие загружают PDF-файл. Пример:

HTML:

<button type="button" id="download-pdf-button">Download the PDF</button> 

JavaScript:

document.getElementById("download-pdf-button").addEventListener("click", function() { 
    var link = document.createElement('a'); 
    link.href = 'https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=download'; 
    link.download = 'file.pdf'; 
    link.dispatchEvent(new MouseEvent('click')); 
}); 

See the project in Github.

Надеюсь, это поможет.