LINUX.ORG.RU
ФорумTalks

Чем генерить pdf?

 


1

2

Подскажите плиз как сейчас модно на backend генерить pdf из html? Раньше был вроде какой то форк хромиума, а сейчас как и что для такой задачи используют? Насколько я понимаю в хроме генерация pdf эталонная, может отдельная тулза есть на база этого его модуля или как сейчас это принято?

★★

Последнее исправление: quester (всего исправлений: 1)

Ответ на: комментарий от Zubok

Да я поржать над chrome/js/everywhere, когда есть хоть html2ps(1), хоть, как выше написали, шаблон latex.

Shadow ★★★★★
()

Подскажите плиз как сейчас модно на backend генерить pdf из html?

У нормальный людей есть понимание, что html есть формат отображения/представления данных, а не сами данные. Посему вопрос глупый - pdf генерят из данных. Ну и понятно, что нормальное преобразование html->pdf возможно только для очень простых случаев. Если это нужно на печать, то проще просто позвать компоненты печати для данной страницы, а там, если надо пошльзователю, уже есть сохранить на диск в pdf.

vtVitus ★★★★★
()
Ответ на: комментарий от quester

Там модуль из хрома для печати пдф есть, но для этого ему надо получить страничку и отрендерить его. Так что максимум что можно сделать, это запустить с --headless, чтобы не грузить лишни раз графику. Считай, так движок только работать будет. Но из других движков более легковесных, вроде, нет.

turtle_bazon ★★★★★
()
Ответ на: комментарий от quester

Помнится, лет 10 назад для аналогичной задачи (подстановка данных в шаблон документа и генерация PDF) в качестве шаблонов юзали ODT – формат документов OpenOffice: это zip-архив с XML-файлами, структурно очень похожими на HTML (что-то типа <Row> вместо <tr>, <Cell> вместо <td> и т.п.). Распаковывали (можно хранить на сервере уже распакованным, чтобы время экономить), подставляли данные, запаковывали назад в новый ODT (прямо в памяти), и натравливали на полученный ODT сервлет JODConverter (file-upload HTTP POST request с файлом прямо из памяти), который в свою очередь делегировал к резидентному headless-опенофису.

Очень удобно править такие шаблоны – тупо открываешь в офисе и правишь. Попробуй со шрифтами или цветами в генераторе latex-шаблонов поиграться – озвереешь. А тут настоящий WYSIWYG. Даже циклы по строкам накладных задавали ЕМНИП как-то в тексте полей таблиц (что-то типа <Cell>{for …}</Cell> в первом поле таблицы), т.е. даже тут не надо было грязными руками XML ломать.

dimgel ★★★★★
()
Последнее исправление: dimgel (всего исправлений: 2)

Генератор документации Sphinx имеет latex бекенд для вывода (который, соответственно, делает pdf). Довольно неплохо, если нравится rst формат, например

michwill ★★★★★
()

В PHP-проектах долгое время использую mpdf (https://mpdf.github.io/).

Имеет много особенностей в плане восприятия html, но если принять их к сведению, и готовить шаблоны специально с учетом этих нюансов - то очень даже ок.

Для генерации PDF из «обычного» html не особо годится.

aix27249
()

даже выключая через css как показано выше имя файла - в многостраничном документе на последней странице появляется slash.

лечить так:

css в html плюс

google-chrome –headless –disable-gpu –no-margins –print-to-pdf-no-header –print-to-pdf=«${1}».pdf «${1}»;

quester ★★
() автор топика
Последнее исправление: quester (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.