...
WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как конвертировать HTML в PDF в PHP

1 210

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. Я хотел бы услышать ваши мысли и предложения в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее