Создание PDF из шаблона html в узле js

#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. : (