Portable Document Format (PDF) — кроссплатформенный формат электронных документов, созданный фирмой Adobe Systems с использованием ряда возможностей языка PostScript. В первую очередь предназначен для представления в электронном виде полиграфической продукции, — значительное количество современного профессионального печатного оборудования может обрабатывать PDF непосредственно. В этом уроке я расскажу, как создать PDF файл с помощью PHP и FPDF. Вы убедитесь, что PDF файлы могут создаваться очень легко.
С чего начнем?
Мы будем использовать PHP и бесплатную библиотеку FPDF для создания простых PDF документов.
Как и любой проект, мы должны собрать все, что нам понадобится для создания PDF файла. Для урока нам понадобится какой-то текст, PHP библиотека FPDF. Для установки библиотеки, Вам необходимо просто необходимо создать папку с именем fpdf и распаковать в нее архив.
Шаг №1. Создадим класс.
В корневой папе сайта давайте создадим файл с именем index.php, который будет содержать наш код. Чтобы начать пользоваться FPDF сначала необходимо его подключить. Если мы не подключим файл fpdf.php, то все, что мы сделаем работать не будет.
// Подключаем необходимый файл. require ‘fpdf/fpdf.php’; // Устанавливаем переменные $author = "Евгений Фединчик"; $x = 50; $text = <<<EOT /*В этом месте размещается текст*/
EOT; // Создаем fpdf объект $pdf = new FPDF(‘P’, ‘pt’, ‘Letter’);
Мы установили переменные, которые будем использовать в будущем. Для того, чтобы использовать библиотеку FPDF, мы создали FPDF объект, который мы поместили в переменную pdf. Также мы задали некоторые значения для объекта FPDF, которые создают основное форматирование.
Шаг №2. Шрифты
Нашим следующим шагом является создание шрифта для документа. FPDF использует шрифты, которые определенны файлом, таким образом, если Вы хотите использовать какой-то шрифт его надо определить для FPDF. Для создания необходимых шрифтов, необходимо использовать файл makefile.php, который находится в папке font. В этом уроке мы не будем рассматривать, как создавать дополнительные шрифты.
ПРИМЕЧАНИЕ: шрифты должны быть объявлены до добавления и вывода данных.
// Установка базовой настройки шрифта. $pdf->SetFont(‘Times’, ‘B’, 24);
Метод SetFont имеет три параметра – Название шрифта, Любое форматирование (В – жирный, I – курсив, Пустое место – без форматирование), и размер шрифта. Любой вывод символов будет использовать это форматирование, пока мы не изменим его.
Шаг №3. Настойка вывода.
Хорошо, теперь мы можем начать вывод текста! Ну, почти. Во-первых, мы должны добавить страницу в документ, чтобы что-то выводить, для этого мы будем использовать AddPage.
// Добавить новую страницу в документ $pdf->addPage();
Переместим курсор в наш документ с помощью SetXY, который принимает позицию курсора X и Y (Простыми словами, мы создаем первоначальное значение курсора, откуда будет начинать, выводится текст). Таким образом, мы будем использовать точки. Если Вы внимательно посмотрите, то заметите, что я также использую переменную X. Поскольку мы создаем простой PDF документ, то выравнивание будет по левому краю.
// Устанавливаем координаты курсора $pdf->SetXY($x,50);
Шаг №4. Выводим.
Наконец, мы можем вывести! FPDF предусматривает два основных способа вывода данных, в зависимости от характера документа — Write и Cell. В нашем примере мы будем использовать Write.
$pdf->Write(25,’Simple PDF’);
Write принимает два параметра – высота линии и текст надписи.
Шаг №5. Oooh, можете себе представить!
Если мы хотим написать текст другим шрифтом или форматированием? Нет проблем, мы просто должны добавить одну команду и использовать Cell вместо Write.
// Сброс значений шрифта $pdf->SetFont(‘Courier’,’I’,10); // Устанавливаем цвет шрифта $pdf->SetTextColor(255,0,0); // Сбрасываем и устанавливаем новое положение курсора $pdf->SetXY($x, 75); $pdf->Cell(0,11, "От: $author", ‘B’, 2, ‘L’, false);
Мы сбросили и установили новые параметры форматирования для шрифта.
Шаг №6. Картинка для красоты.
Если Вы хотите добавить картинку в свой PDF файл, то необходимо вначале заявить об этом.
// Место изображения в PDF документе. $pdf->Image(‘graph.jpg’, $x, 100, 150, 112.5, ‘JPG’);
Команда изображения требует только файл изображения. Если Вы не зададите никаких параметров, то размер, тип и позиция изображения будут созданы автоматически. Тем не менее, если не задавать этих параметров, то Вы можете быть недовольны результатом. Кроме того, я обнаружил, что лучше использовать JPG чем PNG, хотя оба поддерживаются.
Итак, мы задали значения для FPDF, чтобы вывести изображение graph.jpg и поместить его в положение 50, 100. Размер изображения составляет 150х112,5 и тип изображения JPG.
Шаг №7. Сохраняем документ.
Хорошо! Мы почти закончили. Теперь нам только необходимо сохранить все в pdf формате. Существует четыре вида сохранения документов. Мы будем использовать Output.
// Сохраняем документ с именем simple.pdf $pdf->Output(‘simple.pdf’,’F’);
Output принимает два аргумента – имя файла с расширением .pdf, а также метод вывода. Для того, чтобы сохранить в файл необходимо использовать F. Для вывода в браузере необходимо использовать I. D – выводит в браузере и сразу скачивает. S — возвращает документ в строковый формат. Мы используем F.
На этом все!