PDF с нуля Никита Кислицин Хакер, номер #073, стр. 073-116-1 (nikitoz@real.xakep.ru) Создание pdf-документов в скриптах PHP В прошлом номере я рассказывал тебе, каким образом при помощи PHP можно экспортировать данные в формат xls. Сегодня я решил продолжить начатое и поведать тебе о том, каким образом можно в своих программах генерировать PDF-документы. Мы научимся с тобой рисовать геометрические фигуры, выводить таблицы с текстом и реализовать любые оформительские идеи. Для чего это нужно? Хороший вопрос :). Я знаю массу людей, которым это совершенно ни к чему, но ты-то ведь не из таких, правда? Если ты планируешь когда-нибудь заниматься web-программированием, тебе надо быть всесторонне развитым и уметь делать многое. Кроме того, мне бы хотелось приоткрыть для тебя завесу тайны вокруг формата pdf: для многих это абсолютная тьма, и они понятия не имеют, что это вполне открытый формат и нет ничего сложного в том, чтобы создавать собственные pdf-документы. Даже больше: по большому счету, после прочтения этой статьи для тебя не будет существенной разницы, в каком формате выводить пользователю результат работы сценария – в html, xls или pdf. Но последний формат обладает целым рядом преимуществ. Так что вливайся! Если ты внимательный человек, то заметил, что на поставленный в заголовке вопрос я так и не ответил :). Как же мы можем применить этот формат на практике? Представь ситуацию: у тебя есть сайт с кучей статей, и тебе нужно, чтобы каждую из них можно было скачать в формате, удобном для печати и конвертирования в plain-текст. При этом важно, чтобы сохранялось исходное форматирование документов, а их отображение не зависело от установленных в системе шрифтов. Ответ на эту задачу – использование pdf. Кроме того, описываемый формат уже давно стал стандартом де-факто для разнообразной документации: от научных статей до руководств по использованию бытовой техники и различных договоров. Так что обязательно надо научиться создавать такие документы прямо в PHP, добавляя в них текст и графику. Что нужно? Несложно догадаться, что по умолчанию PHP ничего такого не умеет - нет необходимости добавлять в язык функции, которыми будут пользоваться единицы. Зато преимущества PHP как легко расширяемого языка налицо: я могу сходу назвать по крайней мере три расширения, которые так или иначе позволяют работать с pdf-документами. Среди них, конечно, попсовые ClibPDF и PDPLib – даже на сайте www.php.net ты без проблем найдешь описание всех функций из этих библиотек. Однако сегодня я выбрал FPDF. Самая главная причина для этого заключается в том, что для его установки не нужно пересобирать PHP. Как справедливо отметил один из читателей, приславший мне письмо, большая часть читателей не имеет возможности пересобрать php на своем хостинге. С этим можно поспорить: необязательно тестировать свои скрипты на провайдерском сервере, лучше это делать на локальном компьютере. Но все же, если есть возможность использовать системонезависимое расширение, написанное исключительно на PHP, надо сделать это. Чем еще подкупает FPDF, так это своей лицензионной политикой, вернее, ее отсутствием. На сайте у них так и написано: «Это халява. Халява с самой первой строчки кода, и нет никаких ограничений, как вы это будете использовать». Так что будем юзать :). |