Функции PDF. Создаем документ PDF из PHP скрипта с помощью библиотеки FPDF Создаем строки с данными

Рано или поздно встает вопрос о генерации PDF файлов. Он удобен, а страницы можно сделать довольно красивыми. Есть много разных библиотек для PHP, у меня в данном случае стояла задача сделать на FPDF. Данная библиотека, а точнее класс распространяется бесплатно и умеет работать с разными типами кодировок, в том числе и с CP1251. Наверно минусом этой библиотеки является отсутствие поддержки UTF, но есть отдельная пропатченная библиотека UFPDF, ее рассматривать я не буду.

Вы наверно спросите почему мучение с кириллицей? Скажем так, я потратил много времени на поиски, как заставить показывать русский текст, а не каракули. Делал я все по мануалам, официальных источников.
Итак, для того что бы был русский текст нам нужны шрифты, я делал для Arial, Times New Roman, Verdana. Создайте в своем проекте папку fonts. Скиньте туда нужные шрифты. Теперь нам нужно с конвертировать их для FPDF. На многих сайтах предлагают использовать специальную утилиту ttf2pt1.

Ttf2pt1 -a arial.ttf arial Сохранив, проверим в браузере. Он создает 2 файла, потом надо создать php файл и сделать следующее, а точнее он создаст php файл который содержит информацию о шрифте. Не забудьте поставить права на папку, где будете генерировать шрифты.

Все это я делал ни один раз. И никак скрипт не хотел работать. После чего я нашел более простой способ конвертирования шрифтов.
Идем http://fpdf.fruit-lab.de/index.php?id=3 на этот сайт. Выбираем кодировку cp1251, далее прикрепляем нужный нам шрифт и жмем Convert. Там нас будет интересовать php, afm, z. Скачивайте эти файлы в созданную нами папку fonts. Далее нужно переименовать файл.php.txt в.php.
После чего откроем этот php файл (с сайта мы скачиваем его в.php.txt и потом переименовываем). В данном случае нас будет интересовать имя шрифта ($name="ArialMT";). Теперь у нас есть шрифт и имя шрифта. Можно приступить к созданию самого генератора PDF. Создаем нужный нам файл, подключаем нужные библиотеки.

Define("FPDF_FONTPATH", __system_directory__ ."API/font/"); // на всякий случай я прописал полный путь до библиотеки. require("/usr/share/php/fpdf/fpdf.php"); // объявляем класс и конструктор класса, в данном случае у меня альбомный лист $pdf=new FPDF("L"); //нужно подключить шрифт, указав имя шрифта и имя файла. $pdf->AddFont("ArialMT","","119379869a251bdd6a14438b3c5514f2_arial.php"); $pdf->AddPage(); // выбираем шрифт для текста. $pdf->SetFont("ArialMT","",35); $pdf->Cell(40,10,"русский текст!"); $pdf->Output();

Основное время я потратил из-за возникавшей ошибки: «FPDF error: Undefined font: arialmt B» Она наверно вызывалась неверной конвертацией шрифта, когда пользовался MakeFont или использованием неверного параметра, к примеру ошибка возникает, когда 2 параметр не совпадает с SetFont или наоборот.

// Ошибка в этом примере:
$pdf->AddFont("ArialMT","","119379869a251bdd6a14438b3c5514f2_arial.php"); $pdf->SetFont("ArialMT","B",35); //И в такой тоже: $pdf->AddFont("ArialMT","B","119379869a251bdd6a14438b3c5514f2_arial.php"); $pdf->SetFont("ArialMT","",35); //работает $pdf->AddFont("ArialMT","B","119379869a251bdd6a14438b3c5514f2_arial.php"); $pdf->SetFont("ArialMT","B",35);

Как оказалось ошибки были на пустом месте, но я рад что разобрался с ними, и буду надеяться что эта маленькая статья поможет не терять время, на поиск проблемы связанной c кодировками.


На работе появилась нужность сгенерировать pdf отчет с помощью php!
Вчера намучавшись с этим делом и наконец-то разобравшись, режил выложить все мысли по этому поводу, дабы чтобы хранилось и потом не забылось, да и может кому полезно будет!

И так!
Генерация подобного возможна с помощью двух пакетов:
1. File_PHP - пакет PEAR
2. FPDF - нечто подобное, но чуть с большим функционалом, имхо!

В итоге был выбран второй вариант!
Кстати, при использовании 1 пакета, второй вам все равно понадобится, об этом далее.
Сама привязка пакетов к скрипту не имеет никакой сложности и проще простого! Довольно широких диапазон функций, который позволяют творить с вашим pdf что угодно!

Проблема же встает, когда возникает нужда писать русскими буковками!
Для начала, нужно превратить из шрифта TrueType в метрический шрифт, который и юзает Adobe.
Это делается с помощью программки ttf2pt1 . Скачать ее можно легко в инете! Программа работает из командной строки! Чтобы сгенерировать метрический шрифт с расширением amf в командной стоке набираем ttf2pt1 -A шрифт.ttf имяшрифтагенерируемого . Появляется файлик с раширением afm. В моем случае я работал со шрифтом arial. Посему команда была такая ttf2pt1 -A arial.ttf arial

PHP:
MakeFont (string fontfile , string afmfile [, string enc [, array patch [, string type ]]])
font>

Где:
fontfile - шрифт TrueType
afmfile - сгенерированный вами afm шрифт
enc - кодировка (в данном случае указываем кириллицу cp1251)
patch - опциональное изменение кодировки (не указываем)
type - тип шрифта (по умлочанию TrueType, по-этому можно не указывать)

Так вот, создаем скриптик, в который инклудим файл makefont/makefont.php в директории, скажем font, следующего вида:

PHP:
MakeFont ("arial.ttf" , "arial.afm" , "cp1251" ) ;
font>

И запускаем его! После чего происходит генерация двух файлов, описывающих скрипт!
Это arial.php и arial.z
В данном случае ключевым файлом для нашей работы является arial.php, в котором есть много чего интересного!

Все это дело оставляем на сервере, где у нас будут работать скрипты!
С помощью команд FPDF (с коими можно ознакомиться в документации) создаем pdf файл, но чтобы подключить к нему созданные нами шрифты, нужно вызвать функцию FPDF addfont().

А именно так:

PHP:
$pdf = new FPDF ();
$pdf -> addfont ("arial" , "" , "font/arial.php" );
font>

Как вы уже поняли, первый аргумент функции - имя шрифта, третий - это путь до сгенерированного нами пхп файла! Второй аргумент - это стиль шрифта(жирный, курсив и т.д.). Однако для его использования нужно повторить операции по созданию шрифта соотвественно для жирного, курсива и т.д.!

Пишем какой-нибудь русский текст, выводим его в пдф! И опля! Шрифт русский у нас отображается, но некрасиво! Расстояние между буквами разное, все очень криво и неровно! А все из-за того, что как то некоректно сгенерировался файл arial.php с описанием скрипта!
Посмотрим, что в нем есть:
А в нем есть массив $cw, который имеет вид ключ=>значение = символ=>размерсимвола! И если внимательно приглядеться, что для латиницы для каждой буквы стоит разный размер, а вот для кириллицы одинаковы 750! Можно вручную изменять эти размеры, добиваясь красоты вида!

Но я пожалуй размещу уже исправленную карту размеров для arial regular!

Всем спасибо за внимание!
Сорри за корявость изложения!
Но надеюсь на полезность содержания!

У меня есть большой файл PDF, который представляет собой карту пола для здания. Он имеет слои для всей офисной мебели, включая текстовые окна с местом расположения сиденья.

Есть ли способ сделать это через PHP? (Или даже Ruby или Python, если это то, что необходимо)

ваш первоначальный запрос: «У меня большой PDF-файл, который представляет собой карту пола для здания».

Я боюсь сказать вам, что это может быть сложнее, чем вы предполагаете.

Причина, по которой последнее известное использование lib используется для анализа pdf, - это smalot, и, как известно, проблема связана с большим файлом.

Здесь также Lookig для реального php lib для синтаксического анализа pdf, без пика памяти, которому нужна конфигурация php, чтобы отключить ограничение памяти, как это делает множество «разработчиков» (что, на мой взгляд, действительно нецелесообразно).

см. это сообщение для получения дополнительной информации о производительности smalot: https://github.com/smalot/pdfparser/issues/163

Они позволят вам открыть PDF-файл и добавить в него контент на PHP. Я предполагаю, что вы также можете использовать свою функциональность для поиска через существующий контент для нужных вам значений.

Другая возможная библиотека - TCPDF: http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf

Обновить, чтобы добавить более современную библиотеку: PDF Parser

Хм... не точно php, но вы можете вызвать программу из php, чтобы преобразовать pdf в временный html-файл, а затем проанализировать полученный файл с помощью php. Я сделал что-то подобное для моего проекта, и это программа, которую я использовал:

Что круто о программе, так это то, что она будет выплевывать текстовые элементы в тегах

с абсолютными координатами положения. Похоже, это именно то, что вы пытаетесь сделать.


Сайт визитка: особенности хорошего старта
Надувные матрасы от Ламон
WebNames.Ru – десятилетие деятельности в Интернете
Квартира для вашего сайта.
Технологии от BoldSoft
Как добиться успеха в безнадежных проектах
Новый тип навигационной системы при постраничном выводе
Генерация PDF с помощью PHP
PHP и PostgreSQL
Оптимизируем MySQL

Генерация PDF с помощью PHP

Предисловие
Одна из причин, почему я люблю PHP - это то, что в нем постоянно появляется поддержка новых технологий. Язык легко расширяем, и разработчики легко добавляют к нему новые модули, поэтому PHP стал одним из самых функциональных Web языков с поддержкой огромного разнообразия разных технологий. Расширения, существующие сегодня, позволяют разработчикам легко работать с сервером IMAP и POP3; динамически создавать изображения и рисунки в формате Flash; выполнять операции проверки кредитных карт; шифровать секретные данные; и работать с базами XML.

И это еще не все! Одно из самый интересных расширений, добавленных на сегодня в PHP - это расширение PDFLib , которое позволяет разработчикам динамически генерировать документы в формате PDF (Adobe Portable Document Format) . На протяжении следующих нескольких страниц я кратко расскажу об этом модуле, и дам обзор используемых функций, расскажу как использовать это расширение в PHP разработках. Так что поехали!

Поехали!
Чтобы задействовать расширение PDFLib , сначала нужно установить соответсвующую библиотеку в Вашу систему. Если вы работаете на Linux , можно скачать копию с сайта http://www.pdflib.com/pdflib/index.html и скомпилировать ее для вашего сервера. Если вы работаете на Windows, все намного проще - вместе с дистрибутивом PHP уже поставляется скомпилированный модуль PDF , и все что Вам нужно сделать - это его активировать, раскомментировав соответствующую строку в конфигурационном файле.

Вдобавок, Вам потребуется копия программы Adobe Acrobat PDF reader , чтобы читать документы, созданные с помощью библиотеки PDFLib . Скачать бесплатно Adobe Acrobat Reader можно с сайта производителя: http://www.adobe.com/

Как только все установлено, время создать простой PDF документ:

Сохраните этот файл, а затем откройте его в браузере. PHP обработает данный скрипт и сгенерирует новый PDF файл, который сохранит в месте, указанном вверху скрипта. Вот что Вы увидите открыв этот PDF документ:

Все права на публикацию этой статьи принадлежат

Урок анатомии
Поглядим внимательнее на код, используемый в приведенном примере.

Создание PDF файла в PHP включает в себя 4 основных шага: создание указателя на документ, регистрация шрифтов и цветов для документа, запись или рисование в указатель с использований предопределенных функций, и сохранение документа.

Начнем с первого шага - создание указателя на PDF

// create handle for new PDF document $pdf = pdf_new();

Это достигается с помощью функции pdf_new(), которая возвращает указатель на этот документ. Затем этот указатель используется во всех последующих операциях по созданию PDF документа.

Следующим шагом следует дать PDF файлу имя - это достигается функцией pdf_open_file(), которая принимает два аргумента - указатель, возвращенный предыдущей функцией и собственно имя файла, определяемое пользователем.

// open a file pdf_open_file($pdf, "philosophy.pdf");

Как только документ был создан, в него можно вставить начало новой страницы функцией pdf_begin_page(),

// start a new page (A4) pdf_begin_page($pdf, 595, 842);

и конец страницы - да вы угадали!! - функцией pdf_end_page().

// end page pdf_end_page($pdf);

Заметьте, что функция pdf_begin_page() требует два дополнительных параметра, которые представляют собой ширину и высоту создаваемого документа в точках (точка равна 1/72 дюйма). Если у вас плохо с математикой, учебник по PHP включает в себя стандартные размеры для всех распространенных размеров страниц, в том числе и A4, который используется выше.

Между вызовами pdf_begin_page() и pdf_end_page() находится код, который пишет в файл, будт это текст, картинки или геометрические фигуры. В данном примере я всего лишь пишу в документ строку текста - поэтому, все что мне нужно сделать - выбрать шрифт и использовать его при записи текста в документ.

Выбор и регистрация шрифта выполняется функциями pdf_findfont() и pdf_setfont(). Функция pdf_findfont() выбирает шрифт для использования в документе, и требует ввести имя шрифта, метод кодирования и Булевый параметр, указывающий на то, следует ли внедрить шрифт в PDF документ; а возвращает она объект-шрифт, который можно потом использовать при вызове функции pdf_setfont().

$arial = pdf_findfont($pdf, "Arial", "host", 1); pdf_setfont($pdf, $arial, 10); Как только шрифт выбран, можно использовать функцию pdf_show_xy() для записи текста в определенное место на странице.
// print text pdf_show_xy($pdf, "There are more things in heaven and earth, Horatio,", 50, 750); pdf_show_xy($pdf, "than are dreamt of in your philosophy", 50, 730);

Как вы заметили, эта функция требует указатель на PDF документ, ссылку на используемый объект-шрифт, текст для записи и координаты X Y места, откуда начинать запись текста. Эти координаты указываются относительно точки (0,0), которая находится в левом нижнем углу документа.

Как только текст был записан, страница закрывается вызовом функции pdf_end_page(). Затем можно добавить еще страницы или, как я здесь сделал, просто закрыть документ с помощью pdf_close(). Эта функция сохранит документ с именем, указанным при вызове pdf_open_file(), и уничтожит указатель на документ.

Все права на публикацию этой статьи принадлежат

А вот PDF вывод:

Все волшебство здесь заключается в функциях pdf_open_image_file() и pdf_place_image(). Превая из них принимает тип изображения - GIF, JPEG, TIFF или PNG - и название файла в качестве аргументов, и возвращает указатель на рисунок, который затем можно повторно использовать в документе.

Указатель на рисунок, возвращенный выше затем можно передать функции pdf_place_image(), которая расположит рисунок в определенном месте на странице. Координаты, переданные данной функции (второй и третий аргумент) относятся к левому нижнему углу рисунка, а четвертый аргумент задает параметр масштабирования рисунка при отображении (1 - покажет рисунок в 100% масштабе, 0.5 уменьшит его в два раза.)

Все права на публикацию этой статьи принадлежат

Кратчайшее расстояние между двумя точками
Не юудем останавливаться! Модуль PDF включает в себя огромное количество функций, который помогут Вам рисовать линии, круги и другие фигуры. Вот пример, где мы нарисуем линию.

Вот что вы увидите:

В данном случае процесс рисования линии включает в себя использование функций pdf_moveto(), pdf_lineto() и pdf_stroke().

В приведенном выше примере я рисую линию из точки (20,780) до точки (575, 780). Чтобы сделать это сначала мне нужно поместить курсор в начальную точку (20,780), с помощью вызова функции to pdf_moveto().

Затем необходимо задать конечную точку с помощью pdf_lineto():

Наконец, рисуем линию с помощью pdf_stroke().

Цвет линии задается функцией pdf_setcolor(), которая принимает несколько параметров: указатель на PDF документ, тип линии: "stroke", "fill" или "both", цветовая палитра (RGB или CMYK), и список цветовых значений, подходящих к выбранной палитре.

pdf_setcolor($pdf, "stroke", "rgb", 0, 0, 0);

Важно заметить, что список цветовых значений, передаваемый pdf_setcolor() должен быть задан в процентной величине интенсивности - то есть, интенсивности данного цвета, выраженной в процентах от максимально возможной. Например, если я хочу задать (RGB: 255,0,0) в качестве цвета для заливки, мой вызов функции pdf_setcolor() будет выглядеть вот так,

pdf_setcolor($pdf, "stroke", "rgb", 1, 0, 0);

А заливка желтым цветом будет выглядеть так:

pdf_setcolor($pdf, "fill", "rgb", 1, 1, 0);

Все права на публикацию этой статьи принадлежат

Квадраный колышек, круглая дыра
Линии - это не единственное, что Вы можете рисовать - круги и прямоугольники также присутсвуют в сегодняшнем меню. Посмотрите на пример ниже:

Вот вывод:

В данном случае функция the pdf_rect() используется для рисования прямоугольника с помощью заданных координат левого нижнего угла, высоты и ширины. Затем прямоугольник закрашивается и обводится двумя разными цветами с помощью функции pdf_fill_stroke().

pdf_setcolor($pdf, "fill", "rgb", 1, 1, 0); pdf_setcolor($pdf, "stroke", "rgb", 0, 0, 0); pdf_rect($pdf, 50, 500, 200, 300); pdf_fill_stroke($pdf);

Круги рисуются функцией pdf_circle(), которая принимает три аргумента: координаты X и Y центра круга и длину радиуса.

pdf_circle($pdf, 400, 600, 100);

Эта возможность рисования геометрических изображений "на лету" может пригодиться в различных ситуациях. К примеру, вот одна из них - в ней пара циклов "for" соединяются с функцией pdf_lineto() для генерации сетки из линий.

Вот вывод:

Все права на публикацию этой статьи принадлежат

А теперь, при просмотре документа в Adobe Reader , вы сможете увидеть эту информацию в Свойствах Документа.

Все права на публикацию этой статьи принадлежат

Кусок пирога
Теперь, когда Вы умеете создавать документы PDF , обратимся к реальному применению. Следующий пример демонстрирует как PHP может принимать числовые данные и генерировать из них графики - к примеру, многоцветный график-"пирог".

Форма внизу запрашивает несколько кусков данных, в виде чисел, разделенных запятыми. После ввода нескольких чисел скрипт "pie.php" конвертирует их из абсолютных чисел в куски данных относительных размеров и использует эти куски для генерации PDF документа, содержащего график-"пирог", выделяя различные куски и заливая из разными цветами.

Pie Chart Generator

Enter numeric values (pie segments), separated by commas
А вот скрипт:

Данные, введенные в форму, передаются скрипту "pie.php" переменной $data; эти данные затем разделяются на отдельные компоненты функцией explode(), и каждое значение присваивается массиву $slices. Затем в цикле эти числа конвертируются в градусы для круга и для каждого куска рисуется дуга. В каждом проходе цикла также вычисляется координата конечной точки дуги и рисуется сегмент линии для того, чтобы отделить дугу от остальной окружности. Как только "кусок пирога" нарисован, используется функция the pdf_fill_stroke() для заливки его цветом; цвет берется из массива $colours.

Мы не будем рассматривать как скрипт вычисляет длинц каждой дуги и сегмента линии - в комментариях кода все объясняется.

Если вы введете 5 равных кусков данных, график будет выглядеть так,

Если введете 2, то:

Вот так - поиграйте со скриптом, и посмотрите как различные куски меняют форму, отражая относительные размеры данных Ну а пока - до скорого!

Замечание: Все примеры в данной статье проверены на платформе Linux/i586 с Apache 1.3.12 и PHP 4.2.0. Примеры приводятся только для иллюстративных целей и не предназначены для жизненных применений.

  • Перевод

Большинство web-сервисов экспортируют данные в разных форматах для дальнейшего использования. Данная статья о том, как экспортировать данные в pdf-формате.
Хотя многие знают как это делать, я опишу кратко для тех кто не знает.

PHP позволяет нам генерировать файлы в формате pdf налету. FPDF - это бесплатный код на языке php, позволяющий создавать документы в формате pdf и производить с ними различные манипуляции.

PDFlib
PHP API содержит большое количество функций для работы с PDF, реализованных на базе PDFlib . Несмотря на это, данная библиотека не является бесплатной для коммерческого использования. Бесплатная версия называется PDFlib Lite и бесплатная для персонального использования, однако она ограничена в функциональности. Для того чтобы использовать полную библиотеку PDFlib необходимо купить лицензию.

Почему FPDF?
Альтернатива - это использование FPDF, бесплатный класс содержащий большое количество функций для создания и манипулирования PDF-документами. Ключевое слово для данного момента - это ее бесплатность. Вы можете скачать, использовать и модифицировать данный класс как вам заблагорассудится. В дополнение к бесплатности, эта библиотека намного проще, чем PDFlib. Для использования PDFlib необходимо установить ее как расширение к PHP, в то время как FPDF может быть подключена в программу напрямую.

Создание документов PDF
Для того чтобы начать, необходимо скачать код FPDF с сайта FPDF Web site и включить в программу. Например, вот так


Ниже пример использования библиотеки для генерации простого PDF.
Мы создадим новый объект FPDF:

Конструктор FPDF принимает следующие параметры
  • Ориентация страницы (P or L) книжная или альбомная
  • Размерность (pt,mm,cm или in)
  • Размер документа (A3, A4, A5, Letter and Legal)
Далее мы установим некоторые свойства документа
$pdf->SetAuthor("Lana Kovacevic");
$pdf->SetTitle("FPDF tutorial");

Так как в данном примере мы используем одинаковый шрифт для всего документа, мы устанавливаем его до создания страницы
$pdf->SetFont("Helvetica","B",20);
$pdf->SetTextColor(50,60,100);

У функции SetFont 3 параметра; название шрифта, стиль и размер. Мы используем Helvetica, жирный и 20 пунктов, мы будем использовать его для заголовка документа.
Вы можете использовать любой другой шрифт, используя функцию AddFont.
Используя функцию SetTextColor, мы устанавливаем цвет шрифта для всего документа. Цвет может быть представлен в RGB или grey scale. В данном примере мы используем RGB-значения.
Теперь когда главное сделано, приступим к созданию страниц.
$pdf->AddPage("P");
$pdf->SetDisplayMode("real","default");

В функцию AddPage () можно передать параметры «P» или «L» для указания ориентации страницы. Функция SetDisplayMode определяет как будет отображена страница. Вы можете определить параметры увеличения и разметки. В примере мы используем 100% увеличение и разметку по умолчанию, определенную в программе, используемой для просмотра.

Сейчас, когда у нас есть страница, давайте вставим в нее изображение для того чтобы сделать страницу приятней, также мы добавим ссылку. Мы отобразим логотип FPDF используя функцию Image и передадим в нее следующие параметры - название файла, размерность и адрес.

$pdf->Image("/logo.svg?3",10,20,33,0," ","http://www.fpdf.org/");

Для того чтобы добавить ссылку воспользуемся следующей командой
$pdf->Link(10, 20, 33,33, "http://www.fpdf.org/");

Сейчас созададим заголовок с рамкой
$pdf->SetXY(50,20);
$pdf->SetDrawColor(50,60,100);
$pdf->Cell(100,10,"FPDF Tutorial",1,0,"C",0);

Функция SetXY устанавливает x и y координаты точки, в которой мы хотим вывести заголовок. SetDrawColor устанавливает цвет границы, используя значения RGB. После этого мы вызываем функцию Cell для вывода прямоугольника с текстом нашего заголовка. Мы передаем в функцию следующие параметры: ширина, высота, текст, граница, ln, выравнивание и заполнение. Значение границы 0 - отсутствие границы или 1 для наличия границы. Для ln мы используем значение по умолчанию 0, «C» - выравнивание текста по цуентру и 0 для параметра заполнение. Если мы бы установили последний паараметр в 1 наш прямоугольник был бы закрашен, значение 0 оставит его прозрачным.
Теперь мы хотим написать маленький текст в наш документ
$pdf->SetXY(10,50);
$pdf->SetFontSize(10);
$pdf->Write(5,"Congratulations! You have generated a PDF. ");

Итак снова мы устанавливаем координаты вывода текста x и y, но теперь мы уменьшим размер шрифта, используя SetFontSize. Функция Write напечатает текст в наш документ. Параметр 5 устанавливает высоту, он имеет смысл только тогда когда у нас есть много строк в нашем тексте.
В конце мы выведен наш результат, используя функцию Output.
$pdf->Output("example1.pdf","I");

Здесь мы указали имя файла и параметры вывода, в данном случае «I». «I»-параметр выведет результат в браузер.

Итак полный текст:

require("fpdf.php");
//create a FPDF object
$pdf=new FPDF();
//set document properties
$pdf->SetAuthor("Lana Kovacevic");
$pdf->SetTitle("FPDF tutorial");
//set font for the entire document
$pdf->SetFont("Helvetica","B",20);
$pdf->SetTextColor(50,60,100);
//set up a page
$pdf->AddPage("P");
$pdf->SetDisplayMode(real,"default");
//insert an image and make it a link
$pdf->Image("/logo.svg?3",10,20,33,0," ","http://www.fpdf.org/");
//display the title with a border around it
$pdf->SetXY(50,20);
$pdf->SetDrawColor(50,60,100);
$pdf->Cell(100,10,"FPDF Tutorial",1,0,"C",0);
//Set x and y position for the main text, reduce font size and write content
$pdf->SetXY (10,50);
$pdf->SetFontSize(10);
$pdf->Write(5,"Congratulations! You have generated a PDF.");
//Output the document
$pdf->Output("example1.pdf","I");

Сейчас когда мы научились создавать документы, посмотрим что еще можно сделать, используя FPDF. Пример ниже показывает нам как создать верх и низ (хедер и футер:-)) нашего документа.

require("fpdf.php");
class PDF extends FPDF
{
function Header()
{
$this->Image("/logo.svg?3",10,8,33);
$this->SetFont("Helvetica","B",15);
$this->SetXY(50, 10);
$this->Cell(0,10,"This is a header",1,0,"C");
}
function Footer()
{
$this->SetXY(100,-15);
$this->SetFont("Helvetica","I",10);
$this->Write (5, "This is a footer");
}
}
$pdf=new PDF();
$pdf->AddPage();
$pdf->Output("example2.pdf","D");

Как вы видите мы создали дочерний класс, используя наследование и создания функций Header и Footer. Затем мы создали новый объект и добавили страницу в документ. Функция AddPage автоматически вызовет функции Header и Footer. В конце мы вывели полученную информацию в файл с названием example2.pdf, используя значение «D». В этом случае браузер предложит сохранить данный файл.

Итак, мы изучили основы создания PDF-документов, для более подробной информации используйте