Создание PDF файлов с помощью PHP

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.

На этом все!

Просмотров: 4443      Опубликовал: Евгений Фединчик      Дата: 25.04.2010 19:21:53
  • Понравился урок? Добавьте его к себе в закладки.

    Последние уроки категории:

    Сокращение PHP кода

    Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...

    Видимость переменных в PHP

    В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.

    Как читать Rss ленты?

    Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.

    Установка и настройка PHP+Apache

    В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.

    Как выбрать фреймворк

    Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.

    Комментарии:

    • Jnas 18.10.2010 14:00:47
      почему нельзя оставить комментария в гостевой, не отправляется будто
      Ответить
    • Jnas 18.10.2010 14:01:38
      По поводу регистрации Можно создать регистрацию для комментарии... Если боитесь что пользователи не отблагодарят за урок, изза того что надо регатся , то для гостей можно сделать кнопку "Спасибо", как на трекерах... Эт только моё мнение
      Ответить
      • admin 18.10.2010 21:59:12
        Спасибо за интересное предложение. Администрация сайта сейчас занимается разработкой новой версии сайта. Свои мнения можете оставлять в комментариях к урокам. Самые интересные мы постараемся реализовать
        Ответить
    • Осталось: 1000 символов.
      Сохранить комментарий Отправка комментария
    lessons
    downloads
    search
    hosting

    Ищите хороший и не дорогой хостинг?

    Хостинг avahost.ua
    VPS VDS - виртуальный выделенный сервер
    sistems
    RBK Money

    Обменник.ws
    Статистика HitUa