Создание PDF

Сгенерировать PDF можно через библиотеку Dompdf.

Ссылка на библиотеку: github.com/dompdf/dompdf

Сначала надо скачать библиотеку через Composer (пример установки composer на странице установка Yii).

composer require dompdf/dompdf

После чего можно генерировать PDF по HTML-коду.

use Dompdf\Dompdf;

$html = 'HTML-код'; 

$dompdf = new Dompdf();
$dompdf->loadHtml($html);

// Задать страницу как A4
$dompdf->setPaper('A4', 'landscape');

// Сгенерировать HTML как PDF
$dompdf->render();

// Скачать и открыть PDF
$dompdf->stream();

Русский текст (кириллица) в PDF

Если запустить код выше, то покажется текст:

HTML-???

Это из-за того, что текущий шрифт не поддерживает кириллицу. Можно задать шрифт Dejavu, который поддерживает русский язык и входит в сборку Dompdf.

use Dompdf\Dompdf;
use Dompdf\Options;

// Задать текуший шрифт Dejavu Sans для отображения кириллицы
$options = new Options();
$options->set('defaultFont', 'DejaVu Sans');

$html = 'HTML-код'; 

$dompdf = new Dompdf($options);
$dompdf->loadHtml($html);

// Задать страницу как A4
$dompdf->setPaper('A4', 'landscape');

// Сгенерировать HTML как PDF
$dompdf->render();

// Скачать и открыть PDF
$dompdf->stream();

Сохранить PDF в указанной папке

Сохранить PDF в указанной папке можно через код ниже:

use Dompdf\Dompdf;
use Dompdf\Options;

// Задать текуший шрифт Dejavu Sans для отображения кириллицы
$options = new Options();
$options->set('defaultFont', 'DejaVu Sans');

$html = 'HTML-код'; 

$dompdf = new Dompdf($options);
$dompdf->loadHtml($html);

// Задать страницу как A4
$dompdf->setPaper('A4', 'landscape');

// Сгенерировать HTML как PDF
$dompdf->render();

// Сохранить PDF в указанной папке
file_put_contents('filename.pdf', $dompdf->output());