Я хочу экспортировать HTML в PDF с помощью JavaScript, я видел такие библиотеки, как jsPDF и pdfMake, но они очень ограничены. Например, ни с одним из них я не могу экспортировать элементы HTML, такие как <hr>
, с jsPDF стиль очень ограничен, я видел этот вопрос, но ответ у меня не работает, с pdfMake я не могу скачать pdf, просто с chrome.
Экспорт html в PDF с помощью JavaScript
comment
Лучшее, что я видел для этого, - это использовать процесс на стороне сервера для запуска PhantomJS, печати в PDF и ответа сгенерированным файлом.
- person Phil   schedule 08.07.2015
comment
В моем проекте я не могу использовать сервер, я должен делать это на стороне клиента...
- person István   schedule 08.07.2015
comment
Это проблема, с которой я борюсь в настоящее время, и у меня есть личная заинтересованность в ее решении. Я вижу, что любое решение на стороне сервера должно использовать признанный механизм рендеринга, с чем-то вроде PhantomJS неясно, какой механизм рендеринга он использует, поэтому результаты могут быть не такими, как хотелось бы, особенно с новыми элементами HTML5. Другая проблема — автоматизация из отдельного процесса, Java-приложения. Его легко распечатать в PDF из браузера, если у вас есть драйвер принтера. Я предполагаю, что у нас обоих есть потребности в автоматизации.
- person glend   schedule 08.07.2015
Ответы (1)
Если вы можете получить HTML из URL-адреса, вы можете проверить этот ответ, который я написал, объясняет, как это сделать.
Пример:
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'));
});
Надеюсь, поможет.
person
David López
schedule
04.02.2018
Проект больше не работает. Не могли бы вы обновить его?
- person John Max; 31.10.2019
Проект снова прекратил работу. Пожалуйста, есть ли способ разветвить его, чтобы избежать непредсказуемых прерываний в будущем?
- person John Max; 28.05.2020
Привет @JohnMax, я ответил вам в вопросе, который вы создали на Github: github.com/Dellos7 /dhtml2pdf/issues/7 , там я объясню вам, как вы можете разветвить его, чтобы настроить свой собственный экземпляр Heroku с приложением.
- person David López; 29.05.2020