#javascript #node.js #pdf #wkhtmltopdf #pdfkit
#javascript #node.js #PDF #wkhtmltopdf #pdfkit
Вопрос:
У меня есть требование, чтобы мне нужно было создать PDF. Для меня лучший способ — сделать это с помощью html-шаблона и создать PDF с помощью любой сторонней библиотеки. Я наткнулся на решение, которое отображает HTML с помощью ejs и создает pdf с помощью html-pdf. Это работает нормально, но у меня возникла проблема с разрывом страницы.
Существует популярный модуль pdfkit. Но он использует свою собственную концепцию и процедуру для отображения pdf. Для node он не отображает html-файл, но для python он отображает html-шаблон.
Пожалуйста, скажите мне, как я могу преобразовать html-шаблон в pdf с помощью PDFKit, а также каков наилучший способ визуализации html и преобразования в pdf?
Спасибо
Ответ №1:
Puppeteer — лучший способ преобразования HTML в PDF, а также для веб-очистки.
Короткую инструкцию по созданию PDF из HTML вы также можете увидеть здесь, команда Chrome DevTools поддерживает библиотеку, поэтому это лучшее решение. О разрыве страницы. Эта проблема может быть решена в HTML-коде. Существует вариант стиля для решения проблемы.
style="page-break-after:always;"
Комментарии:
1. Куда идет page-break-after: всегда;?
2. @NingaCodingTRV github.com/puppeteer/puppeteer/issues/5277 может быть полезно
Ответ №2:
Проблема с использованием библиотек PDF Converter, доступных в NPM, таких как pdfkit, заключается в том, что вам придется заново воссоздавать структуры страниц в ваших HTML-шаблонах, чтобы получить желаемый результат.
Один из лучших подходов к рендерингу html и преобразованию в pdf — это использование Puppeteer на NodeJS. Puppeteer — это библиотека узлов, которая предоставляет высокоуровневый API для управления Chrome или Chromium по протоколу DevTools. В вашем случае его можно использовать для создания скриншотов и PDF-файлов HTML-страниц.
Комментарии:
1. Проблема с Puppeteer в том, что вы не можете показывать предварительные просмотры PDF в режиме реального времени, но если вы используете pdfkit, вы можете показывать предварительный просмотр. В любом случае это решение основано на варианте использования. У меня так много проблем из-за предварительного просмотра PDF. : (