Я хочу экспортировать HTML в PDF с помощью JavaScript, я видел библиотеки, такие как jsPDF и pdfMake, но они очень ограничены. Например, ни один из них я не могу экспортировать HTML-элементы, например <hr>
, с jsPDF стиль очень ограничен, я видел this вопрос, но ответ для меня не работает, с pdfMake я не могу загрузить pdf, просто с chrome.Экспорт html в PDF с помощью JavaScript
4
A
ответ
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'));
});
Надеюсь, это поможет.
Лучшее, что я видел для этого, это использовать серверный процесс для запуска PhantomJS, распечатать в PDF и ответить сгенерированным файлом – Phil
В моем проекте я не могу использовать сервер, я должен сделать это на клиентская сторона ... –
Это проблема, с которой я сейчас борюсь, у меня есть заинтересованность в решении этой проблемы. Как я вижу, любое серверное решение должно использовать распознанный механизм рендеринга, с чем-то вроде PhantomJS, непонятным, какой механизм рендеринга он использует, поэтому результаты могут быть не такими, как хотелось бы, особенно с новыми элементами HTML5. Другая проблема - автоматизация от отдельного процесса - приложения Java. Его легко печатать в PDF из браузера, предоставляя вам драйвер печати. Я предполагаю, что у нас обоих есть потребности в автоматизации. – psycotik