Формат PDF уже давно стал популярным в веб среде для отображения квитанций, чеков, меню ресторанов, журналов или каких либо еще документов. Он прекрасно читается в браузерах и легко скачивается на компьютер.
Если вам требуется создать PDF файл прямо на сайте, то для этого вполне можно использовать PHP и библиотеку fpdf. Скачать последнюю вы можете на официальном сайте или в этом материале.
Для начала рассмотрим, как создать несколько страниц в PDF, вставить картинки, текст и даже таблицу. Создайте пустой php файл в ANSI кодировке. Ниже я скидываю рабочий код, с подробным описанием переменных в действии:
<?php
//Подключаем библиотеку PDF и выбираем директорию со шрифтами
require_once( "fpdf181/fpdf.php" );
define('FPDF_FONTPATH', 'fpdf181/font/');
//Создаем титульную страницу
//Выбираем формат: P - книга, L - альбомный лист
$pdf = new FPDF( 'P', 'mm', 'A4' );
//Цвет шрифта ставим по умолчанию черным
$pdf->SetTextColor(0, 0, 0);
//Шрифт по умолчанию
$pdf->AddFont('TahomaMy','','tahoma.php'); //подключаем русский шрифт
$pdf->AddFont('TahomaMyBold','B','tahoma_bold.php');
$pdf->SetFont('TahomaMy','',12); //размер шрифта по умолчанию 12 точек
//Создаем 1-ю страницу
//Добавляет новую страницу в документ. Ориентация P - Книжная L - Альбомная
$pdf->AddPage('P');
//1. Вставляем картинку: путь, отступ x, отступ y, ширина картинки
$pdf->Image("widget-company-logo.png", 50, 108, 110 );
//2. Название отчета
//Выполняет разрыв строки. "Курсор" к левому краю страницы, а отступ увеличивается на 160
$pdf->Ln(160);
//Размер шрифта
$pdf->SetFontSize(25);
//Cell - выводит ячеку (0 - Ширина ячейки. Если задан 0, то ячейка будет расширена до правой границы; 15 - Высота ячейки; текст ячейки; 0 - без границ вокруг ячейки; 0 - курсор будет справа после этого блока; C - выравнивание по центру.
$pdf->Cell( 0, 15, "2018 Создание PDF файла", 0, 0, 'C' );
//Создаем 2-ю страницу
$pdf->AddPage('P');
$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);
//Write - выводит текст от текущей позиции, 19 - высота строки
$pdf->Write( 19, "В этом году была проделана хорошая работа" );
$pdf->Ln( 12 );
$pdf->SetTextColor(0, 0, 0); //черный
$pdf->Write( 5, "Для вывода текста хорошие методы Write и по хуже Cell (зато его можно ставить по центру)" );
//3. Создаем таблицу
$pdf->SetDrawColor(50, 50, 50); //задает цвет всем линиям, прямоугольникам и границам ячеек (border-ам) - серый
$pdf->Ln( 15 );
//Создаем строку заголовков
$pdf->SetFont('TahomaMyBold', 'B', 15 );
//Данные для таблицы
$data = array(
array(9940, 10100, 9490, 11730, 24730),
array('Санки', 'Лыжи', 'Сноуборд', 'Коньки', 'Подъемник'),
array(25110, 26260, 25210, 28370, 54370),
array(27650, 24550, 30040, 31980, 12980),
);
//Ячейки заголовков
$columnLabels = array( "Цена", "Название", "Q3", "Q4", "Q5" );
$pdf->SetTextColor(255, 255, 255); //белый
$pdf->SetFillColor(48, 135, 253); //синий
//Выводим заголовки
for ( $i=0; $i<count($columnLabels); $i++ ) {
$pdf->Cell( 36, 12, $columnLabels[$i], 1, 0, 'C', true ); }
$pdf->Ln( 12 );
//Создаем строки с данными
$fill = false; //заливка по умолчанию отсутствует
$row = 0;
foreach ( $data as $dataRow ) {
//Create the data cells
$pdf->SetTextColor(0, 0, 0); //черный
$pdf->SetFillColor(215, 255, 203); //слабый зеленый
$pdf->SetFont('TahomaMy', '', 15 );
for ($i=0; $i<count($columnLabels); $i++ ) {
$pdf->Cell(36, 12, $dataRow[$i], 1, 0, 'C', $fill );
}
$row++;
$fill = !$fill;
$pdf->Ln(12);
}
$pdf->Ln(12);
$pdf->Cell(0, 15, "Вот так и создается PDF файл!", 0, 0, 'C' );
//Выводим PDF на печать
$pdf->Output( "report.pdf", "I" );
?>
Вот таким образом создаются PDF файлы. Если вы начнете вникать в код, изучать документацию на русском (которая тоже находится в скачиваемом файле выше), то через пару часов вы сможете создавать простенькие pdf файлы. О том как делать графики читайте во втором уроке.