PDF + PHP — создание любых таблиц. Часть 3
X
Заказать сайт
Заказать сайт

PDF + PHP - создание любых таблиц. Часть 3

Стандартно, за счет библиотеки 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>&nbsp;</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 вы узнаете в следующей части.

| | PDF + PHP - создание любых таблиц. Часть 3 | Стандартно, за счет библиотеки FPDF можно создавать таблицы. Если речь идет о таблицах с несколькими столбцами и строками, то сложности возникнуть не | http://blogprogram.ru/wp-content/uploads/2018/01/876-131x131.jpg