@Markizzio
fullstack-developer

Как генерировать PDF в JS?

Здравствуйте, появился вопрос на счет генерации PDF документов. Необходимо генерировать PDF файл на основе JSON или HTML, рассмотрел 2 варианта, на беке с помощью puppeteer, и на фронте с помощью jsPDF или Print.js, придерживаюсь варианта на беке, потому что документов много, и их количество скорее всего будет расти, и тащить все шаблоны на фронт не очень хочется, да и с кодировкой в jsPDF все не очень хорошо. Собственно интересует какой подход правильнее использовать? Может быть есть какой то не очевидный для меня вариант?
  • Вопрос задан
  • 534 просмотра
Решения вопроса 3
@salikovpro
По опыту скажу, лучше использовать полноценные инструменты для генерации PDF нежели варианты с автоматическим преобразованием html в pdf. Я бы посоветовал pdfkit.org
Ответ написан
dyuriev
@dyuriev
A posteriori
Из предложенных автором вариантов однозначно puppeteer. На фронте начнете страдать с кроссбраузерностью кода, лимитами (многостраничные pdf вас заставят врасплох), да и качество - на фронте как правило html=>растр=>pdf и все плывет при увеличении. puppeteer (через хромиум) сохраняет честный вектор там где это уместно. Да и верстку html не придется делать под армию браузеров, а только под хромиум заранее известной версии.
Ответ написан
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
на фронте много вариантов, на бэке самым "точным" будет вариант с хеадлесс хромом, ну или что-то а-ля пупитир, все остальные достаточно глючные и не поддерживают нормальную верстку. Как упомянул Семен Кузнецов - простой вариант - печать в пдф из хрома, собственно это практически аналог хеадлес хрома на бэкенде, только на фронте. Если это не коммерческий продукт для платных юзеров, то этот вариант вообще вне конкуренции.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
zloy_kot_developer
@zloy_kot_developer
Разработчик всего понемногу
Тебе генерация массовая нужна?
То есть сгенерировать зачем-то, я даже не могу представить зачем, сотню pdf. Или элементарно, что бы какой-нибудь менеджер нажал кнопочку скачать и ему прилетел PDF файл, например со статистикой?
Ответ написан
@fear-cry
Frontend Developer
Есть еще такой вариант (на чистом бекенде): шаблоны заранее готовить в PDF формате со всеми статическими данными (например, банковскими реквизитами). При запросе скачивания дописывать в пустые поля и отдавать файл. И не придется морочить голову с генерацией PDF с нуля, т.к. дописывать данные в существующий PDF это легкая операция. На проде так и сделали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 1 600 до 4 200 $
Foodtronics Москва
от 180 000 до 220 000 ₽
SoftMediaLab Екатеринбург
До 180 000 ₽
25 нояб. 2020, в 22:43
800 руб./в час
25 нояб. 2020, в 22:38
1200 руб./за проект
25 нояб. 2020, в 22:29
500 руб./в час