developer blog – 451 degrees Fahrenheit

Developer Blog

Archives Posts

Рисуем свой pdf файл на php, часть 2

October 28th, 2007 by pilot

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

Итак бибилиотеке fpdf 1.5.3 , скачиваем, распаковываем к себе на сервер в любую папку, к примеру pdf, после распаковки получаем следующую структуру папок:

У себя я использую пакет denver от dklab.ru, либо XAMPP http://www.apachefriends.org/en/xampp.html, который включает полный пакет программ необходимых веб разработчику. К тому же XAMPP подойдет как тем кто любит Linux, так и Windwos разработчикам.

pdf/
-doc/
-font/
-tutorial/
-FAQ.htm
-fpdf.css
-fpdf.php
-histo.htm
-install.txt

Оставляем только необходимое папку font/ и fpdf.php. Конечно, у кого есть немного времени чтоб ознакомиться с примерами из папки tutorial/, вы не пожалеете, примеры показывают практически исчерпывающую информацию по работе с fpdf.

Для начала создамим первый простой pdf файл, создайте pdf/test.php, с кодом:

[cc lang="php"]
require(‘fpdf.php’);

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(‘Arial’,'B’,16);
$pdf->Cell(40,10,’Hello World!’);
$pdf->Output();
[/cc]

Первой строчкой мы подключаем библиотеку, далее:

[cc lang="php"]$pdf = new FPDF(); // Создаем новый объект[/cc]

Изначально наш pdf файл пуст, по-этому добавляем в наш pdf, новый лист:

[cc lang="php"]$pdf->AddPage(); // по умолчанию создется лист формата А4[/cc]

Перед выводом любого текста, предварительно нужно задать шрифт, в противном случае при создание будет сообщено об ошибке:
[cc lang="php"]$pdf->SetFont(‘Arial’,'B’,16);[/cc]

И вот теперь мы может напечатать свой первый текст в первом pdf файле, с помощью функции Сell(), эта функция нарисует прямоугольную область с надписью внутри. Фактически будет выведена ячейка таблицы с текстом внутри.

[cc lang="php"]Cell(40,10,’Hello World!’);[/cc]

Для вывода просто текста используюется функция Write(), а для перевода на новую строку отдельная функция Ln():

[cc lang="php"]
$pdf->Ln(); // перевод картеки на новую строку
$pdf->Write(4, “текс для вывода”); // значение 4 означение высоту строки
[/cc]

Выводим сам pdf, с помощью функции Output(), которая может принимать несколько значний, Output(“пусть/имя.pdf”, dest) имя выводимого файла, и второй необязательный параметр как будет выводиться файл, сразу в броузер либо сохранен на диск:

[cc lang="php"]$pdf->Output();[/cc]

Вот и создан первый pdf файл, на практиче простые текстовые файлы создаются довольно просто и библиотека работает безупречно.

И так вывод тикетов в pdf файл, ниже я буду давать php код с минимумом текстовых коментариев, так как основные принципы создания pdf файла я описал выше…

Read the rest of this entry »

Filed under php having 4 Comments »

Archives Posts

Рисуем свой pdf файл на php, часть 1

October 25th, 2007 by pilot

При работе над одним проектом возникла задача вывести тикеты (tickets) на предварительно порезанной самоклеющейся бумаге.

Из трех решений данной задачи:

  1. Выводить простым html ‘ лем (и конвертировать в pdf)
  2. Нарисовать gif картинку
  3. Нарисовать pdf

был выбран вариант №3 – нарисовать pdf, исходя из того, что в первом варианте вывод на печать в разных броузеров значительно отличается и выводить html, который требуется сформировать под вывод на печать основных броузеров, не целесообразно. Второй вариант - вывод в картинку, не подходил так как во время вывода изображения теряется качество выводимого текста.

Выбранный в итоге вариант рисования своего pdf, как оказалось на практике не так легко воплотить.

Первое, что нужно выбрать, библиотеку для рисования pdf.

При беглом обзоре с гуглом, попались:

  1. pdflib
  2. fpdf153
  3. html2fpdf-3.0.2b — конвертер из html
  4. dompdf-0.5.1 — конвертер из html

Выбор был остановлен на fpdf153, почему?

Самый простой вариант, который меня устраивал — это использовать конвертер из html в pdf , но полученный результат конвертирования меня не устроил, так как пердставленые бесплатные конвертеры могут корректно выполнять конвертацию только простых html файлов без использования блоков div. В основном простых таблиц обозначенных бордерами.

Кого заинтересовали мои исследования в области конвертации из html в pdf, пишите в комментариях. Так как во время поиска конвертера я протестировал несколько коммерческих продуктов, которые при наличии средств можно использовать вместо того, чтоб заниматься конвертацией и доделкой бесплатных библиотек самому.

Рисовалка pdf файлов pdflib доступная как модуль расширения php хорошо документированная, оказалась для меня не доступной так как хостиг провайдер заказчика, отказался добавлять эту библиотеку. В итоге для работы я выбрал библиотеку fpdf последняя доступная версия 1.5.3 , сайт разработчика www.fpdf.org Русская документация по fpdf library качаем по ссылке http://www.fpdf.org/en/dl.php?id=92

С библиотекой все ясно, приступаем непосредственно к самому моменту рисования pdf файла, об этом во подробно во второй части…

У кого есть личный примеры работы с fpdf, пишите свои примеры, буду рад разместить ваш опыт на страницах этого дневника.

Не забудьте подписаться на RSS и e-mail рассылку.

Filed under php having No Comments »