Генерация PDF в PHP: библиотеки, инструменты и примеры кода

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Генерация PDF в PHP: обзор библиотек и инструментов

Создание PDF-документов — одна из частых задач в веб-разработке. PHP предлагает несколько зрелых библиотек, которые позволяют генерировать PDF из HTML, динамических данных или напрямую через рисование. В этой статье мы рассмотрим четыре основные библиотеки: TCPDF, FPDF, Dompdf и mPDF, их особенности, примеры использования и рекомендации по выбору для образовательного сайта.

1. TCPDF — промышленный стандарт

TCPDF — одна из самых мощных библиотек для генерации PDF на PHP. Она поддерживает Unicode, шрифты TrueType, OpenType, защиту паролем, водяные знаки, QR-коды и многое другое. Идеальна для создания сложных отчётов, счетов, сертификатов.

Установка: через Composer: composer require tecnickcom/tcpdf

Пример создания простого PDF:

<?php
require_once __DIR__ . '/vendor/autoload.php';

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$pdf->SetCreator('PythonLib.ru');
$pdf->SetAuthor('Автор');
$pdf->SetTitle('Пример TCPDF');
$pdf->SetSubject('Генерация PDF');

$pdf->AddPage();
$pdf->SetFont('dejavusans', '', 14);
$pdf->Cell(0, 10, 'Привет, мир! Это PDF из TCPDF.', 0, 1);

$pdf->Output('example_tcpdf.pdf', 'I');
?>

2. FPDF — лёгкая и быстрая

FPDF — классическая библиотека для простых PDF-документов. Она не требует установки дополнительных расширений, очень проста в изучении. Подходит для создания таблиц, простых отчётов, накладных.

Установка: скачать с fpdf.org или через Composer: composer require setasign/fpdf

Пример с таблицей:

<?php
require_once __DIR__ . '/vendor/autoload.php';

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 12);

// Заголовки таблицы
$pdf->Cell(40, 10, 'Имя', 1);
$pdf->Cell(40, 10, 'Фамилия', 1);
$pdf->Cell(40, 10, 'Возраст', 1);
$pdf->Ln();

$pdf->SetFont('Arial', '', 10);
$pdf->Cell(40, 10, 'Иван', 1);
$pdf->Cell(40, 10, 'Петров', 1);
$pdf->Cell(40, 10, '25', 1);

$pdf->Output('example_fpdf.pdf', 'I');
?>

3. Dompdf — из HTML в PDF

Dompdf позволяет конвертировать HTML+CSS в PDF. Это удобно, если у вас уже есть вёрстка страниц (например, счёт или статья). Поддерживает CSS 2.1 и частично CSS 3, шрифты, изображения.

Установка: composer require dompdf/dompdf

Пример конвертации HTML:

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Dompdf\Dompdf;

$dompdf = new Dompdf();
$html = '
<h1 style="color: #3498db;">Заголовок PDF</h1>
<p>Этот документ создан из HTML с помощью Dompdf.</p>
<table border="1" cellpadding="5">
    <tr><th>Колонка 1</th><th>Колонка 2</th></tr>
    <tr><td>Данные 1</td><td>Данные 2</td></tr>
</table>
';

$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream('example_dompdf.pdf', ['Attachment' => 0]);
?>

4. mPDF — мощный конвертер HTML

mPDF — ещё одна библиотека для конвертации HTML в PDF. Она лучше Dompdf поддерживает CSS, Unicode, восточные шрифты, создание оглавления, колонтитулов. Отлично подходит для книг, журналов, сложных документов.

Установка: composer require mpdf/mpdf

Пример с колонтитулами:

<?                    

Рекомендаций