А теперь попробуем создать PDF-файл, используя класс FPDF. Для начала создадим файл makepdf.php, который будет осуществлять вывод PDF документа прямо в браузер. В одной папке с этим файлом поместим файл класса fpdf.php и папку font с вложенными в нее файлами кириллических шрифтов.
<?php
define('FPDF_FONTPATH', 'font/');
require 'fpdf.php';
// Создадаем экземпляр класса
$pdf = new FPDF();
$pdf->Open();
//Подключаем кириллические шрифты
$pdf-> AddFont('ArialMT','','arial.php');
$pdf-> AddFont('Arial-BoldMT','','arialbd.php');
$pdf-> AddFont('Arial-ItalicMT','','ariali.php');
$pdf-> AddFont('Arial-BoldItalicMT','','arialbi.php');
// Добавляем страницу в документ
$pdf->AddPage();
// Задаем режим отображения
$pdf->SetDisplayMode('real','default');
// Устанавливаем шрифт и его размер
$pdf-> SetFont('Arial-BoldMT','',22);
// Устанавливаем цвет текста заголовка (красный)
$pdf->SetTextColor(255,0,0);
// Устанавливаем цвет заливки (желтый)
$pdf->SetFillColor(255,255,0);
// Задаем абсциссу и ординату текущей позиции
$pdf->SetXY(20,20);
// Устанавливаем цвет для рисования контура вокруг заголовка (красный)
$pdf->SetDrawColor(255,0,0);
// Выводим ячейку (прямоугольную область), которая будет заголовком:
// 100 - ширина ячейки; 10 - высота ячейки;
// $text - текст; 1 - толщина рамки;
// 1 - текущая позиция после вывода ячейки будет в начале следующей строки;
// 'C' - выравнивание по центру; 1 - заливка фона ячейки
$text = 'ЗАО "Рога и копыта"';
$pdf->Cell(150, 10, $text, 1, 1, 'C', 1);
// Вставляем изображение, которое будет ссылкой
$pdf->Image('elephpant.jpg',10,35,0,0,'JPG','http://www.php.net/');
// Устанавливаем шрифт для текста
$pdf-> SetFont('ArialMT','',12);
// Устанавливаем позицию начала текста
$pdf->SetXY (10,140);
// Устанавливаем цвет текста
$pdf->SetTextColor(10,10,10);
$pdf->Write(5,'Пешеходов надо любить. Пешеходы составляют большую часть человечества. Мало того — лучшую его часть. Пешеходы создали мир. Это они построили города, возвели многоэтажные здания, провели канализацию и водопровод, замостили улицы и осветили их электрическими лампами.');
// Устанавливаем шрифт для текста
$pdf-> SetFont('Arial-ItalicMT','',12);
$pdf->Write(5,'Это они распространили культуру по всему свету, изобрели книгопечатание, выдумали порох, перебросили мосты через реки, расшифровали египетские иероглифы, ввели в употребление безопасную бритву, уничтожили торговлю рабами и установили, что из бобов сои можно изготовить сто четырнадцать вкусных питательных блюд.');
// Разрыв строки
$pdf->Ln();
$pdf->Ln();
// Устанавливаем шрифт для текста
$pdf-> SetFont('Arial-BoldMT','',12);
// Устанавливаем цвет текста (синий)
$pdf->SetTextColor(0,0,255);
$pdf->MultiCell(0,5,'И когда все было готово, когда родная планета приняла сравнительно благоустроенный вид, появились автомобилисты.',1,'R',1);
// Разрыв строки
$pdf->Ln();
$pdf->Ln();
// Устанавливаем шрифт для текста
$pdf-> SetFont('Arial-BoldItalicMT','',12);
// Устанавливаем цвет текста (зеленый)
$pdf->SetTextColor(0,200,0);
$pdf->MultiCell(0,5,'Надо заметить, что автомобиль тоже был изобретен пешеходами. Но автомобилисты об этом как-то сразу забыли. Кротких и умных пешеходов стали давить. Улицы, созданные пешеходами, перешли во власть автомобилистов. Мостовые стали вдвое шире, тротуары сузились до размера табачной бандероли. И пешеходы стали испуганно жаться к стенам домов.',0,'J',0);
// Выводим созданный документ в браузер
$pdf->Output('example.pdf','I');
?>
Конструктор FPDF принимает следующие параметры:
- Ориентация страницы: P — книжная, L — альбомная; по умолчанию P
- Единица измерения: pt — точка, mm — миллиметр, cm — санатиметр, in — дюйм; по умолчанию mm
- Размер документа: A3, A4, A5, Letter, Legal или специальный формат, выраженный в виде массива из двух элементов: ширина и высота
После создания экземпляра класса необходимо указать используемые шрифты. Так как кириллический Arial не является в классе FPDF шрифтом, установленным по умолчанию, сначала надо подключить его при помощи метода AddFont().
AddFont(string family [, string style [, string file]])
Первым аргументом мы указываем наименование шрифта. Его можно посмотреть в сгенерированном РНР файле (значение переменной $name). Второй аргумент — форматирование текста (B — Bold, I — Italic и смешанный BI или IB). Если аргумент пустой, то шрифт обычный. Третий аргумент — РНР файл описания. Теперь эти шрифты можно применять в данном документе.
Размер шрифта установим методом SetFont(). Этот метод можно вызывать несколько раз в одном скрипте, в то время как добавление AddFont() делается один раз для каждого шрифта. Формат записи SetFont() следующий:
SetFont(string family [, string style [, float size]])
Как видите, у функции SetFont() три параметра: название шрифта, стиль (пустая строка — обычный шрифт, B — жирный, I — курсив, U — подчеркнутый ) и размер. Этот метод может быть вызван до создания первой страницы и заданный шрифт будет сохраняться от страницы к странице. Если нужно изменить только размер шрифта, проще будет вызвать метод SetFontSize().
Используя функцию SetTextColor(), устанавливаем цвет шрифта документа. Цвет может быть представлен в RGB или grey scale. В нашем примере мы используем RGB-значения.
Продолжение следует…