@vism

Как наиболее удобно генерировать сложные PDF документы в PHP(laravel)?

В текущем легаси проекте генерация PDF происходит с помощью верстки через MPDF. Это полная дичь. Долго и не удобно.
Нужно верстать таблицы изменяемой высоты, блоки с текстом, списки.

Как в современной разработке это делается?

Посмотрел библиотеки и многие принимают на вход HTML и конвертят в PDF.
Это тру вэй сейчас? Не едут стили/шрифты? Не вылазит ширина содержимого?
  • Вопрос задан
  • 1110 просмотров
Решения вопроса 1
@AlexndrNovikov
Solution Architect in Spiral Scout
Вообще генерировать HTML и рендерить в pdf это как раз самый распространенный путь, и он вполне себе ок. Шрифты будут ехать, стили тоже, все через боль и проверки :) У кого-то больше косяков и только примитивные теги, кто-то +/- все умеет.

Если PDF файлы большие, есть какие-то хитрые CSS - то имеет смысл посмотреть на wkhtmltopdf.

Как раз был легаси проект, генерация PDF с таблицами на 30-50 страниц, и также страницы с текстом и изображениями + трансформациями, использовал изначально какую-то PHPшную либу.
День генерации отчетов был испытанием для всего сервака, документы генерировались мучительно долго, с ошибками (2-3 минуты на большой отчет). Когда мигрировал проверял 4-5 реализаций, 4 на phpшных либах разной степени древности, и вариант с wkhtmltopdf (C-шная консольная тулза). С wkhtmltopdf получил точный вариант по рендеру + 20тикратный выигрыш по скорости и какой-то по памяти (уже не помню сколько)

В целом если генерировать небольшие документы, либо без хитрых css - то можно phpшные библиотеки поискать, не раздувая стек, тот же fpdf.
Но в случае чего-то большого - рекомендовал бы wkhtmltopdf + сгенерированный html на вход и вызов его консольной части через exec
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

Похожие вопросы