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: Ω");
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");