Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
- Учебник по PHP (2004).pdf
Скачиваний:
132
Добавлен:
12.04.2015
Размер:
2 Мб
Скачать
☆

tightness — промежутки между символами по отношении) к нормальному (может быть отрицательным);

angle — угол наклона строки в градусах.

Значения space и tightness измеряются в долях пробела (1/1000). Аргументы space, tightness, angle не обязательны.

Результаты расчета недостаточно точны. Функция возвращает массив:

•0 - нижний левый угол, Х-координата;

•1 - нижний левый угол, Y-координата;

•2 - верхний правый угол, Х-координата;

•3 - верхний правый угол, Y- координата.

Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

imagePSText

Вывод текста поверх рисунка шрифтом PostScript Type 1.

Синтаксис :

array imagePSText ( resource image, string text, int font, int size, int foreground, int background, int x, int y [, int space [, int tightness [, float angle [, int antialias_steps]]]])

Параметр size задает размер шрифта.

Координаты x, у указывают левый нижний угол первого символа. Аргументами foreground и background задаются цвета текста и фона (фон необходим только для сглаживания шрифта).

Аргумент antialias_steps позволяет указать число цветов, используемых при сглаживании текста (допустимые значения 4 и 16). Для шрифтов размером меньше 20 используйте большее значение, так как это улучшает читабельность; для больших шрифтов используйте меньшее значение, так как это увеличивает быстродействие.

Параметр angle задает наклон текста в градусах. Функция возвращает массив, подобно imagepsbbox().

Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

PDF-документы : Введение

PDF-функции позволяют PHP создавать PDF-файлы с помощью библиотеки PDF,

созданной Томасом Мерзем (http://www.pdflib.com/pdflib/index.html); также могут потребоваться библиотеки JPEG (ftp://ftp.uu.net/graphics/jpeg/) и TIFF (http://www.libtiff.org/).

С pdflib поставляется хорошая документация, описывающая возможности библиотеки. Имена функций и аргументы идентичны в библиотеке и PHP. Размеры и координаты измеряются в единицах Postscript (72 на дюйм), но это зависит от выбранного разрешения.

Аналогом библиотеки является ClibPDF.

Версии ниже 3.0 pdflib не поддерживается в PHP 4.

<?php

$fp = fopen("test.pdf". "w"); $pdf = pdf_open($fp);

pdf_set_info($pdf, "Author", "Uwe Streinmann"); pdf_set_info($pdf, "Title", "Test for PHP PDFlib"); pdf_set_info($pdf, "Creator", "See Author"); pdf_set_info($pdf, "Subject", "Testing"); pdf_begin_page($pdf, 595, 842); pdf_add_outline($pdf, "Page 1"); pdf_set_font("$pdf, "Times-Roman", 30, "host"); pdf_set_value($pdf, "textrendering", 1); pdf_show_xy($pdf, "Times Roman outlined", 50, 750); pdf_moveto($pdf, 50, 740);

pdf_lineto($pdf, 330, 740); pdf_stroke($pdf); pdf_end_page($pdf); pdf_close($pdf); fclose($fp);

echo "<A href=getpdf.php>finished</A>"; ?>

<?php

// Сценарий getpdf.php просто возвращает документ pdf $fp = fopen("test.pdf", "r");

header("Content-type: application/pdf"); fpassthru($fp);

fclose($fp); ?>

PDF-документы : Открытие документа

pdf_set_info

Заполнение поля информации документа.

Синтаксис :

void pdf_set_info(int pdf_document, string fieldname, string value)

Возможные поля fieldname:

•Subject

•Title

•Creator

•Author

•Keywords

•Одно, определяемое пользователем.

Функция должна вызываться до создания страниц.

<?php

$fd = fopen("test.pdf", "w"); $pdfdoc = pdf_open($fd);

pdf_set_info($pdfdoc, "Author", "Имя автора"); pdf_set_info($pdfdoc, "Creator", "Название создателя"); pdf_set_info($pdfdoc, "Title", "Заголовок"); pdf_set_info($pdfdoc, "Subject", "Тема"); pdf_set_info($pdfdoc, "Kewwords", "Ключевые, слова"); pdf_set_info($pdfdoc, "CustomField", "Чтото еще"); pdf_begin_page($pdfdoc, 595, 842); pdf_end_page($pdfdoc);

pdf_close($pdfdoc); ?>

Эта функция заменяет собой pdf_set_info_keyword(), pdf_set_info_title(), pdf_set_info_subject(), pdf_set_info_creator().

pdf_open

Открытие нового документа pdf.

Синтаксис :

int pdf_open(int file)

Функция делает файл, открытый функцией fopen(), документом pdf. Если не указывать дескриптор файла, он создается в памяти и затем может выводиться на стандартный поток вывода или отсылаться броузеру. Функция возвращает дескриптор документа, который следует указывать в последующих pdf-функциях.

pdf_close

Закрытие документа pdf.

Синтаксис :

void pdf_close(int pdf_document)

pdf_begin_page

Начало новой страницы.

Синтаксис :

void pdf_begin_page(int pdf_document, double width, double height)

Аргументы height и width задают высоту и ширину страницы. После внесения на страницу информации ее следует закрыть функцией pdf_end_page().

pdf_end_page

Завершение страницы.

Синтаксис :

void pdf_end_page(int pdf_document)

После этой функции модификация этой страницы невозможна.

PDF-документы : Работа с текстом

pdf_show

Вывод текста в текущую позицию.

Синтаксис :

void pdf_show(int pdf_document, string text)

Для вывода используются текущая позиция и текущий шрифт.

pdf_show_boxed

Вывод текста в прямоугольную область.

Синтаксис :

void pdf_show_boxed(int pdf_document, string text, double x, double y, double width, double height, string mode [, string feature])

Левый нижний угол области вывода задается (x:y); высота и ширина - height,width. Аргумент mode определяет выравнивание текста: если высота и ширина равны нулю, то возможны значения:

•left

•right

•center,

если они не равны нулю, то

•justify

•fulljustify

Если аргумент feature содержит значение "blind", текст не отображается.

Функция возвращает число символов, которые не поместились в указанный прямоугольник.

pdf_show_xy

Вывод текста в указанную позицию.

Синтаксис :

void pdf_show_xy(int pdf_document, string text, double x, double y)

pdf_set_font

Выбор шрифта, его размера и кодировки.

Синтаксис :

void pdf_set_font(int pdf_document, string font_name, double size, string encoding [, int embed])

Аргумент вида кодировки encoding может принимать значения:

•winansi (по умолчанию)

•builtin

•host

•macroman и т.д.

Если для последнего аргумента задано значение 1, шрифт будет внедрен в документ pdf (иначе нет). Если шрифт распространен, внедрять его не следует из-за увеличения размера документа.

Функция должна вызываться после pdf_begin_page().

pdf_set_leading

Установка промежутка между строками текста.

Синтаксис :

void pdf_set_leading(int pdf_document, double distance)

Используется при выводе текста функцией pdf_continue_text().

pdf_set_parameter

Установка строкового значения параметра pdflib.

Синтаксис :

void pdf_set_parameter(int pdf_document, string name, string value)

pdf_get_parameter

Получение строкового значения параметра pdflib.

Синтаксис :

void pdf_get_parameter(int pdf_document, string name [, double modifier])

Аргумент modifier используется при необходимости.

pdf_set_value

Установка численного значения параметра pdflib.

Синтаксис :

void pdf_set_value(int pdf_document, string name, double value)

pdf_get_value

Получение численного значения параметра pdflib.

Синтаксис :

void pdf_get_value(int pdf_document, string name [, double modifier])

Аргумент modifier используется при необходимости.

pdf_set_text_rendering

Установка метода вывода текста.

Синтаксис :

void pdf_set_text_rendering(int pdf_document, string mode)

Устарела, используйте pdf_set_value().

pdf_set_horiz_scaling

Установка масштабирования текста по горизонтали.

Синтаксис :

void pdf_set_horiz_scaling(int pdf_document, double scale)

pdf_set_text_rise

Установка подъема текста.

Синтаксис :

void pdf_set_text_rise(int pdf_document, double rise)

pdf_set_text_matrix

Установка матрицы преобразований шрифта.

Синтаксис :

void pdf_set_text_matrix(int pdf_document, array matrix)

Начиная с версии pdflib 2.3 эта функция недоступна.

pdf_set_text_pos

Установка позиции шрифта.

Синтаксис :

void pdf_set_text_pos(int pdf_document, double x-coor, double y-coor)

Устанавливает позицию вывода текста последующим вызовом pdf_show().

pdf_set_char_spacing

Установка интервала между символами.

Синтаксис :

void pdf_set_char_spacing(int pdf_document, double space)

Устарела, используйте pdf_set_value().

pdf_set_word_spacing

Установка интервала между символами.

Синтаксис :

void pdf_set_word_spacing(int pdf_document, double space)

Устарела, используйте pdf_set_value().

pdf_skew

Поворот системы координат.

Синтаксис :

void pdf_skew(int pdf_document, double alpha, double beta)

Угол поворота в градусах указывается относительно осей alpha (x) и beta (y). Углы не могут принимать значения 90 или 270 градусов.

pdf_continue_text

Вывод текста со следующей строки.

Синтаксис :

void pdf_continue_text(int pdf_document, string text)

Расстояние между строками может быть установлено функцией pdf_set_leading().

pdf_stringwidth

Вычисление ширины текста.

Синтаксис :

void pdf_stringwidth(int pdf_document, string text)

При вычислении длины строки используется текущий шрифт. Предварительно шрифт должен быть установлен с помощью pdf_set_font().

pdf_save

Сохранение текущих установок.

Синтаксис :

void pdf_save(int pdf_document)

Действует подобно команде postscript gsave. Полезна при необходимости масштабировать или развернуть объект, не воздействуя на другие объекты. pdf_save() требует, чтобы затем была вызвана функция pdf_restore().

pdf_restore

Восстановление ранее сохраненных установок.

Синтаксис :

void pdf_restore(int pdf_document)