Как сделать pdf html

Конвертируем HTML в PDF при помощи Dompdf

Как сделать pdf html. Смотреть фото Как сделать pdf html. Смотреть картинку Как сделать pdf html. Картинка про Как сделать pdf html. Фото Как сделать pdf html
PDF — формат, ставший уже стандартом. Он был изначально создан Adobe для представления текста и изображений в документе с фиксированной структурой. Давно не редкость для веб-приложений, поддерживающих скачку данных, таких как счета или отчеты, отдавать их в PDF формате. Так что в этой статье мы пройдем простую генерацию PDF документов используя PHP.

Dompdf — это отличная библиотека, способная генерировать PDF из HTML-разметки и CSS-стилей (в большинстве случаев это стили, совместимые с CSS 2.1 с поддержкой некоторых свойств CSS3). Мы можем определить, как наше содержимое должно выглядеть, используя эти знакомые технологии, и после легко конвертировать его в фиксированный документ. Также эта библиотека имеет и другие полезные и интересные функции.

Приступаем к работе

Dompdf доступен на GitHub и может быть установлен используя Composer. Установка через Composer без каких-либо ошибок часто вызывает трудности, поэтому я рекомендую просто использовать Git для установки Dompdf.

Библиотека требует PHP >= 5.0 с активированными расширениями mbstring и DOM. Также она требует несколько шрифтов, которые обычно доступны на большинстве компьютеров.

Перейдите в директорию, куда собираетесь установить библиотеку и выполните в командной строке:

Как только мы скачали Dompdf, давайте напишем короткий пример, который сгенерирует простой PDF документ:

Для того, чтобы использовать библиотеку в проекте, мы сначала подтягиваем файл dompdf_config.inc.php, который содержит большую часть конфигурации Dompdf. Он также загружает autoloader и пользовательский файл конфигурации в котором мы можем переопределить параметры по умолчанию.

HTML-разметка передается как строка в метод load_html(). Альтернативно мы можем загрузить разметку из файла или URL, используя метод load_html_file(). Он принимает имя файла или URL веб-страницы в качестве аргумента.

Метод render() отображает HTML в PDF, и мы готовы к отдаче файла. Метод stream() отправляет результирующий PDF как вложение в браузер. Этот метод имеет необязательный второй параметр, массив опций:

Только что мы сгенерировали очень простой PDF, но это не совсем практично. В реальности мы часто имеем требования к размеру листа, ориентации страницы, кодировке символов и т.д. Есть целый набор опций, которые мы можем установить, чтобы сделать Dompdf более подходящим для наших реальных потребностей. Все они перечислены и объяснены в файле dompdf_config.inc.php, который устанавливает им значения по умолчанию. Вы можете менять эти значения, обновляя файл пользовательской конфигурации dompdf_config.custom.inc.php. Вот некоторые из важных настроек:

Продвинутое использование

Теперь давайте немного поговорим о продвинутом использовании Dompdf. Возможно мы хотим сохранить сгенерированный PDF документ на диск, вместо того чтобы отсылать его в браузер. Вот как это делается:

Вместо вызова stream(), как в прошлом примере, мы используем output(), который возвращает PDF как строку. Этот метод также принимает массив опций, но доступна лишь одна — compress (по умолчанию true).

Dompdf также позволяет нам добавлять хедер и футер к сгенерированному PDF, встраивая PHP-скрипт прямо в HTML, который он отображает. Но из-за того, что обработка произвольного кода может представлять из себя угрозу безопасности, значение конфигурации, которое отвечает за эту функциональность, по умолчанию выключено. Нам необходимо для начала установить опцию DOMPDF_ENABLE_PHP как true.

Как только мы включили выполнение встроенного PHP, объект PDF станет доступным внутри скрипта и мы сможем использовать его для манипуляций со страницей. Мы можем добавлять текст, линии, изображения, прямоугольники и т.д.

Скрипт встроен прямо в HTML-разметку и сначала открывает объект, чтобы мы могли влиять на отображение. Вся отрисовка будет записана в этот объект и мы сможем добавить его на все выделенные страницы (хотя есть и ограничения).

Затем мы получаем реальную ширину и высоту страницы, чтобы посчитать координаты футера, который мы собираемся добавить. Также нам требуется предоставить обьект шрифта, поскольку мы добавляем текстовое содержимое. Font_Metrics::get_font() позволяет создать объект, который нам необходим. Мы также берем высоту данного шрифта из его размера используя get_font_height(), чтобы посчитать позиционирование содержимого футера. Метод get_font_width() возвращает ширину нашего текста для данного шрифта и размера, которую мы также используем в наших вычислениях.

Метод line() рисует линию из точки (X1,Y1) в точку (X2,Y2). Обратите внимание, значение цвета подставляется не совсем в RGB. Основной PDF-класс требует значения между 0 и 1, так что мы конвертируем значения RGB в эти новые значения. Чтобы получить лучшее приближение (approximation), вы можете поделить их на 255.

Мы добавляем номер для каждой страницы, используя метод page_text(), которой принимает координаты X и Y, а также текст, который будет добавлен, объект шрифта, размер шрифта и цвет. Dompdf автоматически заменяет значения для и на каждой странице, и делает $pdf доступным для нас.

Также мы можем не использовать встроенный PHP и достигать аналогичного эффекта прямо из PHP, примерно так:

Обратите внимание, мы размещаем код после вызова $dompdf->render() потому что мы, по существу, редактируем уже созданный PDF.

Подведем итоги

В этой статье мы обсудили простой способ конвертировать HTML в PDF используя Dompdf. Несмотря на то, что Dompdf отличная библиотека, она не является полностью универсальным решением для генерации PDF документов; она все же имеет определенные ограничения и проблемы. Dompdf не очень терпимо относится к плохо оформленному HTML и большие таблицы могут легко привести к переполнению памяти. Некоторые базовые функции CSS, такие как float не полностью поддерживаются. И вообще, поддержка CSS3 очень ограничена. Если вам необходимы функции, которые не поддерживаются в Dompdf, вам может помочь к примеру wkhtmltopdf. Тем не менее, Dompdf является очень простым и удобным инструментом для решения большинства задач по экспорту PDF.

На самом деле довольно трудно объяснить все функции библиотеки в статье вроде этой, поэтому не забудьте просмотреть документацию и исходный код, а также изучите такие полезные функции, как добавление колбэков, использование своих шрифтов и др.

Источник

Преобразование веб-страниц в PDF

Ядром веб-страницы является файл, написанный на языке разметки гипертекста (HTML). Обычно HTML-файл включает связи с другими файлами, которые либо отображаются на веб-странице, либо определяют внешний вид или работу страницы.

Конечный файл PDF действует аналогично исходной веб-странице. Например, изображения, ссылки, карты изображений и большинство файлов мультимедиа отображаются и работают обычным образом в PDF (Анимированные файлы в формате GIF отображаются в виде неподвижных изображений, показывая последний кадр анимации.)

Такой файл PDF функционирует как любой другой файл PDF. Например, можно перемещаться по файлу при помощи прокрутки или закладок; пользователи могут добавлять комментарии; можно добавить функции защиты, поля формы и иные функции, которые расширяют работу с файлом.

При подготовке к преобразованию веб-страниц в PDF, учитывайте следующие рекомендации, которые влияет на ваш подход к процессу преобразования.

Какой объем необходимо преобразовать?

Необходимо создать новый файл PDF из веб-страниц или добавить преобразованные страницы к существующему файлу PDF?

Для преобразования веб-страниц на китайском, японском и корейском языках (CJK) в PDF на Западноевропейской системе в Windows при установке Acrobat необходимо установить файлы поддержки языков CJK. Также лучше выбирать соответствующую кодировку из параметров преобразования HTML.

Преобразование веб-страниц в PDF в Internet Explorer, Google Chrome и Firefox (Windows)

Acrobat устанавливает панель инструментов Adobe PDF в браузере Internet Explorer (версия 8.0 или более поздняя), Google Chrome и Firefox. Используя команды на этой панели инструментов, вы можете преобразовать отображаемую веб-страницу в PDF различными способами. Например, вы можете преобразовать всю веб-страницу или только ее выделенные области. Также вы можете создать документ PDF или добавить преобразованную веб-страницу к существующему файлу PDF. Меню панели инструментов также содержит команды, с которых начинаются дальнейшие действия после преобразования, например присоединение созданного файла PDF к новому сообщению электронной почты или его печать.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *