Функции PDF в PHP могут создавать PDF-файлы с использованием библиотеки PDFlib, автор Thomas Merz. PDFlib доступна для загрузки на http://www.pdflib.com/pdflib/index.html, но требует приобретения лицензии для коммерческого использования. Библиотеки JPEG и TIFF необходимы для компилирования этого приложения. См. в разделе Инсталяция PDFlib о компиляции поддержки PDF в PHP.
Документация этого раздела является обзором функций библиотеки PDFlib и не может считаться исчерпывающим справочником. Консультируйтесь в сопровождающей документации дистрибутива PDFlib. Там содержится полноценный обзор возможностей функций библиотеки PDFlib и самая свежая информация обо всех функциях.
В библиотеке PDFlib и в модуле PHP все функции и параметры имеют
идентичные имена. Вам необходимо разобраться в некоторых основных понятиях PDF
и PostScript, чтобы эффективно использовать это расширение.
Все размеры и координаты измеряются в пунктах
PostScript. Обычно имеется 72 PostScript-пункта на дюйм, но это зависит от разрешающей способности на выводе. См. в
PDFlib-документации, включённой в дистрибутив PDFlib, объяснение используемой системы координат.
Обратите внимание, что большинство функций PDF требуют pdf object в качестве первого параметра. См. примеры далее.
Примечание: имеется альтернативный модуль PHP для создания PDF-документов на базе FastIO's ClibPDF. См. раздел ClibPDF. Обратите внимание, что ClibPDF имеет несколько иной API по сравнению с 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.
Любые версии PHP 4 после 9 марта 2000 не поддерживают версии PDFlib, ранее 3.0.
PDFlib 3.0 или выше поддерживается в PHP 3.0.19 и позднее.
Большинство функций довольно легко использовать. Самое трудное это, пожалуй, создание очень простого PDF-документа. Следующий пример должен помочь начать. Он создаёт test.pdf из одной страницы. Эта страница содержит текст "Times Roman outlined" шрифтом outlined 30pt. Текст также подчёркнут.