Если ли PHP-библиотека для конвертации HTML c CSS Grid в PDF?
Подскажите, пожалуйста, либу, которая умеет делать PDF из HTML с гридами. Это же по идее нужна поддержка CSS3, насколько я понимаю. А то я уж лет 15 пользуюсь mpdf, пора на что-то новенькое перейти, а то у меня там всё таблицами ещё завёрстано ... :))
Дополнительно:
гриды это вроде даже после CSS3
но думаю самым всеядным преобразование в pdf через браузер, т.к. спецификация гридов достаточно объемная и поддерживающая все случаи реализация нетривиальная, вон гриды даже в interop 2024 вошли (правда именно для всяких крайностей)
Тоже была проблема, только не работали flexbox, решение только такое нашел
shell_exec + chromium с флагами headless disable-gpu и print-to-pdf отрисует вам что угодно, что может отобразить chrome.
у решения есть изъян - на большинстве хостингов даже не пытайтесь запустить, себе дороже, только виртуальные/физические сервера подходят идеально.
https://github.com/chrome-php/chrome - примерно так
- Это какой-то хардкор.
- Tyusha, вы даже не представляете, как много ресурсов использует плюс-минус этот подход. Кто-то выносит хром headless режиме в отдельный контейнер и взаимодействует с ним через devtools protocol, кто-то вызывает напрямую.
- Tyusha, ну так и гриды (и вообще сложная вёрстка) - это тоже хардкор.
Ответы:
Принципиально у этой проблемы всего 2 варианта решения:
1) как уже написали - хедлесс хром на бэкенде - максимально красиво и точно, единственный минус - собсно сам софт, который кроме того что сам по себе жрет проц и память, так еще и не везде есть возможность поставить свой софт на сервер.
2) Рендер на клиенте через html2pdf, который тоже неплохо справляется, но естественно тоже не без проблем. Во первых - готовый пдф будет не в виде документа с текстом и прочими плюшками, а тупо картинкой. Во вторых - все минусы решений на клиенте в ассортименте: нестандартные шрифты, настройки под "улучшайзинг" визуала по типу изменения масштаба странички, увеличение/уменьшение шрифтов и прочие мелкие радости жизни...
Короче, выбор между хреновым и плохим решением...
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Да, существует PHP-библиотека, которая позволяет конвертировать HTML с использованием CSS Grid в PDF. Она называется Dompdf.
Dompdf - это библиотека PHP, которая позволяет генерировать PDF-файлы из HTML и CSS. Она поддерживает большинство стилей CSS2 и некоторые стили CSS3, включая CSS Grid.
Для того чтобы использовать Dompdf для конвертации HTML с CSS Grid в PDF, вам необходимо установить библиотеку в ваш проект. Вы можете сделать это с помощью Composer или загрузив архив с файлами библиотеки.
После установки библиотеки вам нужно будет создать HTML-страницу, которую вы хотите конвертировать в PDF. Вы можете использовать CSS Grid для размещения элементов на странице. Затем вы можете использовать Dompdf для генерации PDF-файла на основе этой HTML-страницы.
Dompdf также поддерживает множество дополнительных функций, таких как установка размера страницы, ориентации и марж, добавление шрифтов и изображений и многое другое.
Таким образом, если вам необходимо конвертировать HTML с использованием CSS Grid в PDF с помощью PHP, Dompdf является отличным выбором. Она позволяет создавать качественные PDF-файлы с поддержкой CSS Grid и других стилей CSS, что делает ее удобным инструментом для генерации документов в вашем веб-приложении.