Стандартно, за счет библиотеки FPDF можно создавать таблицы. Если речь идет о таблицах с несколькими столбцами и строками, то сложности возникнуть не должно. А как только появляется задача создания чека или квитанции, да еще и с динамическими данными, подставляемыми из БД, то тут не обойтись без сторонних расширений.
Одним из таких является pdftable. Это специальное дополнение для fpdf библиотеки, с помощью которого можно легко создавать таблицы практически любой сложности. Кстати, о том, как создавать динамические таблицы стандартными способами вы можете прочитать в первом уроке.
Если вы скачаете архив, то в нем найдете рабочий пример, код которого описан ниже. В скрипте, сначала подключается pdftable.inc.php, который подгружает fpdf библиотеку.
PDF создание таблицы с помощью php
<?php
require_once( "fpdf181/lib/pdftable.inc.php" );
define('FPDF_FONTPATH', 'fpdf181/font/');
//Создаем титульную страницу
$pdf = new PDFTable( 'P', 'mm', 'A4' ); //P - книга, L - альбомный лист
$pdf->SetTextColor(0, 0, 0);
//шрифт по умолчанию
$pdf->AddFont('TahomaMy','','tahoma.php');
$pdf->AddFont('TahomaMyBold','B','tahoma_bold.php');
$pdf->SetFont('TahomaMy','',12);
//создаем 1-ю страницу
$pdf->AddPage('L');
$pdf->SetTextColor(100, 100, 100); //серый
$pdf->SetFontSize(17);
$pdf->Cell( 0, 15, "2018 Создание PDF таблиц", 0, 0, 'C' );
$pdf->SetTextColor(0, 0, 0); //черный
$pdf->SetFontSize(20);
$pdf->Write( 19, "Демонстрация возможностей" );
$pdf->Ln(16);
$pdf->SetFontSize(12);
$pdf->Write( 5, "Абсолютно весь синтаксис по созданию PDF файла из PHP рекомендую посмотреть в документации, которая находится в скачанном архиве сайта blogprogram.ru - там описаны в понятном языке методы и свойства работы с PDF." );
$pdf->Ln( 12 );
//Создаем 1-ю таблицу
$table1 = "
<table border=1 align=left>
<tr>
<td rowspan=2 valign=middle border=0>rowspan=2, valign=middle</td>
<td>Normal</td>
<td>Normal</td>
<td>Normal</td>
<td colspan=2 rowspan=2 valign=bottom bgcolor=#FF00FF>colspan=2<br>rowspan=2<br>valign=bottom</td>
</tr>
<tr>
<td height=15>Normal</td>
<td rowspan=2 align=right bgcolor=#aaaaaa border=0>rowspan=2</td>
<td border=0>border=0</td>
</tr>
<tr>
<td>Normal</td>
<td>Normal</td>
<td>Normal</td>
<td rowspan=3 valign=top bgcolor=#CC3366>rowspan=3</td>
<td>Normal</td>
</tr>
<tr bgcolor=#cccccc>
<td>Normal</td>
<td colspan=3 align=center>align center, colspan=3</td>
<td>Normal</td>
</tr>
<tr>
<td align=right valign=bottom>align=right<br>valign=bottom</td>
<td>Normal</td>
<td> </td>
<td>Normal</td>
<td height=20>height=20</td>
</tr>
</table>";
$pdf->htmltable($table1);
//создаем 2-ю страницу
$pdf->AddPage('L');
$pdf->SetTextColor(0, 0, 0); //черный
$pdf->SetFontSize(20);
$pdf->Write( 19, "Вторая таблица с картинкой" );
$pdf->Ln( 23 );
//Создаем 2-ю таблицу
$table2 = "
<table border=1 align=left>
<tr>
<td bgcolor=#ffffff height=15 align=center valign=middle>Алексей</td>
<td rowspan=4 width=150></td>
</tr>
<tr>
<td bgcolor=#ffffff height=15 align=center valign=middle>49 лет</td>
</tr>
<tr>
<td bgcolor=#ffc392 height=15 align=center valign=middle>Строитель</td>
</tr>
<tr>
<td bgcolor=#ffffff height=15 align=center valign=middle>Опытный работник</td>
</tr>
<tr>
<td bgcolor=#ffffff colspan=2 align=center valign=middle>Имеет весь необходимый инвентарь для начала работ. <br>ps вставка картинок в PDF напоминает position: absolute, как в html разметке.</td>
</tr>
</table>";
$pdf->htmltable($table2);
//Вставляем картинку: путь, отступ x, отступ y, ширина картинки, высота картинки
$pdf->Image("876.jpg", 61, 43.3, 149.2, 59.3 );
$pdf->Ln(12);
$pdf->Cell(0, 15, "Вот так и создается PDF файл!", 0, 0, 'C' );
//Выводим PDF
$pdf->Output( "report.pdf", "I" );
?>
Посмотрев на скрипт вы увидите, что код таблиц создавать очень просто. Синтаксис схож с html разметкой, поэтому даже очень сложные таблицы сделать сможет каждый. Для наглядности и практического применения я добавил 2 таблицы. Первая - демонстрирует все возможности расширения, а вторая - практичный пример таблицы с картинкой внутри.
О некоторых хитростях и форматах вывода fpdf вы узнаете в следующей части.