Как конвертировать HTML в PDF в PHP
PDF (Portable Document Format) – это формат файла, который включает форматирование текста и изображения с фиксированным макетом. PDF-файл не зависит от прикладного программного обеспечения, оборудования и операционной системы. Это означает, что вы можете использовать один и тот же PDF-файл в любой операционной системе.
При работе над PHP-приложениями нам иногда требуется создать PDF-файл из HTML. Это может быть счет-фактура, руководство по установке, резюме и т.д. Чтобы сделать его динамичным, нам нужно на лету сгенерировать PDF с помощью HTML.
В этой статье я покажу вам, как конвертировать HTML в PDF в PHP с помощью библиотеки Dompdf.
Dompdf – это библиотека конвертера HTML в PDF с открытым исходным кодом. Используя Dompdf, вы можете легко создавать PDF-файлы из необработанного HTML или с помощью HTML-файла.
Начиная
Для начала вам необходимо установить в свое приложение библиотеку Dompdf. Для установки библиотеки рекомендую использовать Composer.
Откройте терминал в корневом каталоге вашего проекта и выполните команду:
composer require dompdf/dompdf
После установки библиотеки вы можете включить среду Dompdf в свой проект, используя приведенный ниже код.
<?php
require_once "vendor/autoload.php";
use DompdfDompdf;
Преобразование HTML в PDF в PHP
Код, необходимый для создания PDF, прост и понятен. В качестве примера предположим, что у вас есть необработанный HTML, который нужно преобразовать в PDF. Создайте index.php
файл и добавьте, напишите код, как показано ниже.
<?php
require_once "vendor/autoload.php";
use DompdfDompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>hello world</h1>');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Здесь мы передаем методу необработанный HTML-код loadHtml()
. Когда мы запустим этот файл, он сгенерирует PDF-файл и отобразит его в браузере.
Мы также можем дать имя PDF-файлу, который будет загружен.
$dompdf->stream('test.pdf');
Вы узнали о создании PDF из необработанного HTML. Теперь давайте посмотрим, как создать PDF с помощью файла HTML.
Для этого есть 2 способа. Первым способом мы получаем контент из HTML-файла и передаем его loadHtml()
методу. Другой способ – использовать loadHtmlFile()
функцию и передать ей путь к HTML-файлу.
Давайте посмотрим оба пути один за другим.
Первый метод
$html = file_get_contents('test.html');
$dompdf->loadHtml($html);
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Второй метод
В этом методе вы должны сначала установить chroot каталога, в котором находится ваш HTML-файл. Если ваш HTML-файл находится в корневом каталоге, используйте этот getcwd()
метод напрямую. Вы должны отрегулировать путь в соответствии с вашими требованиями.
$dompdf->set_option('chroot', getcwd()); //assuming HTML file is in the root folder
$dompdf->loadHtmlFile('test.html');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Сохраните созданный PDF-файл
Все написанные выше коды будут отображать сгенерированный PDF-файл в браузере. Если кто-то хочет сохранить сгенерированный PDF-файл на диск, используйте следующий код:
$dompdf->set_option('chroot', getcwd()); //assuming HTML file is in the root folder
$dompdf->loadHtmlFile('test.html');
// Render the HTML as PDF
$dompdf->render();
//Save to disk
$output = $dompdf->output();
file_put_contents("test.pdf", $output);
Все дело в преобразовании HTML в PDF с помощью библиотеки Dompdf. Я хотел бы услышать ваши мысли и предложения в разделе комментариев ниже.
Статьи по Теме
- Использование Google reCAPTCHA в формах вашего веб-сайта с помощью PHP
- Загрузка файлов в Amazon S3 с помощью AWS PHP SDK
- Загрузить изображение с помощью пуленепробиваемой библиотеки в PHP