Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Функции PHP
 
 

Функции PDF

Введение

Функции 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.

Примечание: Данное расширение было перемещено в PECL, начиная с PHP 4.3.9.

Требования

PDFlib доступна для скачивания на http://www.pdflib.com/products/pdflib/index.html, но требует платной лицензии на коммерческое использование. Библиотеки JPEG и TIFF требуются при компиляции данного расширения.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/pdflib.

Для использования данных функций в PHP < 4.3.9, вы должны располагать PHP, скомпилированным с опцией --with-pdflib[=DIR]. DIR - это установочная директория PDFlib, по умолчанию /usr/local. Кроме того Вы можете определить jpeg, tiff, и библиотеку png для использования в PDFlib, которые являются дополнительными для PDFlib 4.x. Для того, чтобы добавить эту особенность, используйте PHP, скомпилированный с опциями --with-jpeg-dir[=DIR] --with-png-dir[=DIR] --with-tiff-dir[=DIR].

Когда вы используете версию 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 не будет рассматривать проблемы, возникающие при использовании этих старых функций.

Таблица 1. Не рекомендуемые функции и их замены
Старая функция Замена
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" в качестве второго параметра и изображения в качестве третьего параметра.

Подсказки по установке PDFlib 3.x

При использовании версии 3.x библиотеки PDFlib вы должны сконфигурировать PDFlib с опцией
--enable-shared-pdflib
.

Вопросы по старым версиям PDFlib

Любые версии PHP 4 после 9 марта 2000 не поддерживают версии PDFlib, ранее 3.0.

PDFlib 3.0 или выше поддерживается в PHP 3.0.19 и позднее.

Примеры

Большинство функций довольно легко использовать. Самое трудное это, пожалуй, создание очень простого PDF-документа. Следующий пример должен помочь начать. Он создаёт test.pdf из одной страницы. Эта страница содержит текст "Times Roman outlined" шрифтом outlined 30pt. Текст также подчёркнут.

Пример 1. Создание PDF-документа с помощью PDFlib

<?php
$pdf 
pdf_new();
pdf_open_file($pdf"test.pdf");
pdf_set_info($pdf"Author""Uwe Steinmann");
pdf_set_info($pdf"Title""Test for PHP wrapper of PDFlib 2.0");
pdf_set_info($pdf"Creator""See Author");
pdf_set_info($pdf"Subject""Testing");
pdf_begin_page($pdf595842);
pdf_add_outline($pdf"Page 1");
$font pdf_findfont($pdf"Times New Roman""winansi"1);
pdf_setfont($pdf$font10);
pdf_set_value($pdf"textrendering"1);
pdf_show_xy($pdf"Times Roman outlined"50750);
pdf_moveto($pdf50740);
pdf_lineto($pdf330740);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
pdf_delete($pdf);
echo 
"<A HREF=getpdf.php>finished</A>";
?>

Скрипт getpdf.php возвращает pdf-документ:

<?php
$len 
filesize($filename);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
readfile($filename);
?>

Дистрибутив PDFlib содержит более сложный пример, где создаётся страница с аналоговыми часами. Здесь мы используем возможность PDFlib создания в памяти, чтобы не использовать временные файлы. Этот пример, конвертированный в PHP из примера PDFlib, таков: (Такой же пример имеется в документации CLibPDF.)

Пример 2. pdfclock из дистрибутива PDFlib

<?php
$radius 
200;
$margin 20;
$pagecount 10;

$pdf pdf_new();

if (!
pdf_open_file($pdf"")) {
    echo 
error;
    exit;
};

pdf_set_parameter($pdf"warning""true");

pdf_set_info($pdf"Creator""pdf_clock.php");
pdf_set_info($pdf"Author""Uwe Steinmann");
pdf_set_info($pdf"Title""Analog Clock");

while (
$pagecount-- > 0) {
    
pdf_begin_page($pdf* ($radius $margin), * ($radius $margin));

    
pdf_set_parameter($pdf"transition""wipe");
    
pdf_set_value($pdf"duration"0.5);
  
    
pdf_translate($pdf$radius $margin$radius $margin);
    
pdf_save($pdf);
    
pdf_setrgbcolor($pdf0.00.01.0);

    
/* minute strokes */
    
pdf_setlinewidth($pdf2.0);
    for (
$alpha 0$alpha 360$alpha += 6) {
        
pdf_rotate($pdf6.0);
        
pdf_moveto($pdf$radius0.0);
        
pdf_lineto($pdf$radius-$margin/30.0);
        
pdf_stroke($pdf);
    }

    
pdf_restore($pdf);
    
pdf_save($pdf);

    
/* 5 minute strokes */
    
pdf_setlinewidth($pdf3.0);
    for (
$alpha 0$alpha 360$alpha += 30) { 
        
pdf_rotate($pdf30.0);
        
pdf_moveto($pdf$radius0.0);
        
pdf_lineto($pdf$radius-$margin0.0);
        
pdf_stroke($pdf);
    }

    
$ltime getdate();

    
/* draw hour hand */
    
pdf_save($pdf);
    
pdf_rotate($pdf,-(($ltime['minutes']/60.0)+$ltime['hours']-3.0)*30.0);
    
pdf_moveto($pdf, -$radius/10, -$radius/20);
    
pdf_lineto($pdf$radius/20.0);
    
pdf_lineto($pdf, -$radius/10$radius/20);
    
pdf_closepath($pdf);
    
pdf_fill($pdf);
    
pdf_restore($pdf);

    
/* draw minute hand */
    
pdf_save($pdf);
    
pdf_rotate($pdf,-(($ltime['seconds']/60.0)+$ltime['minutes']-15.0)*6.0);
    
pdf_moveto($pdf, -$radius/10, -$radius/20);
    
pdf_lineto($pdf$radius 0.80.0);
    
pdf_lineto($pdf, -$radius/10$radius/20);
    
pdf_closepath($pdf);
    
pdf_fill($pdf);
    
pdf_restore($pdf);

    
/* draw second hand */
    
pdf_setrgbcolor($pdf1.00.00.0);
    
pdf_setlinewidth($pdf2);
    
pdf_save($pdf);
    
pdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
    
pdf_moveto($pdf, -$radius/50.0);
    
pdf_lineto($pdf$radius0.0);
    
pdf_stroke($pdf);
    
pdf_restore($pdf);

    
/* draw little circle at center */
    
pdf_circle($pdf00$radius/30);
    
pdf_fill($pdf);

    
pdf_restore($pdf);

    
pdf_end_page($pdf);

    
# to see some difference
    
sleep(1);
}

pdf_close($pdf);

$buf pdf_get_buffer($pdf);
$len strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
echo 
$buf;

pdf_delete($pdf);
?>
Содержание

 
pdf_add_annotation - не рекомендуется: добавляет аннотацию
pdf_add_bookmark - добавляет закладку на текущей странице
pdf_add_launchlink - добавляет запускающую аннотацию на текущей странице
pdf_add_locallink - добавляет аннотацию-ссылку на текущей странице
pdf_add_note - добавляет аннотацию-заметку на текущей странице
pdf_add_outline - не рекомендуется: добавляет закладку на текущей странице
pdf_add_pdflink - добавляет ссылку-аннотацию на файл на текущей странице
pdf_add_thumbnail - добавляет уменьшенную версию/thumbnail на текущей странице
pdf_add_weblink - добавляет web-ссылку на текущей странице
pdf_arc - рисует дугу (против часовой стрелки)
pdf_arcn - рисует дугу (по часовой стрелке)
pdf_attach_file - добавляет присоединение файла на текущей странице
pdf_begin_page - начинает новую страницу
pdf_begin_pattern - начинает новый патэрн
pdf_begin_template - начинает новый шаблон
pdf_circle - рисует круг
pdf_clip - обрезает до текущего пути/path
pdf_close_image - закрывает изображение
pdf_close_pdi_page - закрывает дескриптор страницы
pdf_close_pdi - закрывает ввод PDF-документа
pdf_close - закрывает pdf-объект
pdf_closepath_fill_stroke - закрывает, заполняет и очерчивает текущий путь
pdf_closepath_stroke - закрывает путь и рисует линию вокруг пути
pdf_closepath - закрывает путь
pdf_concat - конкатенация матрицы с CTM
pdf_continue_text - выводит текст в следующей строчке
pdf_curveto - рисует кривую
pdf_delete - удаляет PDF-объект
pdf_end_page - заканчивает страницу
pdf_end_pattern - заканчивает патэрн
pdf_end_template - заканчивает шаблон
pdf_endpath - не рекомендуется: заканчивает текущий путь
pdf_fill_stroke - заполняет и очерчивает текущий путь
pdf_fill - заполняет текущий путь
pdf_findfont - готовит шрифт для последующего использования с pdf_setfont()
pdf_get_buffer - извлекает буфер, содержащий сгенерированные PDF-данные
pdf_get_font - не рекомендуется: работа со шрифтом
pdf_get_fontname - не рекомендуется: работа со шрифтом
pdf_get_fontsize - не рекомендуется: работа со шрифтом
pdf_get_image_height - возвращает высота изображения
pdf_get_image_width - возвращает ширина изображения
pdf_get_majorversion - возвращает наибольший номер версии PDFlib
pdf_get_minorversion - возвращает наименьший номер версии PDFlib
pdf_get_parameter - получает определённые параметры
pdf_get_pdi_parameter - получает некоторые строковые параметры PDI
pdf_get_pdi_value - получает некоторые числовые параметры PDI
pdf_get_value - получает некоторое числовое значение
pdf_initgraphics - переустанавливает графический статус
pdf_lineto - рисует линию
pdf_makespotcolor - делает spotcolor
pdf_moveto - устанавливает текущую точку
pdf_new - создаёт новый pdf-объект
pdf_open_CCITT - открывает новый файл изображения с необработанными CCITT-данными
pdf_open_file - открывает новый pdf-объект
pdf_open_gif - не рекомендуется: открывает GIF-изображение
pdf_open_image_file - читает изображение из файла
pdf_open_image - Versatile-функция для изображений
pdf_open_jpeg - не рекомендуется: открывает JPEG-изображение
pdf_open_memory_image - открывает изображение, создаваемое РНР-функциями изображений
pdf_open_pdi_page - готовит страницу
pdf_open_pdi - открывает PDF-файл
pdf_open_png - не рекомендуется: открывает PNG-изображение
pdf_open_tiff - не рекомендуется: открывает TIFF-изображение
pdf_open - не рекомендуется: открывает новый pdf-объект
pdf_place_image - помещает изображение на страницу
pdf_place_pdi_page - помещает изображение на страницу
pdf_rect - рисует прямоугольник
pdf_restore - восстанавливает ранее сохранённое окружение
pdf_rotate - устанавливает поворот
pdf_save - сохраняет текущее окружение
pdf_scale - устанавливает масштабирование
pdf_set_border_color - устанавливает цвет рамки вокруг ссылок и аннотаций
pdf_set_border_dash - устанавливает стиль пунктирной рамки вокруг ссылок и аннотаций
pdf_set_border_style - устанавливает стиль рамки вокруг ссылок и аннотаций
pdf_set_char_spacing - не рекомендуется: устанавливает расстояние между символами
pdf_set_duration - не рекомендуется: устанавливает расстояние между страницами
pdf_set_font - не рекомендуется: выбирает шрифт и размер
pdf_set_horiz_scaling - устанавливает масштабирование текста по горизонтали
pdf_set_info_author - заполняет поле author документа
pdf_set_info_creator - заполняет поле creator документа
pdf_set_info_keywords - заполняет поле keywords документа
pdf_set_info_subject - заполняет поле subject документа
pdf_set_info_title - заполняет поле title документа
pdf_set_info - заполняет поле информации документа
pdf_set_leading - не рекомендуется: устанавливает расстояние между строками текста
pdf_set_parameter - устанавливает некоторые параметры
pdf_set_text_matrix - не рекомендуется: устанавливает матрицу текста
pdf_set_text_pos - устанавливает позицию текста
pdf_set_text_rendering - не рекомендуется: определяет отображение текста
pdf_set_text_rise - не рекомендуется: устанавливает возвышение текста
pdf_set_value - устанавливает некоторое числовое значение
pdf_set_word_spacing - не рекомендуется: устанавливает расстояние/spacing между словами
pdf_setcolor - устанавливает цвет заполнения и подчёркивания
pdf_setdash - устанавливает патэрн пунктира
pdf_setflat - устанавливает плоскость/flatness
pdf_setfont - устанавливает текущий шрифт
pdf_setgray_fill - устанавливает цвет заполнения - значение gray
pdf_setgray_stroke - устанавливает цвет рисования - значение gray
pdf_setgray - устанавливает цвета рисования и заполнения - значение gray
pdf_setlinecap - устанавливает параметр linecap
pdf_setlinejoin - устанавливает параметр linejoin
pdf_setlinewidth - устанавливает ширину линии
pdf_setmatrix - устанавливает текущую матрицу трансформации
pdf_setmiterlimit - устанавливает miter limit/границу наклона
pdf_setpolydash - устанавливает сложный пунктирный патэрн
pdf_setrgbcolor_fill - устанавливает цвет заполнения - rgb-значение
pdf_setrgbcolor_stroke - устанавливает цвет рисования - rgb-значение
pdf_setrgbcolor - устанавливает цвета рисования и заполнения - rgb-значение
pdf_show_boxed - выводит текст в боксе
pdf_show_xy - выводит текст в данной позиции
pdf_show - выводит текст в текущей позиции
pdf_skew - наклоняет систему координат
pdf_stringwidth - возвращает ширину текста с использованием текущего шрифта
pdf_stroke - рисует линию вдоль пути
pdf_translate - устанавливает точку отсчёта системы координат
 
 
 Функции по алфавиту 
   Содержание   
 Функции по категориям 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS