KnigaRead.com/

White cat - Справочник по PHP

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн white cat, "Справочник по PHP" бесплатно, без регистрации.
Перейти на страницу:

При использовании отрицательного значения индекса цвета color отключается сглаживание шрифта (antialiasing).

Данная функция требует библиотеке GD и FreeType.

<?php

header("Content-type: image/jpeg");

$im = imagecreate(400, 30);

$white = imagecolorallocate($im, 255, 255, 255);

$black = imagecolorallocate($im, 0, 0, 0);

// Replace path by your own font path

imagettftext($im, 20, 0, 10, 20, $black, "/path/arial.ttf",

"Testing... Omega: &#937;");

imagejpeg($im);

imagedestroy($im);

?>

Следующий пример выводит строку по центру рисунка

<?php

$gi = imageCreate(200,100);

$bg = imageColorAllocate($gi,0,220,0);

$tx = imageColorAllocate($gi,25,2,228);

$w = imageSX($gi); // ширина рисунка

$h = imageSY($gi); // высота рисунка

imageFilledRectangle($gi,0,0,$w,$h,$bg);


$szf = 20; // размер шрифта

$ang = 240; // угол поворота строки

$str = "Heyou"; // текст строки

$font = "symbol.ttf" // файл шрифта

$sz = imageTTFBBox($szf,$ang,$font,$str);

$sdx = $sz[4]/2;

$sdy = ($sz[7]+$sz[3])/2;

imageTTFText($gi,$szf,$ang,$w/2-$sdx,$h/2-$sdy,$tx,$font,$str);

Header("Content-Type: image/png");

imagePng($gi,"file.png");

?>


imageTTFBBox


Расчет площади, занимаемой строкой шрифта TrueType.

Синтаксис:

array imageTTFBBox(int size, int angle, string fontfile, string text)

Эта функция ничего не выводит в изображение, а просто определяет, какой размер и положение заняла бы строка текста text размера size, выведенная под углом angle в какой-нибудь рисунок. Параметр fontfile задает абсолютный путь к файлу шрифта, который будет использован при выводе.

Возвращаемый список содержит всю информацию о размерах строки в формате, похожем на тот, что выдает функция imageTTFText(). Однако порядок точек в нем отличается.

Содержимое массива, возвращаемого функцией imageTTFBBox():

Координаты могут иметь отрицательные значения.

Функция требует библиотеки GD и FreeType.


imagePSLoadFont


Загрузка из файла шрифта PostScript Type 1.

Синтаксис:

int imagePSLoadFont(string filename)

Возвращает дескриптор загруженного шрифта или FALSE при ошибке (также выводится предупреждение).

<?php

header("Content-type: image/jpeg");

$im = imagecreate(350, 45);

$black = imagecolorallocate($im, 0, 0, 0);

$white = imagecolorallocate($im, 255, 255, 255);

$font = imagepsloadfont("bchbi.pfb"); // or locate your .pfb files on your machine

imagepstext($im, "Testing... It worked!", $font, 32, $white, $black, 32, 32);

imagepsfreefont($font);

imagejpeg($im, "", 100); //for best quality...your mileage may vary

imagedestroy($im);

?>

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


imagePSFreeFont


Выгрузка шрифта PostScript Type 1.

Синтаксис:

void imagePSFreeFont(int fontindex)

Данная функция освобождает память от шрифта, заданного параметром fontindex.

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


imagePSEncodeFont


Установка схемы перекодировки текста.

Синтаксис:

int imagePSEncodeFont(int font_ndex, string encodingfile)

Загружает файл перекодировки encodingfile для шрифта font_index. Поскольку шрифты PostScript по умолчанию не используют символы с кодами, большими 127, перекодировка требуется при необходимости использования не английского языка. Формат файла описан в документации Tllibs, также с библиотекой поставляются 2 готовых файла: IsoLatinl.enc и IsoL.atin2.enc.

Если перекодировка используется постоянно, установите параметр ps.default_encoding в файле конфигурации со значением имени файла перекодировки, который будет загружаться автоматически.

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


imagePsExtendFont


Масштабирование шрифта.

Синтаксис:

bool imagePsExtendFont (int font_index, float extend)

Функция производит растяжение или сжатие шрифта, заданного параметром font_index до размера, заданного параметром extend.

Если значение параметра extend меньше 1, то шрифт будет уменьшаться.

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


imagePsSlantFont


Установка наклона шрифта.

Синтаксис:

bool imagePsSlantFont(int font_index, double slant)

Функция устанавливает наклон шрифта font_index в значение, заданное параметром slant.

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


imagePSBBox


Расчет площади, занимаемой строкой шрифта PostScript Type 1.

Синтаксис:

array imagePSBBox( string text, int font, int size [, int space [, int tightness [, float angle]]])

Расчеты производятся на основании аргументов:

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

Аргументы space, tightness, angle не обязательны.

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

Эта функция доступна только в том случае, если 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, созданной Томасом Мерзем; также могут потребоваться библиотеки JPEG и TIFF.

С 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-функции позволяют PHP создавать PDF-файлы с помощью библиотеки PDF, созданной Томасом Мерзем; также могут потребоваться библиотеки JPEG и TIFF.

С 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");

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*