developer blog

451 degrees Fahrenheit

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, с кодом:

require('fpdf.php');

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

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

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

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

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

Перед выводом любого текста, предварительно нужно задать шрифт, в противном случае при создание будет сообщено об ошибке:

$pdf->SetFont('Arial','B',16);

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

Cell(40,10,'Hello World!');

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

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

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

$pdf->Output();

Вот и создан первый 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 »

Archives Posts

Hello world!

October 21st, 2007 by pilot

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

Первый пост, дальше… больше…

Filed under Uncategorized having 2 Comments »