Функции PDF в PHP могут создавать PDF-файлы с использованием библиотеки PDFlib, автор Thomas Merz .
Документация этого раздела является обзором функций библиотеки PDFlib и не может считаться исчерпывающим справочником. Консультируйтесь в сопровождающей документации дистрибутива PDFlib. Там содержится полноценный обзор возможностей функций библиотеки PDFlib и самая свежая информация обо всех функциях.
В библиотеке PDFlib и в модуле PHP все функции и параметры имеют
идентичные имена. Вам необходимо разобраться в некоторых основных понятиях PDF
и PostScript, чтобы эффективно использовать это расширение.
Все размеры и координаты измеряются в пунктах
PostScript. Обычно имеется 72 PostScript-пункта на дюйм, но это зависит от разрешающей способности на выводе. См. в
PDFlib-документации, включённой в дистрибутив PDFlib, объяснение используемой системы координат.
Обратите внимание, что большинство функций PDF требуют pdf object в качестве первого параметра. См. примеры далее.
Примечание: Имеется альтернативный модуль PHP для создания PDF-документов на базе FastIO"s ClibPDF. См. раздел ClibPDF . Обратите внимание, что ClibPDF имеет несколько иной API по сравнению с PDFlib.
ТребованияPDFlib доступна для скачивания на http://www.pdflib.com/products/pdflib/index.html , но требует платной лицензии на коммерческое использование. Библиотеки JPEG и TIFF требуются при компиляции данного расширения.
Для использования данных функций в PHP
Когда вы используете версию 3.x PDFlib, вы должны сконфигурировать PDFlib с опцией --enable-shared-pdflib .
В PHP 4.3.9, Вы должны установить это расширение через PEAR , используя следующую команду: pear install pdflib .
Конфликты со старыми версиями PDFlibНачиная с PHP 4.0.5, PHP-расширение для PDFlib официально поддерживается компанией PDFlib GmbH. Это означает, что все функции, описанные в учебнике PDFlib (V3.00 или выше), поддерживаются в PHP 4 с точно теми же значениями и параметрами. Только return-значения могут отличаться от учебника PDFlib, так как используется соглашение PHP по возвращению FALSE . Из соображений совместимости эта привязка к PDFlib всё ещё поддерживает старые функции, но они должны быть заменены их новыми версиями. PDFlib GmbH не будет рассматривать проблемы, возникающие при использовании этих старых функций.
pdf_put_image() | Больше не нужна. |
pdf_execute_image() | Больше не нужна. |
pdf_get_annotation() | pdf_get_bookmark() с использованием тех же параметров. |
pdf_get_font() | pdf_get_value() с передачей "font" в качестве второго параметра. |
pdf_get_fontsize() | pdf_get_value() с передачей "fontsize" в качестве второго параметра. |
pdf_get_fontname() | pdf_get_parameter() с передачей "fontname" в качестве второго параметра. |
pdf_set_info_creator() | pdf_set_info() с передачей "Creator" в качестве второго параметра. |
pdf_set_info_title() | pdf_set_info() с передачей "Title" в качестве второго параметра. |
pdf_set_info_subject() | pdf_set_info() с передачей "Subject" в качестве второго параметра. |
pdf_set_info_author() | pdf_set_info() с передачей "Author" в качестве второго параметра. |
pdf_set_info_keywords() | pdf_set_info() с передачей "Keywords" в качестве второго параметра. |
pdf_set_leading() | pdf_set_value() с передачей "leading" в качестве второго параметра. |
pdf_set_text_rendering() | pdf_set_value() с передачей "textrendering" в качестве второго параметра. |
pdf_set_text_rise() | pdf_set_value() с передачей "textrise" в качестве второго параметра. |
pdf_set_horiz_scaling() | pdf_set_value() с передачей "horizscaling" в качестве второго параметра. |
pdf_set_text_matrix() | Больше не доступна. |
pdf_set_char_spacing() | pdf_set_value() с передачей "charspacing" в качестве второго параметра. |
pdf_set_word_spacing() | pdf_set_value() с передачей "wordspacing" в качестве второго параметра. |
pdf_set_transition() | pdf_set_parameter() с передачей "transition" в качестве второго параметра. |
pdf_open() | pdf_new() плюс последующий вызов pdf_open_file() |
pdf_set_font() | pdf_findfont() плюс последующий вызов pdf_setfont() |
pdf_set_duration() | pdf_set_value() с передачей "duration" в качестве второго параметра. |
pdf_open_gif() | pdf_open_image_file() с передачей "gif" в качестве второго параметра. |
pdf_open_jpeg() | pdf_open_image_file() с передачей "jpeg" в качестве второго параметра. |
pdf_open_tiff() | pdf_open_image_file() с передачей "tiff" в качестве второго параметра. |
pdf_open_png() | pdf_open_image_file() с передачей "png" в качестве второго параметра. |
pdf_get_image_width() | pdf_get_value() с передачей "imagewidth" в качестве второго параметра и изображения в качестве третьего параметра. |
pdf_get_image_height() | pdf_get_value() с передачей "imageheight" в качестве второго параметра и изображения в качестве третьего параметра. |
При использовании версии 3.x библиотеки PDFlib вы должны сконфигурировать PDFlib с опцией
--enable-shared-pdflib .
PDFlib 3.0 или выше поддерживается в PHP 3.0.19 и позднее.
ПримерыБольшинство функций довольно легко использовать. Самое трудное это, пожалуй, создание очень простого PDF-документа. Следующий пример должен помочь начать. Он создаёт test.pdf из одной страницы. Эта страница содержит текст "Times Roman outlined" шрифтом outlined 30pt. Текст также подчёркнут.
Пример 1. Создание PDF-документа с помощью PDFlib Скрипт getpdf.php возвращает pdf-документ: |
Дистрибутив PDFlib содержит более сложный пример, где создаётся страница с аналоговыми часами. Здесь мы используем возможность PDFlib создания в памяти, чтобы не использовать временные файлы. Этот пример, конвертированный в PHP из примера PDFlib, таков: (Такой же пример имеется в документации CLibPDF .)
Пример 2. pdfclock из дистрибутива PDFlib
|