Графика, Flash, pdf

 

Графика, Flash, pdf

РНР дозволяет выводить не только HTML-текст, но и создавать (и отсылать браузеру) графические данные в разных форматах (gif, png, jpg, wbmp, xpm). Для того дабы РНР мог трудиться с графикой, требуется библиотека GD. Возможно, также понадобятся добавочные библиотеки для поддержки особенных форматов. Начиная с версии 1.6, GD не поддерживает работу с форматом GIF; взамен него применяется формат png.

Библиотека GD library доступна по адресу http://www.boutell.com/gd/.

Для работы с рисунками jpeg применяется библиотека jpeg-6b (ftp:// ftp.uu.net/graphics/jpeg/), которую следует прикомпилировать с Gd, применяя параметр компиляции РНР -with-jpeg-dir=/path/to/jpeg-6b. Для поддержки шрифтов Туре 1, применяя параметр —with-tllib[=dir] установите tllib (ftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/ tllib/).

Дальнейший пример (сценарий button.php) вызывается со страницы тегом вида <img src="button.php?text"> (в данном случае на рисунке images/buttonl.png будет выведена надпись «text» и после этого данный рисунок будет отослан браузеру). Это больше комфортный метод, использующий готовый макет рисунка, не требующий его перерисовки с начала, но добавляющий в него добавочные элементы.

<?prip // файл button.php
Headert"Content-type: image/png");
$stnng=implode($argv." "):
$1m = imageCreateFromPngC'images/buttonl.png"):
Sorange = ImageColorAllocate($1m. 220. 210. 60);
$px = (imagesx($im)-7.5*strlen($string))/2;
ImageStri ng($1m.3.$px.9.$stri ng.Sorange):
ImagePng($im); ImageDestroy($im); ?>

ImageTypes

Определение графических форматов, поддерживаемых РНР

int imagetypes(void);

Возвращает битовую маску графических форматов, поддерживаемых применяемой библиотекой GD: IMG_GIF | IMG_JPG IMG_PNG | IMG_WBMP.

<?php if (ImageTypesO & IMG_PNG)
{ echo "формат PNG поддерживается". } ?>

ImageCreate

Создание рисунка

int imagecreate (int x_s1ze, int y_size)

Возвращает дескриптор сделанной картинки размером x_size на y_size.

<?php header ("Content-type: image/png").
$ni = @ImageCreate (50. 100) or die
("Невозможно сотворить GD image ");
Sbackground_color -- ImageColorAllocate
(Sim. 255. 255. 255): $text_co1or = ImageColorAllocate
(Sim. 233. 14. 91): ImageStnng
($im, 1. 5. 5. "A Simple Text String". $text_color)
ImagePrg ($im): // передать рисунок браузеру ?>

ImageCreateFromGIF

Создание рисунка из файла GIF

Int imagecreatefromgif (string filename)

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

function LoadGif (Simgname) {
Sin1 @ImdgeCreateFromGIF ($imgname):
/* Attempt to open */ if (!$im) { /* See if it failed */
$im = ImageCreate (150. 30);
/* Create a blank image */ Sbgc =
ImageColorAl locate ($im. 255. 255. 255);
$tc = ImageColorAllocate ($im. 0. 0. 0):
ImageFilledRectangle (Sim. 0. 0. 150. 30, Sbgc);
ImageStnng($im. 1. 5. 5. "Error loading Simgname". Stc): }
return Sim. }

Потому что GD, начиная с версии 1.6, не поддерживает GIF, функция недостижима для этих версий.

ImageCreateFromJPEG

Создание рисунка из файла JPEG

int imagecreatefromjpeg (string filename)

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

ImageCreateFromPNG

Создание рисунка из файла PNG

int imagecreatefrompng (string filename)

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

GetlmageSize

Приобретение свойств рисунка GIF, JPEG, PNG, SWF

array getimagesize (string filename [, array imageinfo])

Возвращает массив, содержащий информацию о графическом файле (4 элемента): [0] и [1] — ширина и высота рисунка в пикселах, [2] — тип файла (1 = GIF, 2 - JPG, 3 - PNG, 4 = SWF), [3] - строка вида «height=xxx width=xxx», которая может применяться непринужденно в HTML-теге IMG.

<?php $size = GetlmageSize ("img/flag.jpg"): ?>
<IMG SRC="img/flag.jpg" <7php echo $size[3]. ?>

Указав добровольный массив imageinfo, в нем дозволено сберечь дополнительную информацию о файле, скажем разные маркеры JPG APP (внедренную информацию). Зачастую в маркер АРР13 заносят информацию IPTC http://www.iptc.org/. Функция iptcparse() разрешает конвертировать эти данные АРР13 в читаемый вид.

<?php Ssize = GetlmageSize ("testimg.jpg".&$info):
if (isset ($info["APP13"])) {
Siptc = iptcparse ($info["APP13"]):
var_dump (Siptc): ; } ?>

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

read_exif_data

Чтение заголовков EXIF из файла JPEG

array read_exif_data (string filename)

Возвращает ассоциативный массив, в котором индексами являются имена заголовков Exif. Заголовки Exif обыкновенно хранят информацию цифровых камер (в разном виде).

<?php Sexif = read_exif_data Cp0001807.jpg');
while(list($k.$v)=each($exif))
{ echo "$k: $v<br>\n"; } ?> Output
FileName: p0001807.jpg
FileDateTime: 929353056 FileSize 378599
CameraMake: Eastman Kodak Company
CameraModel: KODAK DC265
ZOOM DIGITAL CAMERA (V01.00)
DateTime: 1999:06:14 01-37:36
Height: 1024 Width: 1536 IsCoIor: 1
FlashUsed 0 Focal Length: 8.0mm
RawFocalLength: 8 ExposureTime: 0.004 s
(1/250) RawExposureTime.
0.0040000001899898
ApertureFNumber: f/ 9.5
RawApertureFNumber:
9.5100002288818
FocusDi stance: 16.66m
RawFocusOistance: 16.659999847412
Orientation: 1 ExifVersiori: 0200

Функция доступна, только если PHP 4 компилировался с параметром --enable-exif. Библиотека GD не требуется.

ImageSX

Определение ширины рисунка

int imagesx (int lm)

См. также: ImageCreate() и ImageSY().

ImageSY

Определение высоты рисунка

int imagesy (int im)

См. также: ImageCreate() и ImageSX().

Imagelnterlace

Установка чересстрочности

int imageinterlace (int im [, int interlace])

Если interlace = 1, то это делает рисунок отображаемым чересстрочно, если 0 — ступенчато. Возвращается нынешняя установка чересстрочности.

ImageGIF

Отсылка рисунка GIF браузеру либо сохранение его в файле int imagegif (int im [, string filename])

Cos/част файл формата GIF из рисунка im. После этого файл сохраняется под именем filename, либо, если имя не указано, содержимое файла передается непринужденно браузеру (не забывайте заранее отослать браузеру заголовок, уведомляющий, что передается графический файл). Файл имеет формат GIF87a, а если он был сделан прозрачным функцией ImageColorTransparent(), то формат будет GIF89a.

Потому что GD, начиная с версии 1.6, не поддерживает GIF, функция недостижима для этих версий.

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

<?php if (function_exists("imagegif"))
{ Header("Content-type: image/gif"): ImageGif(Sim): }
elseif (function_exists("imagejpeg")) {
Header("Content-type: image/jpeg").
ImageJpeg($lm. "". 0 5): }
elseif (function_exists("imagepng")) (
Header("Content-type: image/png"):
ImagePng($im). } else
dieC'No image support in this PHP server"): ?>

Используйте функцию imagetypes() взамен function_exists() для проверки поддержки разных форматов:

if (ImageTypes()& IMG_GIF) {
Header("Content-type: image/gif"): ImageGif(Jim): }
elseif (ImageTypesO & IMG_JPG) { ... etc.

См. также: ImagePng(), ImageJpeg(), ImageTypes().

ImagePNG

Отсылка рисунка PNG браузеру либо сохранение его в файле int imagepng (int im [, string filename])

Выводит GD рисунок im в формате PNG на типовой поток итога (традиционно браузер), либо если указано имя файла filename, то в данный файл.

<?php $im = ImageCreateFromPngC'test.png").
ImagePng($im). ?>

См. также: ImageGif(), ImageJpeg(), ImageTypes().

ImageJPEG

Отсылка рисунка JPEG браузеру либо сохранение его в файле

int imagejpeg (int im [, string filename [, int quality]])

Выводит рисунок im в формате JPEG на типовой поток итога (обыкновенно браузер), либо если указано имя файла filename, то сберегает в данный файл. Доводом quality дозволено указать качество изображения (обратно пропорционально размеру файла) от 0 до 100.

Imagejpeg($im.'' .20);// вывести рисунок

Помощь JPEG была добавлена в GD 1.8 и больше поздние версии.

См. также: ImagePng(), ImageGif(), ImageTypes().

ImageDestroy

Истребление рисунка

int imagedestroy (int im)

ImageCopy

Копирование части рисунка

int ImageCopy (int dst_im, int src_im, int dst_x, int dst_y, ] int src_x, int src_y, int src_w, int src_h)

Копирует прямоугольную область src_x, src_y, src_w (ширина), src_h / (высота) рисунка src_im в рисунок dst_im со смещением dst_x, dst_y.

ImageCopyResized

Копирование части рисунка с масштабированием

int imagecopyresized (int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

Функция подобна ImageCopy(), но область рисунка масштабируется, так что его ширина и высота становятся равными dstW и dstH.

Цвета и палитра

ImageColorAllocate

Выделение цвета для рисунка

int imagecoloral locate (int im, int red, int green, int blue)

Возвращает индекс добавленного в палитру цвета, составленного из компонентов red (алый), green (зеленый), blue (синий).

Swhite = ImageColorAllocate ($im. 255. 255. 255);
// белый Sblack = ImageColorAl locate ($irp. 0. 0. 0).
// черный

ImageColorDeAllocate

Исключение цвета из палитры рисунка

int imagecolordeal locate (int im, int index)

$white - ImageColorAllocate($im. 255, 255. 255);
ImageColorDeAl locate($im. $white);

ImageColorSet

Замена цвета определенного элемента палитры

boo! imagecolorset (int im, int index, int red, int green, int blue)

Устанавливает для элемента палитры index рисунка im значения компонент цвета: red (алый), green (зеленый), blue (синий). При этом все части рисунка, закрашенные данным цветом, также изменят свой оттенок.

См. также imagecolorat().

ImageColorsForlndex

Приобретение цвета элемента палитры

array imagecolorsforindex (int im, int index)

Возвращает ассоциативный массив 3 элементов: red, green, blue, содержащий значение компонентов цветности указанного цвета index.

См. также: imagecolorat() и imagecolorexact().

ImageColorExact

Приобретение индекса цвета палитры

int imagecolorexact (int im, int red, int green, int blue)

Если верно соответствующего цвета в палитре не имеется, то возвращается -1.

См. также imagecolorclosest().

ImageColorClosest

Приобретение цвета палитры, особенно близкого к указанному

int imagecolorclosest (int im, int red, int green, int blue)

Возвращает индекс цвета палитры рисунка. Близость вычисляется согласно RGB.

См. также imagecolorexact().

ImageColorResolve

Нахождение либо создание указанного цвета

int imagecolorresolve (int im, Int red, int green, Int blue)

Возвращает индекс указанного цвета в палитре. Если такой цвет отсутствует, он создается.

См. также imagecolorclosest().

ImageGammaCorrect

Использование гамма-коррекции рисунка

Int Imagegammacorrect (int im, double inputgamma, double outputgamma)

ImageColorsTotal

Приобретение числа цветов в палитре

int imagecolorstotal (int im)

См. также: imagecolorat() и imagecolorsforindex().

ImageColorTransparent

Определение цвета прозрачности

int imagecolortransparent (int im [, int col])

Устанавливает (возвращает) индекс цвета палитры, используемого как прозрачный. Возвращает индекс нынешнего (либо установленного) «прозрачного» цвета.

ImageColorAt

Приобретение индекса цвета пиксела

int imagecolorat (int im, int x, int y)

См. также: imagecolorset() и imagecolorsforindex().

Черчение фигур

ImageSetPixel

Установка пиксела

int imagesetpixel (int im, int x, int y, int color) Верхний левый угол рисунка имеет координаты (О, О).

См. также: ImageCreate() и ImageColorAllocate().

ImageLine

Черчение линии

int imageline (int im, int xl, int yl, int x2, int y2, int color)

ImageDashedLine

Черчение прерывистой линии

int imagedashedline (Int im, int xl, int yl, int x2, int y2, int col)

См. также ImageLine().

ImageRectangle

Черчение прямоугольника

int imagerectangle (Int im, int xl, int yl, int x2, int y2, int col) Левый верхний угол задается (xl, yl), а правый нижний — (x2, y2).

ImageFilledRectangle

Зарисовка прямоугольной области

int imagefilledrectangle (int im, int xl, int yl, int x2, int y2, int col)

ImagePolygon

Черчение многоугольника

int imagepolygon (int im, array points, int numjreints, int col)

Довод points содержит координаты углов в виде: points[0] = xO, points[l] = yO, points[2] = xl, points[3] = yl и.т. д. num_points задает число углов.

См. также imagecreate().

ImageFilledPolygon

Закраска многоугольника

int imagefilledpolygon (int im, array points, int num_points, int col)

ImageArc

Рисование части эллипса

int imagearc (int im, int ex, int cy, int w, int h, int s, int e, int col)

ex, су задают центр эллипса, w и h — ширину и высоту, s и е — первоначальный и финальный угол в градусах, со! — цвет.

ImageFill

Заливка цветом ограниченной области

int imagefill (int im, int x, "int y, int col)

ImageFillToBorder

Заливка области, ограниченной бордюром

int imagefilltoborder (int im, int x, int y, int border, int col)

Индекс цвета окантовки задается доводом border, а заливки — col. Заливка начинается от точки с координатами (х,у).

Шрифты и надписи

. ImageLoadFont

Загрузка шрифта

int image!oadfont (string file)

Загружает шрифт из файла file и возвращает определенный ему идентификатор. Встроенные шрифты имеют идентификаторы 1-5 (меньший-больший). Формат файла зависит от системы. В всеобщем случае он имеет следующую конструкцию:

Байты

Тип

Описание

0-3

int

Число символов в файле

4-7

int

Код первого символа (традиционно 32 — пробел)

8-11

int

Ширина символов в пикселах

12-15

int

Высота

16-...

int

Массив ланных символов (байт на пиксел для всякого символа). Всеобщий размер: (псЬаг5хвысотахширипа) байт.

См. также: ImageForitWidth() и ImageFontHeight().

ImageFontHeight

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

int imagefontheight (int font)

См. также: ImageFontWidth() и ImageLoadFont().

ImageFontWidth

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

int imagefontwidth (int font)

См. также: ImageFontHeight() и ImageLoadFont().

ImageChar

Итог символа горизонтально

int imagechar (int im, int font, int x, int y, string c. int col) Шрифт указывается его номером font (1-5 — встроенные шрифты).

См. также imageloadfont().

ImageCharUp

Итог символа вертикально

int imagecharup (int im, int font, int x, int y, string c, int col)

См. также image!oadfont().

ImageString

Итог строки горизонтально

int imagestring (int im, int font, int x, int y, string s, int col)

См. также ImageLoadFont().

ImageStringUp

Итог строки вертикально

int imagestringup (int im, int font, int x, int y. string s. int col)

См. также ImageLoadFont().

ImageTTFBBox

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

array imagettfbbox (int size, int angle, string fontfile, string text) Доводы, от которых зависит итог функции:

  • text — строка текста;
  • size — размер шрифта в пикселах;
  • Fontfile — имя файла, содержащего шрифт TrueType (дозволено указать URL); ,
  • angl e — угол наклона текста.

Возвращает массив из 8 элементов, определяющих прямоугольник итога текста:

  1. нижний левый угол, Х-координата;
  2. нижний левый угол, Y-координата;
  3. нижний правый угол, Х-координата;
  4. нижний правый угол, Y-координата;
  5. верхний правый угол, Х-координата;
  6. верхний правый угол, Y-координата;
  7. верхний левый угол, Х-координата;
  8. верхний левый угол, Y-координата.

Возвращаемые координаты зависят от угла наклона строки (точкой отсчета служит нижний левый угол первого символа). Координаты могут иметь негативные значения. Функция требует библиотеки GD и FreeType

См. также ImageTTFText().

ImageTTFText

Рисование текста шрифтом TrueType

array imagettftext (int im, int size, int angle, int x, int y, int col, string fontfile, string text)

Выводит строку text в рисунок im - в координаты х, у (верхний левый угол является началом координат), под углом angle (задается в градусах) цветом col, применяя шрифт TrueType из файла fontfile. Доводами х, у задастся базовая точка первого символа (нижний левьн"! угол символа), что отличает данную функцию от ImageString(), где координаты х, у определяют верхний правый угол символа. Строка текста может включать символьные последовательности UTF-8 (в виде &#123;) для итога символов с кодами, крупными 255.

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

Возвращает массив из 8 элементов, определяющих прямоугольник итога текста аналогично функции imagettfbbox(). Функция требует библиотеки GD и FreeType.

<?php Header ("Content-type: image/gif").
$im = imagecreate (400. 30).
Sblack = ImageColorAllocate ($im. 0 0. 0);
$white = ImageColorAl locate ($im. 255. 255. 255);
ImageTTFText ($щ. 20. 0. 10. 20.
Swhite. "/path/anal .ttf", "Testing Omega: &#937;"):
ImageGif (Sin). ImageDestroy (Sim); ?>

Дальнейший пример выводит строку по центру рисунка:

<?
$gi = ImageCreate(200.100):
$bg = ImageColorAllocate($gi.0.220.0);
$tx = ImageColorAllocate($gi.25.2.228).
$w=imagesx(Igi): // ширина рисунка
$h=imagesy($9i): // высота
ImageFilledRectang]6($gl.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."n2.png"); ?>

См. также ImageTTFBBox().

ImagePSLoadFont

Загрузка из файла шрифта PostScript Type 1 int imagepsloadfont (string filename)

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

См. также ImagePSFreeFont().

ImagePSFreeFont

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

void imagepsfreefont (int fontindex)

См. также ImagePSLoadFont().

ImagePSEncodeFont

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

int imagepsencodefont (int fontjindex, string encodingfile)

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

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

ImagePsExtendFont

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

bool imagepsextendfont (int fontjindex. double extend)

ImagePsSlantFont

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

bool imagepsslantfont (int font_index, double slant)

ImagePSBBox

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

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

Расчеты производятся на основании доводов: Size — размер шрифта в пикселах; Space — метаморфоза размера пробелов по отношению к типичному (может быть негативным); Tightness — интервалы между символами по отношению к типичному (может быть негативным); Angle — угол наклона строки в градусах. Значения space п tightness измеряются в долях пробела (1/1000).

Доводы space, tightness, angle не непременны.

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

  • 0 — нижний левый угол, Х-координата;
  • 1 — нижний левый угол, У-координата;
  • 2 — верхний правый угол, Х-координата;
  • 3 — верхний правый угол, Y-координата.

См. также imagepstext().

ImagePSText

Итог текста поверх рисунка шрифтом PostScript Type 1

array imagepstext (int image, string text, int font, int size, int foreground, int background, int x, int у [, int space [, int tightness [, float angle [, int antialias_steps>)

Координаты х, у указывают левый нижний угол первого символа.

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

Функция возвращает массив, аналогично imagepsbbox().

См. также imagepsbbox().

Shockwave Flash

PHP разрешает создавать файлы Shockwave Flash посредством библиотеки (сделанной Paul Haeberli) Libswf, которую дозволено загрузить с http://reality.sgi.com/grafica/flash/. Прикомпилировать libswf к РНР дозволено параметром --w1th-swf[=OIR], где DIR — место размещения каталогов include (содержит файл swf.h) и lib (содержит файл libswf.a).

Дальнейший пример показывает создание Flash-анимации:

<?php swf_openfile ("test.swf". 256. 256. 30. 1, 1. 1
. swf_ortho2 (-100. 100. -100. 100): swfjJefinelme
(1. -70. 0. 70. 0. .2). swfjiefinerect (4. 60. -10. 70. 0. 0).
swfjtefinerect (5. -60. 0. -70. 10. 0):
sv,f_addcolor (0. 0. 0. 0):
swfjjefinefont (10. "Mod"): swf_fontsize (5):
swfjfontslant (10).
swf_definetext (11. "This be Flash wit PHP!". 1):
swf_pushmatnx (): swf_translate
(-50. 80. 0). swf_placeobject (11. 60). swf_popmatrix ():
for ($1 0; $1 < 30: $i++) { p $p = $i/(30-l):
svrf_pushmatnx (): m
swf_scale (l-($p*.9). 1. 1). 1
swf_rotate (60*$p. 'z'):
swf_translate (20+20*$p. Sp/1 5. 0):
swf_rotate (270*$p. 'i );
swf_addcolor ($p. 0. $p/l,2. -$p);
swf_placeobject (1. 50);
swf_placeobject (4. 50).
swf_p1aceobject (5. 50).
swfjpopmatnx (): swf_showframe (): }
for ($1 = 0: $1 < 30: $т++)
{ swfj-emoveobject (50): if {($i*4) == 0) { swf_showframe (): } }
swf_startdoactiof():
swf_actionstop (): swf_enddoaction():
swf_closeflle() ?>

Просмотреть итог исполнения сценария дозволено но адресу:
http:// www.designmultimedia.com/swfphp/test.swf.

libswf не поддерживается Windows. Разработка библиотеки была прервана, а начальные коды недостижимы.

swf_openfile

Открытие нового файла Shockwave Flash

void swf_openfile (string filename, float width, float height, float framerate, float r, float g, float b)

Создает файл filename с анимацией (шириной width, высотой height, частотой кадров framerate и цветом фона R.G.B).

Данная функция должна вызываться первой, напротив в сценарии возникнет оплошность «segfault». Если нужно непринужденно отсылать файл браузеру, дозволено задать его имя как php://stdout.

swf_closefile

Закрытие нынешнего файла Shockwave Flash

void swf_cl osef "Л е ([int return_file])

Закрывает файл, открытый функцией swf_openfile(). При установке довода return_file функция возвращает содержимое SWF-файла.

// создает flash й'айл: выводит его и сберегает в БД <?php
// Stext - довод сценария
// Параметры БД (для swf_savedata()) SDBHOST
"localhcst": SOBUSER = "иьег"; $DBPASS "secret1.
swf_openfile ("php //stdout". 256. 256. 30. 1. 1, i):
swf_def,nefont (10. "Ligon-Bold"): swfjon'size (12):
swf_fon.blant (10)
swf_definetext (11. $text. 1):
swf_pushmatnx ():
swf_translate (-50. 80. 0)
swf_placeobject (11. 60). swf_popmatnx ();
swf_showframe ():
swf_startdoaction (). swf_actiOPStop ():
swf_enddoaction ():
Sdata = swf_closefile (1):
Sdata ?swf_savedata (Sdata) :
die ("Немыслимо сберечь SWF файл"):
// сберечь файл в БД function swf_savedata ($data) {
global SD6HOST. SDBUSER. SDBPASS:
Sdbh = (amysql_connect
(SDBHOST. SDBUSER. SDBPASS):
if (!$dbh) { die (spnntf ("Error [Id]: us".
mysql_errno (). mysql_error(): }
Sstmt = "INSERT INTO swf_files
(file) VALUES f'$data')":
$sth - @mysql_query (Sstmt. Sdbh): if (!Ssth) {
die (sorintf ("Error [ВД: *s".
mysql_errno (). mysql_error ())); }
?mysql_free_result (Ssth);
(amysql_clo^e (Sdbh). } >

swf_labelframe

Пометка нынешнего кадра

void swf_labelframe (string name)

swf_showframe

Отображение нынешнего кадра

void swf_showframe (void);

swf_setframe

Переключение кадра

void swf_setframe (int framenumber)

swf_getframe

Приобретение номера нынешнего кадра

int swf_getframe (void);

swf_mulcolor

Установка множителя цвета RGBA

void swfjnul col or (float r, float g, float b, float a)

Функция устанавливает значения (они могут быть позитивными либо негативными), на которые будут умножаться цвета выводимых объектов. Данный цвет после этого (неявно) применяется функциями swf_placeobject(), swfjnodifyobject() и swf_addbuttonrecord().

swf_addcolor

Установка слагаемого цвета RGBA

void swf_addco1or (float г, float g, float b, float a)

Функция устанавливает значения (они могут быть правильными либо негативными), которые будут добавляться к цвету выводимых объектов. Данный цвет после этого (неявно) применяется функциями swf_placeobject(), swfjnodifyobject() и swf_addbuttonrecord().

swf_placeobject

Размещение объекта в нынешнем кадре

void swf_placeobject (int objid, int depth)

Размещает объект objid на ярусе depth. Доводы могут иметь значения от 1 до 65 535. При этом применяются нынешние: множитель и слагаемое цвета (swfjnulcolor() и swf_addcolor()) и матрица позиционирования объекта.

Всецело поддерживаются цвета RGBA.

swf_modifyobject

Метаморфоза объекта

void swfjnodifyobject (int depth, int how)

Изменяет объект, расположенный на ярусе depth, согласно доводу how: если он имеет значение MOD_MATRIX, то изменяется расположение объекта; если MOD_COLOR, то изменяется цвет. Эти константы дозволено комбинировать (MOD_MATR1X|MOD_COLOR).

MOD_COLOR использует нынешние множитель и слагаемое цвета (swf_ mulcolor() и swf_addcolor()), a MOD_MATRIX — матрицу позиционирования объекта.

swf_removeobject

Удаление объекта

void swf_removeobject (int depth)

Удаляет объект, расположенный на ярусе depth.

swf_nextid

Приобретение идентификатора дальнейшего свободного объекта

int swfjiextid (void);

swf_startdoaction

Предисловие изложения списка действий нынешнего кадра

void swf_startdoaction (void);

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

swf_actiongotoframe

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

void swf_actiongotoframe (int framenumber)

swf_actiongeturl

Приобретение URL анимации Shockwave Flash

void swf_actiongetur1 (string url, string target)

swf_actionnextframe

Перемещение вперед на один кадр

void swf_actionnextframe (void);

swf_actionprevframe

Перемещение назад на один кадр

void swf_actionprevframe (void);

swf_actionplay

Предисловие проигрывания анимации с нынешнего кадра

void swf_actionplay (void)

swf_actionstop

Остановка flash-анимации нынешнего кадра

void swf_actionstop (void);

swf_actiontogglequality

Переключение между высоким/низким качеством

void swf_actiontogglequality (void);

swf_actionwaitforframe

Пропуск действия, если кадр не был загружен

void swf_actionwaitforframe (int framenumber, int skipcount)

Функция проверяет видимость кадра framenumber и, если он не был загружен, пропускает указанное число действий skipcount. Благотворно для анимаций типа "Loading...".

swf_actionsettarget

Установка контекста всех действий

void swf actionsettarget (string target)

Применяется для управления другими flash-анимациями, проигрываемыми в нынешний: момент.

swf_actiongotolabel

Отображение кадра с указанной меткой

void swf_actiongotolabel (string label)

Позже отображения проигрывание останавливается.

swf_enddoaction

Заключение нынешнего действия I void swf_enddoaction (void). Завершает нынешнее действие, начатое функцией swf_startdoaction().

swf_defineline

Создание линии

void swf_defineline (int objid, float xl, float yl, float x2, float y2. float width)

Рисует линию ((xl, yl) - (x2, y2)) шириной width.

swf_definerect

Создание прямоугольника

void swf_definerect (int objid, float xl. float yl, float x2, "float y2, float width)

Верхний левый угол задается (xl, yl), левый нижний (х2, у2). Ширина задается width (если она равна 0.0, прямоугольник будет закрашен).

swf_definepoly

Создание многоугольника

void swfjdefinepoly (int objid, array coords, int npoints, float width)

Углы задаются координатами (х, у) в массиве coords. Число углов — npoints. Ширина задастся width (если она равна 0.0, многоугольник будет закрашен).

swf_startshape

Предисловие создания трудной фигуры

void swf_startshape (int objid)

swf_shapelinesolid

Установка нынешнего жанра линии

void swf_shapelinesolid (float г, float g, float b, float a, float width)

Задаются параметры цвета rgba и ширина width (если указывается ширина 0.0, то линии рисоваться не будут).

swf_shapefilloff

Выключение заполнения нынешней фигуры

void swf_shapefilloff (void);

swf _shapefillsolid

Установка жанра и цвета заполнения

void swf_shapefillsolid (float г, float g, float b, float a)

Устанавливает 100 % жанр заполнения цветом

swf_shapefillbitmapclip

Установка заполнения усеченной текстурой рисунка

void swf_shapefillbitmapclip (int bitmapid)

swf_shapefillbitmaptile

Установка заполнения размноженной текстурой рисунка

void swf_shapefillbitmaptile (int bitmapid)

swf_shapemoveto

Перемещение нынешней позиции

void swf_shapemoveto (float x, float y)

swf_shapelineto

Черчение линии

void swf_shapelineto (float x, float y)

Чертит линию от нынешней позиции до указанной.

swf_shapecurveto

Рисование квадратической косой Безье

void swf_shapecurveto (float xl, float yl. float x2, float y2)

Чертит кривую от точки (xl, yl) до точки (х2, у2). Нынешняя позиция после этого устанавливается в точке (х2, у2).

swf_shapecurveto3

Рисование кубической косой Безье

3void swf_shapecurveto3 (float xl. float yl, float x2. float y2. float x3, float y3)

Чертит кривую, применяя точки (xl, yl) и (х2, у2) как наружно ориентирующие, а точку (хЗ, уЗ) — как финальную. Нынешняя позиция после этого устанавливается в точке (хЗ, уЗ).

swf_shapearc

Рисование дуги

void swf_shapearc (float x, float у, float г, float angl, float ang2)

Исходный и финальный угол дуги задается angl и ang2; центр — (х,у); радиус - г.

swf_endshape

Заключение определения нынешней фигуры

void swf_endshape (void);

swf_definefont

Определение шрифта

void swf_definefont (int fontid, string fontname)

Задает шрифт fontname в качестве нынешнего и присваивает ему идентификатор fontid.

swf_setfont

Смена нынешнего шрифта

void swf_setfont (int fontid)

swHontsize

Смена размера нынешнего шрифта

void swf_fontsize (float size)

swHontslant

Установка наклона нынешнего шрифта

void swf_fontslant (float slant)

Угол задается значением slant (позитивное значение создает наклон вперед, негативное — назад).

swf_fonttracking

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

void swf_fonttracking (float tracking)

Правильное значение увеличивает, а негативное — сокращает промежуток.

swf_getfontinfo

Приобретение информации о высоте букв

array swf_getfontinfo (void);

Возвращает ассоциативный массив из 2-х элементов:

  • Aheight — высота в пикселах заглавной буквы А;
  • xheight — высота в пикселах крошечной буквы х.

swf_definetext

Создание строки текста

void swfjlefinetext (int objid. string str, int docenter)

Строка текста str создается с применением нынешнего шрифта и его размера. Если в значении довода docenter указывается 1, то текст центрируется по горизонтали.

swf_textwidth

Расчет ширины строки

float swf_textwidth (string str)

Расчет использует размеры нынешнего шрифта.

swf_definebitmap

Определение рисунка

void swf_definebitmap (int objid, string image_name)

Добавляет рисунок GIF, JPEG, RGB либо FI (он механически конвертируется в формат Flash JPEG либо Flash color map).

swf_getbitmapinfo

Приобретение информации о рисунке

array swf_getbitmapinfo (int bitmapid)

Возвращает массив с информацией о рисунке bitmapid, содержащий элементы:

  • «size» — размер рисунка в байтах;
  • «width» — ширина рисунка в пикселах;
  • «height» — высота рисунка в пикселах.

swf_startsymbol

Определение символа

void swf_startsymbol (int objid)

Трансформирует объект в символ. Символы — это микроанимации flash, которые могут проигрываться единовременно.

swf_endsymbol

Заключение определения символа

void swf_endsymbol (void);

Завершает определение символа, начатое функцией swf_startsymbo1().

swf_ startbutton

Предисловие определения кнопки

void swf_startbutton (int objid. int type)

Доводом type задается, может ли фокус перемещаться без нажатия на кнопку мышью (TYPE_MENUBUTTON) либо нет (TYPE_PUSHBUTTON).

swf_addbuttonrecord

Управление расположением, видом и энергичной областью нынешней кнопки void swf_addbuttonrecord (int states, int shapeid, int depth)

Доводом states определяется, какие состояния может принимать кнопка: BSHitTest, BSDown. BSOver, BSUp; доводом shapeid определяется внешний вид кнопки (идентификатор объекта), a depth -ярус расположения кнопки.

swf_startButton ($objid. TYPEJCNUBUTTON):
swf_addButtonRecord (BSDown|BSOver. Sbuttonlmageld. 340).
swf_onCondition (MenuEnt?r).
swf_actionGetUrl ("http-//www desTgnmultimed-a.com". "Jevell"):
swf onCondltion (MenuExH):
swf_actTonGetUrl ("". "_levell"); swf_endButton ();

swf_oncondition

Предназначение события

void swf_oncondition (int transition)

Для кнопок TYPE_MENUBUTTON допустимы параметры:

  • IdletoOverUp;
  • OverUptoIdle;
  • OverllptoOverDown;
  • OverDowntoOverUp;
  • IdletoOverDown;
  • OutDowntoIdle;
  • MenuEnter (Id!etoOverl)p| IdletoOverDown):
  • MenuExit (OverUptoIdlejOverDowntoIdle).

Для кнопок TYPE_PUSHBUTTON допустимы параметры:

  • IdletoOverllp;
  • OverUptoIdle;
  • OverUptoOverDown;
  • OverDowntoOverUp;
  • OverDowntoOutDown;
  • OutDowntoOverDown;
  • OutDowntoIdle;
  • ButtonEnter (IdletoOverUp|OutDowntoOverDown);
  • ButtonExit (OverUptoIdle]OverDowntoOutDown).

swf_endbutton

Заключение определения нынешней кнопки

void swf_endbutton (void);

swf_viewport

Выбор области для.дальнейшего рисования

void swf_viewport (double xmin. double xmax. double ymin, double ymax)

swf_ortho

Выбор объемной системы координат нынешней области рисования

void swf_ortho (double xmin. double xmax. double ymin, double ymax. double zmin. double zmax)

swf_ortho2

Выбор плоской системы координат нынешней области рисования

2void swf_ortho2 (double xmin, double xmax, double ymin. double ymax)

Для реформирований перспективы может применяться функция swf_ perspective().

swf_perspective

Определение трансформации перспективы проекции

void swf_perspective (double fovy. double aspect, double near, double far)

Довод fovy задает угол зрения по отношению к оси у, aspect — масштаб нынешней области рисования. Доводы near,far определяют границы проекции — ближнюю и дальнюю. От того что flash-проигрыватели имеют только двумерную матрицу, допустимы искажения проецирования.

swf_polarview

Установка позиции слежения в полярных координатах

void swf_polarview(double dist, double azimuth, double Incidence, double twist)

dist задает расстояние от наблюдателя до начала системы координат; azimuth — угол азимута в плоскости х,у, измеренный от оси у; incidence — угол обзора в плоскости y,z, измеренный касательно оси z; twist — вращение видимой области касательно линии слежения (по правилу правой руки).

swf_lookat

Установка трансформации слежения

void swfjookat (double view_x, double view_y. double view_z, double reference_x, double reference_y, double reference_z, double twist)

Доводами view_x, view_y, view_z задается позиция слежения; reference_x, reference_y, reference_z указывают отслеживаемую точку; a twi st — угол поворота слежения касательно оси z.

swf_pushmatrix

Занесение нынешней матрицы трансформации в стек

void swf_pushmatrix (void);

swf_popmatrix

Извлечение матрицы трансформации из стека

void swf_popmatrix (void);

swf_scale

Масштабирование нынешней трансформации

void swf_scale (double x. double y, double z)

Масштабные показатели задаются доводами х, у, z.

swf_trnslate

Транслирование нынешней трансформации

void swf_translate (double x, double y, double z)

swf_rotate

Поворот нынешней трансформации

void swf_rotate (double angle, string axis)

Угол поворота angle задается касательно оси axis. Возможные значения axis: "x", "у" и "z".

swf_posround

Разрешение либо закроет округления координат объектов

void swf_posround (int round)

Значение 1 разрешает, а 0 воспрещает округление.

Ming для Flash

Ming является библиотекой с открытым начальным кодом (LGPL), разрешающей создавать анимации SWF («Flash»). Ming поддерживает примерно все возможности Flash 4, включая: фигуры (shapes), цветовые переходы (gradients), картинки (bitmaps: jpeg), перевоплощения (morphs либо «shape tweens»), текст, кнопки, действия, клипы (sprites), потоковую музыку трЗ и реформирования цветов; исключительное, чего не поддерживает Ming, это звуковые события. Применение Ming предпочтительнее модуля libswf. Ming работает на большинстве платформ, включая Windows, использует РНР объекты для представления объектов SWF и продолжает разрабатываться1 (адрес разработчиков ming@opaque.net). Библиотеку Ming дозволено загрузить с сайта: http://www.opaque.net/ming/.

Все размеры указываются в единицах «твипс» (twips), что равно I 1/20 пиксела. Но масштаб может изменяться проигрывателем.

Ming использует PHP-объекты тринадцати классов:

  • swfmovie();
  • swfshape();
  • swfdisplayitem();
  • swfgradient();
  • swfbitmap();
  • swf fill ();
  • swfmorph();
  • swftext();
  • swffont();
  • swftextfield();
  • swfsprite();
  • swfbutton();
  • swfaction().

SWFMovie — объект анимации SWF 4

SWFMovie->output

Итог сделанной анимации

void swfmovie->output (void)

Для того дабы браузер положительно воспринял передаваемый ему файл, используйте PHP-команду отсылки заголовка до итога анимации:

<?php headert'Content-type: apolication/x-Shockwave-flash'); ?>

См. также swfmovie->save().

SWFMovie->save

Сохранение анимации в файле

void swfmovie->save (string filename)

См. также output().

SWFMovie->add

Добавление компонентов анимации

void swfmovie->add (resource instance)

Этим способом дозволено добавлять объекты разных типов: фигуры, текст, шрифты и т. п. Для отображаемых объектов (shape, text, button, sprite) возвращается дескриптор объекта SWFDisplayltemO, внесенный в список отображения. При многократном добавлении одного объекта всякий раз будет возвращаться иной дескриптор.

См. также: swfmovie->remove() и пример в swfdisplayitem->rotateto().

SWFMovie->remove

Удаление объекта из списка отображения

void swfmovie->remove (resource instance) Функция противоположна swfmovie->add().

SWFMovie->setbackground

Установка цвета фона

void swfmovie->setbackground (int red, int green, int blue)

Цвет задается значениями (0-255) компонентов: красного, зеленого и синего.

SWFMovie->setdimension

Установка ширины и высоты анимации

void swfmovie->setdimension (int width, int height)

SWFMovie->setrate

Установка частоты кадров анимации

void swfmovie->setrate (int rate)

Значение rate — число кадров в секунду. Анимация будет тормозиться, если проигрыватель не будет поспевать перерисовывать кадры. Если единовременно проигрывается звук, то для его типичного воспроизведения частота перерисовки будет при необходимости снижаться.

SWFMovie->setframes

Установка всеобщего числа кадров анимации

void swfmovie->setframes (string number_of_frames)

SWFMovie->nextframe

Переход к новому кадру анимации

void swfmovie->nextframe (void)

SWFMovie->streammp3

Воспроизведение потокового звука МРЗ

3void swfmovie->streammp3 (string mpSFileName)

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

<?php
$m = new SWFMovie() ; $m->setRat.eC10.0);
// кадров в секунду $m->streamMp3("distortobass.mp3"):
// use your own MP3
// продолжительность проигрывания анимации:
100/10.0 = 10 секунд $m->setFrames(100);
// кадров в анимации
headert'Content-type: application/x-shockwave flash'):
$m~>output(). ?>

SWFDisplayltem - объект списка отображения

Применяется для хранения компонентов анимации; позже того, как объекты shape, text, sprite либо button декларированы (сделаны экземпляры классов swfshape(), swfbutton(), swftext(). swfspnte()) и добавлены в анимацию (способом swfmovie->add()), для всякого из них возвращается дескриптор (объект типа SWFDisplayltem), тот, что дозволено применять для перемещения, вращения, масштабирования и наклона объекта.

SWFDisplayltem - >moveTo

Репозиционирование объекта

void swfdisplayitem->moveto (int x, int у) Указываются безусловные координаты.

См. также swfdisplayitem->move().

SWFDisplayltem->move

Смещение объекта

void swfdisplayitem->move (int dx. int dy)

Указываются координаты касательно нынешней позиции.

См. также swfdisplayitem->moveto().

SWFDisplayltem - >scaleTo

Задание новых размеров объекта

void swfdisplayitem->scaleto (int x, int у)

См. также swfdisplayitem->scale().

SWFDisplay!tern->scale

Масштабирование объекта

void swfdisplayitem->scale (int dx, int dy)

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

См. также swfdisplayitem->scaleto().

SWFDisplayltem->rotateTo

Установка безусловного угла поворота объекта

void swfdisplayitem->rotateto (double degrees)

Угол указывается в градусах.

<?php // три вращающиеся строки Sthetext = "ming!";
$f = new SWFFontC'Bauhaus 93.fdb"):
$m = new SWFMovieO : $m->setRate(24.0):
$m->setDimension(2400. 1600).
$m->setBackground(Oxff. Oxff. Oxff):
function texKSr. $g. $b. $a. $rot. Sx. $y. Sscale. Sstring) {
global $f. $m; $t = new SWFText();
$t->setFont($f). $t->setCo1or($r. $g. $b. $a):
$t->setHeight(960)-.
$t->moveTo(-($f->getWidth($stnng))/2. Sf->getAscent()/2):
$t->addString($string): $1 $m->add($t);
$i->/ - $x: $i->y = $y. $1->rot - trot: $i->s ' Sscale.
$1->rotateTo($rot): $i->scale($scale. Sscale):
return $1: function step($i) {
soldrot = $i->rot. $i->rot = 19*$i->rot/20;
Si >x = (19*$i->x + 1200)/2C: Sv>y = (19*$v>y + 800)/20;
?i->s = (19*$i->s + 1.01/20.
Si->rotateTo(Si->rot):
$i->scaleTo(Si ->s. Ii->s): $-i->moveTo($i->x. $i->y).
return ii. } Sil = text(0xff. 0x33. 0x33.
Oxff. 900. 1200 800. 0 03. Sthetext):
$12 = text(0x00. 0x33. Oxff. Ox7f. -560.
1200. 800. 0.04. $thetext); $13 =
text(Oxff. Oxff. Oxff. Ox9f. 180. 1200. 800. 0.001 Sthetext):
for($i=l; Si<=100: ++$1) {
$11 = step($11); $12 = step($12); $13 = step($13):
$m->nextFrame(): }
headert'Content-type: application/x-shockwave-flash');
$m->output(); ?>

См. также swfdisplayitem->rotate().

SWFDisplayltem->Rotate

Поворот объекта

void swfdisplayitem->rotate (double ddegrees)

Указывается относительный угол поворота в градусах.

См. также swfdisplayitem->rotateto().

SWFDisplayltem->skewXTo

Установка наклона по X

void swfdisplayitem->skewxto (double d)

Указывается показатель смещения основания вправо, то есть 1.0 обозначает искажение в 45 градусов. Допустимы негативные значения для смещения основания налево.

См. также: swfdisplayitem->skewx(), swfdisplayitem->skewy() и swfdisplayitem-> skewyto().

SWFDisplayltem->skewX

Наклон объекта по X

void swfdisplayitem->skewx (double d)

SWFDisplayltem->skewYTo

Установка наклона по Y

void swfdisplayi-tem->skewyto (double degrees)

Указывается смещение правой стороны вниз.

SWFDisplayltem->skewY

Наклон объекта по Y

void swfdisplayitem->skewy (double ddegrees)

SWFDisplayltem - >setDepth

Установка порядка отображения (z-order)

void swfdisplayitem->setdepth (double depth)

Размещает объект на указанном ярусе. (При добавлении дальнейший объект размещается поверх предыдущего.)

SWFDisplayltem->remove

Удаление объекта из анимации

void swfdisplayitem->remove (void)

SWFDisplayltem->setName

Присвоение объекту имени

void swfdisplayitem->setname (string name)

Применяется для возможности обращения к объекту при написании программ действий. Благотворно только для спрайтов.

SWFDisplayltem->setRatio

Установка увеличения объекта

void swfdisplayitem->setratio (double ratio)

Пригодно только для объектов SWFMorph().

Приведенный ниже пример создает три концентрических изменяющихся кольца.

<?php $р = new SWFMorphC);
$g = new SWFGradient():
$g->addEntry(0.0. 0. 0. 0):
$g->addEntry(0.16. Oxff. Qxff. Oxff):
$g->addEntry(0.32. 0. 0. 0):
$g->addEntry(0.48. Oxff. Oxff. Oxff);
$g->addEntry(0.64. 0, 0. 0);
$g->addEntry(0.80, Oxff. Oxff. Oxff):
$g->addEntry(l.'00. 0. 0. 0);
$s = $p->getShapel():
$f = $s->addFill($g. SWFFILL_RAD!AL_GRADIENT);
$f->scaleTo(0.05):
$s->setLeftFill($f):
$s->iTOvePenTo(-160, -120);
$s->drawLine(320. 0);
$s->drawLine(0. 240);
$5->drawLine(-320. 0);
$s->drawL1ne(0. -240):
$g = new SWFGradientO:
$g->addEntry(0.0. 0. 0. 0):
$g->addEntry
(0.16. Oxff. 0. 0);
$9->addEntry(0.32. 0. 0. 0):
$g->addEntry(0.48. 0. Oxff. 0):
$g->addEnti-y(0.64. 0. C. 0):
$g->addEntryC0.80. 0. 0. Oxff):
$g->addEntry(1.00. 0. 0. 0).
$s - $p->getShape2():
$f $s->addFill($g.
S/:FFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05):
$f->skewXTo(1.0):
$s->setLeftFill($f):
$s->movePenTo(-160. -120):
$s->drawLine(320. 0):
$s->drawl_ine(0. 240):
$s->drawLine(-320. 0):
$s->drawLine(0. -240):
$m = new SWFMovie():
$m->setDimension(320. 240):
$n = $m->add($p):
$i->moveTo'160. 120):
for($n-0: $n<-l 001. $n+=0.01) {
Si->setRatio($n):
$m->nextFrame(): }
header('Content - type: appli cati on/x-Shockwave-fl ash');
fm->output(); ?>

SWFDisplayltem->addColor

Увеличение значений компонентов цвета

void swfdisplayltem->addco"lor ([integer red [. integer green [, integer blue [, integer a>)

SWFDisplayltem->multColor

Умножение значений компонентов цвета

void swfdisplayitem->multcolor ([integer red [. integer green [, integer blue [. integer a>)

<?php $b = new SWFB1traapCbackyard.jpg");
// note use your own picture :-)
$s = new SWFShape(): $5->setRightFilU$s->addFill($b)):
$s->drawLine($b->getWidth(). 0):
$s->drawLine(0. $b->getHeight()):
$b->drawLine(-$b->getWidth(). 0).
$s->drawLine(0. -$b->getHenght());
$m = new SWFMovieO $m->setDimension($b->getWTdth().
$b->getHeight()). $1 - $m->add($s);
for($n-0: $n<-20: ++$n) {
$v>multColor(1.0-$n/10. 1.0. 1 0).
$1 >addColor(Oxff*$n/20. 0. 0):
$m->nextFrame(): }
headerCContent type: application/x-shockwave-flash');
$m->output(). ?>

SWFShape - объект Фигура

<?php $m = new SWFMovie() ;
$m->setDimension(800. 800): // размер рисунка
$m->setbackground(50.100.200). // цвет фона
$s = new SWFShape() . $s->setLine(160. Ox7f. 0. 0).
// жанр линии $s->setRightFill($s->addFill(Oxff. 0. 0)):
// заливка $s->movePenTo(200. 200):
// исходная точка $s->drawLineTo(620. 400):
$s->drawLine(-200. 60):
$s->drawCurveTo(400. 0. 200. 200):
$m->add($s): headert'Content-type-
application/x-shockwave-flash'): $m->output(): ?>

SWFShape->setLine

Установка типа линий фигуры

void swfshape->setline (Int width [, integer red , integer green , integer blue [, integer a]])

Число доводов может быть 1, 4 либо 5 (но не 3 либо 2). Для линии задается ширина width, цвет (значениями компонент красного, зеленого и синего) и альфа-параметр.

<?php $s = new SWFShape():
$fl - $s->addFill(Oxff. 0. 0):
$f - new SWFFontf'Techno.fdb'):
$s->setRightFill($fl): $5.>setLine(40. Ox7f. 0. 0).
$s->drawGlyph($f. '!'); $s->movePen($f.>getWidth('!'). 0):
$m = new SWFMovie():
$m->setDimension(3000.2000):
$m-><;etRate(12.0).
$-, _ $m->add($s).
$i.>rnoveTo(1500-$f->get;«hdth
("n/2. 1000+$f->getAscent()/2):
headt'r('Content-type:
application/x-Shockwave-flash'}; $m->oiitput(): ?>

SWFShape->addFill

Задание жанра заливки

void swfshape->addfill (Integer red. Integer green, Integer blue [, Integer a])

void swfshape->addfill (SWFbitmap bitmap [, integer flags]) void swfshape->addfill (SWFGradient gradient [, integer flags])

Допустимы три жанра заливки (см. синтаксис): цветом, рисунком, градиентная заливка.

Для ригунка задастся дескриптор объекта swfbitmap() и добровольный параметр SWFFILL_CLIPPED_BITMAP (обрезанный рисунок) либо SWFFILL_ TILED_BITMAP (размноженный рисунок, по умолчанию).

Для градиентной заливки задается дескриптор объекта swfgradientO и добровольный параметр SWFFILL_RADIAL_GRADIENT либо SWFFILL_ LINEAR_GRAOIENT (линейный, по умолчанию).

Возвращает дескриптор объекта swffill() для применения в функциях swfshape->setleftfill() и swfshape->setrightfill().

<?php $Р . new SWFMorph().
$b - new SWFBitmapCaTphafin.jpg"):
// используйте личный рисунок
$width = Ib->getWidth(): SheigHt = №->getHeight():
$s - $p->getShapel():
$f = $5->addFill($b. SWFFILL_T!LED_BITMAP).
$f->moveTo(-$width/2. -$height/4):
$f->scaleTo(i 0. 0.5): $s->
setLeftFill($f): $s->movePenTo
(-$w1dth/2. -SheightM):
$s->drawL1ne($width, 0): $s->drawLine
(0. $height/2): $s->drawLine(-$wicSth. 0).
$s->drawl_ine(0. -$henght/2).
$s - $p->getShape2():
$f = $s->addFill($b. SWFFILL_TILED_BITMAP):
// these two have no effect! $f->
tnoveTo(-$width/4. -$height/2):
$f->scaleTo(0.5. 1.0):
$s->setLeftF1l1($f);
$s->movePenTo(-$width/4. -$height/2):
$s->drawLine($width/2. 0).
$s->drawl_ine(0. Sheight): $s->drawLnne
(-$width/2. 0): $s->drawLine(0. -Sheight):
$m = new SKFMovie();
$m->setDimension($width. Sheight):
$1 = $m->add($p):
$v>moveTo($width/2. $height/2):
for($n-0. $n<1.001: $n+=0.03)
$i->setRatio($n): $m->nextFrame(): }
header('Content-type: application/x-shockwave-flash'):
$m->output(): ?>

SWFShape->setLeftFill

Заливка фигуры налево

void swfshape->setleftfill (swfgradient fill)

void swfshape->setleftfill (int red. int green, int blue [. int a])

Если браузер отказывается закрашивать фигуру, испробуйте закраску с иной стороны.

2-й вариант является аббревиатурой swfshape->setleftfiTI($s-> addfill($r. $g, $b [, $a]));.

См. также swfshape->setrightfill().

SWFShape->setRightFill

Заливка фигуры направо

void swf shape->setnghtf nil (swfgradient fill)

void swfshape->setrightfill (int red. int green, int blue [, int a])

См. также swfshape->setleftfi"ll().

SWFShape->movePenTo

Задание точки итога

void swfshape->raovepento (integer x, integer y)

Указывается точка, от которой будет чертиться фигура.

См. также: swfshape->movepen(), swfsh"ape->drawcurveto(), swfshape-> drawlineto() и swfshape->drawline().

SWFShape->movePen

Смещение точки итога

void swfshape->movepen (integer dx, integer dy)

См. также: swfshape->movepento(), swfshape->drawcurveto(), swfshape-> drawlineto() и swfshape->drawline().

SWFShape->drawLineTo

Черчение линии

void swfshape->drawlineto (integer x, integer y)

Создает линию (применяя нынешний жанр) от нынешней точки итога до указанной.

См. также: swfshape->movepento(), swf shape ->drawcurveto(), swfshape-> movepen(), swfshape->drawline().

SWFShape->drawLine

Проведение отрезка

void swfshape->drawline (integer dx, integer dy)

См. также: swf shape->movepento(), swfshape->drawcurveto(), swfshape-> movepen() и swfshape->drawlineto().

SWFShape->drawCurveTo

Черчение косой void swfshape->drawcurveto (int controlx, int controly, int endx, int endy)

Создает квадратичную кривую (применяя нынешний жанр) от нынешней точки итога до указанной (endx, endy), применяя точку (endx, endy) как ориентирующую.

См. также: swfshape->drawlineto(), swfshape->drawline(), swfshape-> movepento() и swfshape->movepen().

SWFShape->drawCurve

Проведение косой

void swfshape->drawcurve (int controldx. int controldy, int dx, int dy)

Координаты указываются относительные.

SWFGradient — объект градиентной заливки

Градиентные заливки применяются для заполнения фигур способом swfshape->addfilH).

В итоге выполнения этого простого примера на фоне черно-белой градиентной заливки будет сделан по центру красноватый диск.

<?php $m = new SWFMovie() : $m->set.Dimension(320. 240):
$s = new SWFShape():// first gradient- black to white
$g = new SWFGradient(); $g->addtntry(0 0. 0. 0. 0).
$g->addEntry(1.0. Oxff. Oxff. Oxff); 1
$f = $s->addFill($g. SWFFILL_LINEAR_GRADIENT):
$f->scaleTo(0.03); $f-xnoveTo(160. 120)-
$s->setRightFill($f). $s->drawLine(320, 0).
$s->drawLine(0. 240): $s->drawLine(-320. 0):
$s->drawLme(0. -240): $rc->add{$s).
$s - new SWFShape():
// second gradient- radial gradient from red
to transparent $g = new SWFGradient();
$g->addEntry(0.0. Oxff. 0. 0. Oxff):
$g->addEntry(1.0. Oxff. 0. 0. 0):
$f = $s->addF111($g. SWFFILL_RADIAL_GRADIENT):
$f->scaleTo(0.05): $f->moveTo(160. 120):
$s->setRightFill($f): $s->drawLine(320. 0):
$s->drawline(0. 240): $s->drawLine(-320. 0):
$s->drawLine(0. -240): $m->add($s):
header('Content-type: application/x-shockwave-flash'):
$m->output(): ?>

SWFGradient- >add Entry

Добавление экстремума градиентной заливки

void swfgradient->addentry (double ratio, int red, int green, int blue [, int a])

Довод ratio указывает позицию диапазона градиентной заливки (от 0 до 1), для которой указывается цвет. Необязательным доводом а указывается прозрачность (0—255).

SWFBitmap - загрузка рисунка

new swfbitmap (string filename [, integer alphafilename])

i Загружает рисунок из файла JPEG либо DBL-файла filename. Дозволено указать добавочный рисунок alphafilename для применения в качестве альфа-маски. JPEG-рисунок должен быть в формате baseline (frame 0), другие форматы — baseline optimized и progressive scan jpeg — не поддерживаются.

Импортировать рисунки PNG напрямую невозможно, правда дозволено применять утилиту png2dbl для конвертирования в формат DBL («define bits lossless»).

<?php $s = new SWFShape():
$f = $s->addFill(new SWFBitmapC'p.dbl")):
$s->drawLine(32. 0): Ss->drawLine(0. 32):
$s->drawl_ine(-32. 0): $s->draw!_ine(0. -32):
$m = new SWFMovie() :
$m->setDimension(32. 32): $m->add(Ss);
header('Content-type: application/x-Shockwave-flash'):
$m->output(): ?>

Пример с применением альфа-маски:

<?php $s = new SWFShape():
// .msk файл генерирован утилитой gif2mask
$f = $s->addFill(new SWFBitmapC'alphafill. jpg".
"alphafill.msk")): $s->set.RightFill($f):
$s->drawLine(640. 0): $s->drawLine
(0. 480); $s->drawl_ine(-640. 0): $s->drawLine(0. -480):
$c = new SWFShape(): $c->setRightFill($c->
addFill(Ox99. 0x99. 0x99)): $c->drawUne(40, 0):
$c->drawLine(0, 40): $c->drawLine(-40. 0);
$c->drawLine(0. -40):
$m = new SWFMovie() : $m->setDimension(640, 480):
$m->setBackground(Oxcc. Oxcc. Oxcc);
// нарисовать шахматный фон for($y=0;
$y<480: $y+=40) { for($x-0; $x<640; $x+=80) {
$i = $m->add($c); $1->moveTo($x. $y): }
$y+=40; for($x=40: $x<640: $x+=80) {
$i = $m->add($c); $i->moveTo($x, $y): }
$m->add($s): header('Content-type:
applтcation/x-shockwave-fl ash'): $m->output().?>

SWFBitmap->getWidth

Установка ширины рисунка в пикселах

int swfbitmap->getwidth (void)

См. также swfbitmap->getheight().

SWFBitmap->getHeight

Установка высоты рисунка в пикселах

int swfbitmap->getheight (void)

См. также swfbitmap->getwidth().

SWFFill — объект Заполнитель

С поддержкой этого объекта дозволено трансформировать (масштабировать, наклонять, вращать) рисунки и градиентные заливки, используемые как заполнители. Данный объект создается способом swfshape ->addfil1().

SWFFill->moveTo

Установка точки, от которой начинается заполнение

void swffill->movetc (integer x, integer y)

SWFFill->scaleTo

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

void swffill->scaleto (integer kx, integer ky)

SWFFill->rotateTo

Установка угла поворота заполнителя

void swffill->rotateto (double degrees)

SWFFill->skewXTo

Установка угла х-наклона заполнителя

void swffill->skewxto (double x)

Указывается показатель смещения основания вправо, то есть 1.0 обозначает искажение в 45 градусов. Допустимы негативные значения для смещения основания налево.

SWFFill->skewYTo

Установка у-наклона заполнителя

void swffill->skewyto (double у)

Указывается смещение правой стороны вниз.

SWFMorph — объект Перевоплощение

Объект представляет собой перевоплощение одной фигуры в иную («shape tween»).

В приведенном ниже примере крупной алый квадрат, вращаясь, превращается в небольшой синий.

<?php $р = new SWFMorph().
$s = $p->getShapel(): $s->setLine(0.0.0.0):
$s->setLeftFill($s >addFill(Oxff. 0. 0)):
$s->movePenTo(-1000.-1000). $s->drawl_-ine(2000.0);
$s->drawl_ine(0.2000):
$5->drawLine(-2000.0): $s->drawline(0.-2000),
$s - $p->getShape2O;
$s->setLine(60.0.200.0):
$s->setLeftFill($s->addFilKO. 0. Oxff));
$s->movePenTo(0.-1000):
$s->drawLine(1000.1000):
$s->drawLine(-1000.1000):
$s >drawLine(-1000.-1000):
$s->drawLine(1000.-1000):
$m = new SWFMovie() .
Sm->setDimension(3000.2000):
$m->setBackground(Oxff. Oxff, Oxff);
$1 - $m->add($p): $i->moveTo(1500.1000):
for($r=0.0: $r<=1.0: $r+=0.1) {
$v>setRatio(Sr): $m->nextFrame(): }
header С Content-type: application/x-Shockwave-flash'):
$m->output(): ?>

SWFMorph->getshape1

Установка исходной фигуры перевоплощения

Imixed swfmorph->getshapel (void)

Возвращает объект swfshape().

SWFMorph->getshape2

Установка финальной фигуры перевоплощения

2mixed swfmorph->getshape2 (void)

Возвращает объект swfshape().

SWFText — объект текста

<?php$f new SWFFontt"Techno fdb");
$t - new SWFText(): $t->setFont($f):
$t->moveTo(200. 2400). $t->setColor(Oxff. Oxff. 0):
lt->setHenght(1200):
$t->addString("PHP
generates Flash with Ming!!");
$m = new SWFMovie(); $m->setDimension
(5400. 3bOO). I $m->add($t).
headerСContent-type: application/x-shockwave-flash');
$m->output(): ?>

SWFText->setFont

Установка нынешнего шрифта

void swftext->setfont (font)

SWFText->setHeight

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

void swftext->setheight (integer height) Значение но умолчанию — 240.

SWFText->setSpacing

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

void swftext->setspacing (double spacing)

Значение по умолчанию — 1.0. Значение 0 указывает, что дальнейший символ будет выводиться непринужденно за последним. Вычисления не отличаются точностью.

SWRext->setColor

Установка цвета шрифта

void swftext->setcolor (int red, int green, int blue [, int a]) Значение по умолчанию — черный.

SWRext->moveTo

Установка позиции итога

void swftext->moveto (integer x. integer y)

SWFText->addString

Рисование строки

void swftext->addstring (string string)

SWFText->getWidth

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

double swftext->addstring (string string)

Возвращает размер с учетом размеров шрифта, масштаба и т. п.

SWFFont — Загрузка шрифта

new swffont (string filename)

В доводе указывается имя FDB-файла либо имя шрифта, поддер живаемого браузером. Формат FDB («font definition block») содер жит изложение шрифта дальнейшего вида: «SWF DefineFont2 block». Файл FDD дозволено получить из файлов-образцов «SWT Generator» с подмогой утилиты makefdb библиотеки ming.

Три особых шрифта обязаны быть доступны неизменно: _serif, _sans и _typewriter.

<Php $f - newSWFFont("_sans"): ?>

Дескриптор шрифта, возвращенный swffont(), применяется как довод способов SWFText->setFont() и SWFTextField->setFont().

swffont->getwidth

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

int swffont->getwidth (string string)

Способ сходствен способу SWFText(), но применяется значение масштаба по умолчанию.

SWFTextField — объект текстового поля

new swftextfield ([int flags])

Текстовые нуля менее функциональны, нежели объекты swftext(): их невозможно вращать, непропорционально масштабировать, наклонять, но они могут применяться для ввода в формах и применять шрифты браузера.

Поведение поля дозволено изменить, указав необязательные флаги; следующие значения дозволено комбинировать, применяя битовый оператор ЛИБО:

  • SWFTEXTFIELD_NOEDIT — нередактируемое поле;
  • SWFTEXTFIELD_PASSWORD — скрывает вводимые данные;
  • SWFTEXTFIELD_DRAWBOX — чертит обрамление;
  • SWFTEXTFIELD_MULTILINE — многострЪчный режим;
  • SWFTEXTFIELD_WORDWRAP — дозволяет механически разносить длинный текст на несколько строк;
  • SWFTEXTFIELD_NOSELECT — делает текст поля невыделяемым.

Скажем, дальнейшая строка создает поле с нсвыделяемым и нередактируемым текстом:

$t = newSWFTextField(SWFTEXTFIELD_NOSELECT
SWFTEXTFIELO_NOEDIT).

SWFTextField->setFont

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

void swftextfield->setfont (string font)

SWFTextField->setbounds

Установка ширины и высоты поля

void swftextfield->setbounds (int width, int height)

SWFTextField->align

Установка выравнивания текста в поле

void swftextfield->align (int alignement)

Возможные значения довода: SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER и SWFTEXTFIELD_ALIGN_JUSTIFY.

SWFTextField->setHeight

Установка высоты шрифта текстового поля

void swftextfield->setheight (int height)

Значение по умолчанию — 240.

SWFTextField->setLeftMargin

Установка ширины левого отступа поля

void swftextfield->setleftmargin (int width)

Значение по умолчанию — 0.

SWFTextField->setrightMargin

Установка ширины правого отступа поля

void swftextfield->setrightmargin (int width)

Значение по умолчанию — 0.

SWFTextField - >setM argi ns

Установка ширины левого и правого отступов поля

void swftextfield->setmargins (int left, int right)

Это комбинация 2-х вышеописанных способов.

SWFTextField->setindentation

Установка ширины отступа первой строки

void swftextfield->setindentation (int width)

SWFTextField->setLineSpacing

Установка межстрочного расстояния

void swftextfield->set1inespacing (int height)

Значение по умолчанию — 40.

SWFTextField->setcolor

Установка цвета поля

void swftextfield->setcolor (int red, int green, int blue [, int a])

Значение по умолчанию — прозрачный.

SWFTextField->setname

Присвоение полю имени

void swftextfield->setname (string name)

Применяется при отсылке данных формы и для выполнения действий.

SWFTextField->addstring

Добавление строки к тексту поля

void swftextfield->addstring (string string)

SWFSprite — создание клипа (sprite)

Спрайт («movie clip») дозволяет создавать анимации с собственной системой отсчета времени. Следственно спрайты работают аналогично основным анимациям.

<?php $ь - new SWFShape();
$s->setRngntFill($s->addFill(Oxff. 0. 0)):
$s->movePenTo(-500.-500):
$s->drawLineTo(500.-500):
$s->drawLineTo(500.500):
$s->drawLineTo(-500.500):
$s->drawnneTo(-500.-500).
$p = new SWFSpnte():
$1 = $p->add($s):
for($j-0;$j<8:$J++){
$p->nextFrame().
$1 >rotate(10):
} $p-?nextFrame():
$m = new SWFMovie().
$, = $m >add($p):
$i->moveTo(1500.1000): $setNameC'blah");
$m->setDimension(3000.2000);
header( 'Content-type, application/x-shockwave-flash'):
$m->output(). ?>

SWFSprite->add

Добавление объекта к спрайту

void swfsprite->add (resource object)

Данный способ разрешает добавлять объекты swfshape(), swfbutton(), swftext(), swfaction(), swfsprite(). Способ возвращает дескриптор объекта в списке отображения.

SWFSprite->remove

Удаление объекта из спрайта

void swfsprite->remove (resource object)

Метод, обратный предыдущему.

SWFSprite->setframes

Установка всеобщего числа кадров

void swfsprite->setframes (integer numberofframes)

SWFSprite->nextframe

Переход к дальнейшему кадру

void swfsprite->nextframe (void)

SWFbutton — объект Кнопка

Приведенный ниже пример отслеживает события кнопки.

<?php $f new SWFFont("_senf"):
$p - new SWFSpnte(). function label(Sstring) { global $f:
$t = new SWFTextField(). $t->setFont($f):
$t->addStnng($stnng) $t->setHenght(200):
$t->setBounds(3200.200): return $t: }
function addLabel (Sstnng) { global $p.
$1 = $p->add(label($stnng)):
$p- nextFrame(): $p >remove($i). }
$p->add(new SWFAction("stop():"))
; addLabelC'NO ACTION"):
addLabel{' SWFBUTTON_MOUSEUP"):
addLabeli"SWFBUTTONJdUSEDOWN"):
addLabel ("SWFBUTTONJWUSEOVERLL).
addLabel("SWFBUTTON_MOUSEOUT"):
addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
addLabel("SWFBUTTON_DRAGOVER"):
addLabel ("SWFBUnON_DRAGOUT"):
function rect($r. $g. $b) { $s - new bWFShape():
$s->setRightFill($s->addFill($r. $g. $b)):
$s->draidine(600.0): $s->drawUne{0.600):
$s-»drawLine(-600.0): $s->drawL"'ne(0.-600);
return $s: } $b - new SWFButton():
$b->addShape(rect(Oxff. 0. 0).
SWFBUTTONJJP SWFBUTTONJHIT);
$b->addShape(rect(0. Oxff. 0). SWFBUTTONJWER).
№->addShape(rect(0. 0. Oxff). SWFBUTTON_DOWN);
$b->addAction(new SWFAction
("setTarget( '/label'): goto^ramed):").
SidFBUTTON_MOUSEUP):
$b->addAction(new SWFAction
("setTarget( '/label'); gotoFrame(2).").
SWFBUTTON_MOUS£DOkN):
$b->addAction(new SWFAction
("setTarget( '/label'): gotoFrame()):").
SWFBUnON_HOUSEOVER):
$b->addAction(nen SWFActionC"setTarget('/label'):
gotoFrame(4):").
SWFBUnON_MOUSEOUT):
$b->addAction(new SWFAction("setTarget('/label'):
gotoFrame(S):").
SWrBUTTON_MOUSLUPOUTSIOE):
$b->addAction(new SKFActlonC'setTargett'/label'):
gotoFrame(6):").
SWF8UTTON_DRAGOVER):
$b->addAction(new SWFAction
("setTarget('/label'/: gotoFrame(7):").
SWFBUTTON_DRAGOUT);
$m = new iWFMovie() : $m->setDimension(4000.3000);
$1 - $m->add($p); $1 ->setName("label");
$1->тоуеТо(400 1900):
$1 = $m >add($b): $i->moveTo(400.900);
header('Content-type applicatlon/x-shockwave-flash'):
$m->output(). ?>

Дальнейший пример разрешает перетаскивать кнопку по экрану.

<?php $s = new SWFS^dpe'):
$s->setRightFill($s->addFill(Oxff. 0. 0)).
$s->drawLine(1000.0): $s->drawLine(0.1000);
$s->drawLine(-1000.0): $s->drawLine(0.-1000):
$b = new SWFButton():
$b->addShape($s. SWFBUTTON_H1T
SWFBUTTONJJP SWFBUTTON_OOWN
SWFBUTTONJ3VER) -
. $b->addAction(new SWFAction("startDrag('/test'. 0):")
SWFBUTTON_MOUSEDOWN);
// '0' указывает на неблокировку мыши
$b->addAction(new SWFActionC'stopDragO;").
SWFBUTTON_MOUSEUP
SWFBUTTON_MOUSEUPOUTSIDE).
$p - new SWFSpnte(): $p->add($b). $p->nextFrame():
$m = new SWFMovie(): $1 = $m->add($p):
$1 >setName('test'): $i->moveTo(1000.1000):
header('Content - type: application/x-shockwave-flash'):
$m->output(): ?>

SWFbutton->addShape

Предназначение кнопке фигуры

void swfbutton->addshape (resource shape, integer flags)

Допустимы флаги: SWFBUTTONJJP, SWFBUTTONJWER, SWFBUTTON_DOWN, SWFBUHON_ HIT. Кнопка SWFBUTTON_HIT не отображается, а определяет область, реагирующую на нажатия.

SWFbutton->setUp

Синоним addShape (shape, SWFBUTTON_UP)

void swfbutton->setup (resource shape)

См. также: swfbutton->addshape() и SWFAction().

SWFbutton ->setOver

Синоним addShape (shape, SWFBUTTON_OVER)

void swfbutton->setover (resource shape)

SWFbutton->setdown

Синоним addShape (shape, SWFBUTTON_DOWN))

void swfbutton->setdown (resource shape)

SWFbutton->setHit

Синоним addShape (shape, SWFBUTTON_HIT)

void swfbutton->sethit (resource shape)

SWFbutton->addAction

Предназначение кнопке действия

void swfbutton->addaction (resource action, integer flags)

Назначает обработчик событий кнопки (action — дескриптор объекта swfactionO) для следующих событий (flags): SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SUFBUTTON_MOUSEUP, SWFBuTTONJOUSEUPOuTSIDE, SWFBUTTON_ MOUSEDOWN, SWFBUnON_DRAGOUT и SWFBUTTON_DRAGOVER.

SWFbutton->setAction

Синоним addAction (shape, SWFBUTTON_MOUSEUP)

void swfbutton->setaction (resource action)

Назначает кнопке действие, исполняемое при нажатии.

SWFAction — объект Действие

Объект компилирует сценарий в действие.

Синтаксис сценариев сходствен упрощенному синтаксису С. SWF code machine не дозволяет многих пророческой, скажем, довольно трудно реализовать вызовы пользовательских функций.

Компилятор распознает следующие инструкции:

  • break;
  • for;
  • continue;
  • if;
  • el se;
  • do;
  • while.

Все данные не имеют типа; значения SWF-действий сохраняются как строки. Следующие функции могут применяться в выражениях:

  • tirae() — возвращает число миллисекунд, прошедшее с начала проигрывания анимации;
  • randora(seed) — возвращает случайное число из диапазона (0-seed);
  • length(expr) — возвращает длину выражения;
  • int(number) — округление до ближайшего целого;
  • concat(expr, expr) — соединение строк;
  • ord(expr) — возвращает ASCII-код данного символа;
  • chr(num) — возвращает символ с указанным ASCII-кодом;
  • substr(stnng, location, length) — возвращает часть строки string длиной length, начиная с позиции location.

Также могут быть использованы добавочные команды:

  • duplicateClipCclip, name, depth) — дублирует клип (sprite), присваивая ему имя name и располагая на ярусе depth;
  • removed ip(expr) — удаляет именованный клип анимации;
  • trace(expr) — записывает сообщение в журнал отладки (пока команда непотребна);
  • startDragCtarget. lock, [left, top, right, bottom]) — начать перетаскивание объекта target. Довод lock определяет, блокировать ли мышь: 0 (нет) либо 1 (да). Дозволено указать область, в которой осуществляется перетаскивание;
  • stopDrag() — перестать перетаскивание;
  • callFrame(expr) — вызвать именованный кадр как функцию;
  • getURUurl, target, [method]) — загрузить данный url в именованную область target (имя кадра либо зарезервированное значение «_level()» для замены нынешней анимации либо «_levell» для загрузки анимации поверх нынешней). В необязательном доводе дозволено указать способ отсылки: POST либо GET для отсылки серверу , данных;
  • loadMovieCurl, target) — подобие предыдущей команды;
  • nextFrame() — перейти к дальнейшему кадру;
  • prevFrame() — перейти к предыдущему кадру;
  • play() — начать проигрывание анимации;
  • stop() — завершить проигрывание анимации;
  • toggleQuality() — переключиться между низким и высоким качеством;
  • stopSounds() — перестать проигрывание звуков;
  • gotoFrame(num) — перейти к кадру с указанным номером (нумерация начинается с 0);
  • gotoFrame(name) — перейти к именованному кадру;
  • setTarget(expr) — установить контекст действия;
  • frameLoaded(num) — может применяться в условных и циклических конструкциях для проверки того, был ли теснее загружен кадр с указанным номером. Дозволено применять альтернативное выражение /:framesLoaded.

Клипы и анимации имеют следующие свойства:

  • х;
  • у;
  • xScale — масштаб по горизонтали;
  • yScale — масштаб по вертикали;
  • currentFrame — нынешний кадр (только для чтения);
  • total Frames — всеобщее число кадров (только для чтения);
  • alpha — ярус прозрачности;
  • visible — видимость (l=on, 0=off);
  • width — (только для чтения);
  • height — (только для чтения);
  • rotation — угол поворота;
  • target — (только для чтения);
  • framesLoaded — (только для чтения);
  • name;
  • dropTarget — (только для чтения);
  • url — (только для чтения);
  • highQuality — качество (1=высокое, 0=низкое);
  • focusRect;
  • soundBufTime.

Скажем, установить значение позиции спрайта дозволено выражением Bох.х = 100;. От того что Flash сберегает все компоненты анимации в древовидной структуре (подобно файловой системы Unix), исходный слеш указывает на массив объектов верхнего яруса; если спрайт box находится внутри спрайта biff, то выражение записывается так: box/biff.x = 100;.

Дальнейший пример перемещает алый квадрат по экрану.

<?php $s = new SWFShape():
$f = $s->addFill(Oxff. 0. 0);
Js->setRightFill($f):
$s->movePenTo(-500.-500):
$s->dravvLineTo(500. -500);
$s->drawLineTo(500.500):
$5->drawLineTo(-500.500):
$s->drawl_ineTo(-500.-500).
$p = new SWFSprite(); $1 = $p->add'.Ss):
$i->setDepth(l); $p->nextrrame().
for($P=0: $n<5; ++$n) {
$i->rotate(-15)- $p->nextFrame(). }
$m = new SWFMovie(); $m->setBackground
(Oxff. Oxff. Oxff): $m->setDimens->on(6000.4000).
$- - $m->add($p). $1->
<:etDepths.l). $i->movpTo(-600.2000):
$1->setName("box"):
Sm->add(new SUFActionC'/box x += 3;")):
$m->nextFrame():
$m->add(new SWFActionC" gotoFrame(()):
play(): ")): $m->nextFrame().
headert'Content-type: application/x-shockwave-flash'):
Sm-'0utput(): ?>

Приведенный ниже пример отслеживает перемещение мыши по экрану.

<?php
$m = new SWFMovie(): $ra->setRate(36.0);
$m->setDimension(]200 800): $m->setBackgrouncK(), 0. 0):
/* пустой спрайт для отслеживания х и у координат мыши */
$i = $m->add(new SWFSpriteO): $1->setName('mouse');
$m->add(new SWFActionC' startDrag('/mouse'. 1): ")):
// antialiasing дозволено отключить для квадратов.
$m->add(new SWFActionC' this quality = 0. ')):
$r = new SWFMorph() :/* morphing box */ $s = $r->getShapel():
$s->setLeftFill(Ss->addFill(Oxff. Oxff. Oxff)):
$s->movePenTo(-40. -40). Ss->drawLine(80. 0).
$s->drawLine(0. 80). $s->drawLine(-80. 0);
$s->drawl_me(0. -80): $s = $r->getShape2():
Ss->setLeftFill($s->addFill{OxOO. 0x00. 0x00)):
$s->movePenTo(-l. -1). .
$s->drawLine(2. 0): $s->drawLine(0. 2):
$s->drawLine(-2. 0). $s->drawl_ine(0. -2).
$box = new SWFSprite():
$box->add(new SWFActionC' stop(): ")):
$1 = $box->add($r) for($n=0; $n<-20: ++$n) {
$1->setRatio($n/20).
$box->nextFrame(): )
/* споайт контейнер разрешает многократно
применять действие */
Scell - new SWFSpnteO: $1 - $cell->add($box):
$i->setNarne( 'box'):
$cell->add(new SWFActionC'
setTarget('box'):
/* x - родительская координата, i.e. (..) x */
dx = (/mouse x + randoni(6)-3 - . ,x)/5
dy = (/mouse.у + random(6)-3 - .. y)/5:
gotoFramednt(dx*dx + dy*dy)): ")):
$cell->nextFrame():
Scell->add(new SWFActionC' gotoFrame(O): playO; "));
Scell->nextFrame():
/* добавим ячейки в анимацию */ for($x-0: $x<12: ++$х)
{ for($y-0- $y<8: ++$у) { $i = $m->add($cell):
$i->moveTo(100*$x+50. 100*$у+50): } }
$in->nextrrane():
$m->add(new SWFAcbon'" qotoFrame(l): playO. ")):
heacter('Content-type, application/x shockwave-flash1):
$m->output(): ?>

Тот же сценарий, но с цветными шариками...

<?рhр $т - new SWFMovie():
$m->setDimension(11000. 8000):
$m-->setBackground(OxOO. 0x00. 0x00):
$m >add(new SWFActionC' this.quality = 0
/frames.visible = 0: startDrag\'/mouse'. 1); ")):
// mouse tracking sprite $t nev. SWFSpnte():
$1 = $m->add($t): $1->setNdme('mouse'):
$g = new SWFGradientO $g->addEntry
(0. Oxff. Oxff. Oxff. Oxff). $g->addEntry
(0.1. Oxff. Oxff. Oxft. Oxff)' $g->addEntry
(0 5. Oxff. Oxff. Oxff. Ox5f): $g->addEntry
(1.0. Oxff. Oxff. Oxff. 0).
// gradient shape thing $ь - nev» SWFShape() .
$f - $s->addFill
($g. SWFFILL_RADiAL_GRADIENT):
$f->scaleTo(0.03): $s->setRightFni($f):
$5->movePenTo(-600. -600): $s->
drawLine(1200. 0): $s->drawLine
(0. 1200): $s->drawLine(-1200. 0):
$s->drawLine(0. -1200):
// need to make this a sprite so we
can multColor it $p = new SWFSprite():
$p->add($s): $p->nextFrame();
II put the shape in here, each frame
a different color Sq = new SWFSprite() :
$q->add(new SWFAction("gotoFrame(random
(7)+l). stop():")): $1 = $q->add($p);
$i->multColor(l.0. 1.0. 1.0): $q->nextFrame():
$i->multColor(1.0. 0.5. 0.5): $q->nextFrame().
$i->multColor(1.0. 0.75. 0.5): $q->nextFramef):
$i->multColor(1.0. 1.0. 0.5): $q->nextFrame():
$l->multColor(0.5. 1.0. 0.5): $q->nextFrame():
$i->multColor(0.5. 0.5. 1.0): $q->nextFrame():
$i->multfolor(1.0. 0.5. 1.0): $q->nextFrame().
// finally, this one contains the action code
$p = new SWFSpriteO: $1 = $p->add($q):
$i->setNameOframes'): $p->add(new SWFAction()
dx = (/:mousex-/:lastx)/3 + random(10)-5:
dy = (/:mousey-/:lasty)/3: x = /.mousex:
у = /:mousey; alpha = 100: ")):
$p->nextFrame(); $p->add(new SWFActionC
this.x = x: this у = у: this.alpha alpha:
x += dx: у += dy: dy +- 3; alpha -= 8; ")):
$p->nextFrame(). $p->add(new
SWFActlonC'prevFrame(): play():")):
$p->nextFrame(). Si = $m->add($p):
$1 ->setName('frames'): $m->nextFrame().
$m->add(new SWFActlonC1
lastx - mousex: lasty = mousey:
mousex - /mouse.x: mousey = /mouse.у: ++num:
if(num == 11) num = 1: removedip('char' & num):
duplicateClTp(/frames. 'char' & num. num): ")):
$m->nextFrame():
$m->add(new SWFActlonC'prevFrame(). play():")):
headert'Content-type:
application/x-shockwave-flash'): $m->output(): ?>

Дальнейший пример отслеживает нажатия клавши. Нужно, дабы фокус окна был энергичен.

<?php /* спрайт с буквой в всем кадре */
$р = new SWFSprite():
$р->add(new SWFAction("stop():")):
Schars - "abcdefghijklmnopqrstuvwxyz".
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"1234567890!l3|$^"&*()_+-=/[]{} ::..<>?'-";
$f = new SWFFont("_sans"):
for($n-0: $nremove($i); $t =
new SWFTextFieldO. $t->setFont($f).
$t->setHeight(240): $t->setBounds(600.240):
$t->align(SWFTEXTFIELD_ALIGN_CENTER):
$t->addString($c):
$т = $p->add($t); $p->labelFrame($c);
$p->nextFrame(): )
/* область нажатия для кнопки - кадр целиком */
Ss = new SWFShape():
is->setFillStyleO($s->addSolidFill(0. 0. 0. 0)).
;s->drawline(600. 0); :5->drawLine(0. 400).
Ss->drawLine(-600. 0); Ss->drawLine(0. -400):
/* кнопка проверяет нажатую клавишу и
переходи к соответствующему кадру */
5b = new SWFButton():
Sb->addShape($s. SWFBUTTON_HIT):
for($n=0; $naddAction(new SWFActionC'
setTargeK'/char');gotoFrame('$c');").
SWFBUTTON_KEYPRESS($c)):
$n = new SWFMovie(); Sm->setDimension(600.400):
S-. *= $m->add($p): Si->setName( 'char');
$i->moveTo(0.80), Sra->add($b)
heeder('Content-type: application/x-shockwave-flash'):
Sa->output(). ?>

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 поставляется отличная документация, описывающая возможности библиотеки. Имена функций и доводы одинаковы в библиотеке и РНР. Размеры и координаты измеряются в единицах Postscript (72 на дюйм), но это зависит от выбранного разрешения.

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

Версии ниже 3.0 pdflib не поддерживаются в РНР 4. Для компиляции РНР с библиотекой pdflib используйте параметр — enable-shared-pdftib.

<?php $fp = fopenC'test.pdf". "w"):
$pdf = pdf_open($fp):
pdf_set_info($pdf. "Author". "Uwe Steinmann").
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. "textrendenng". 1):
pdf_show_xy($pdf. "Times Roman outlined". 50. 750);
pdf_moveto($pdf. EO. 740); .
pdf_hneto($pdf. 330. 740).
pdf_stroke($pdf). pdf_end_page($pdf):
pdf_close($pdf): fclose($fp):
echo "<A HRFF=getpdf.php>finished</A>":
<?php // сценарий getpdf.php.
примитивно возвращает документ pdf '
$fp = fopenC'test.pdf". "r")
headert"Content-type: applncation/pdf").
fpassthru(Sfp); fclose($fp): ?>

Пример из комплекта pdflib создает документ, состоящий из страниц с изображением часов (всякая страница показывает нынешнее время создания):

<?php $pdffilename = "clock.pdf": // имя файла
Sradius = 200: // радиус циферблата
Smargin =20: // поля страницы
Spagecount =40; // число страниц
$fp = fopen($pdffilename. "w"). $pdf = pdf_open($fp);
while($pagecount-- > 0) {
pdf_begin_page($pdf. 2 * (Sradius + Smargin).
2 * (Sradius + Smargin)):
pdf_set_parameter($pdf. "transition", "wipe"):
pdf_set_value($pdf. "duration". 0.5).
pdf_translate(Spdf. $radius + Smargin. Sradius + Smargin):
pdf_save(Spdf): pdf_setrgbcolor($pdf. 0.0 0 0. 1.0):
/* минутные метки */ pdf_cetlinewidth($pdf. 2 0):
for (.«alpha - 0: Salpha < 360: Salpha += 6) {
pdf_rotate($pdf. 6.0): pdf_moveto($pdf. Sradius. 0.0):
pdf_lineto($pdf. Sradius-Smargin/3. 0.0):
pdf_stroke(Spdf): } pdf_restore($pdf): pdf_save($pdf):
/* 5 минутные метки */ pdf_setlinewidth($pdf. 3.0):
for (Salpha - 0: Salpha < 360: Salpha += 30) {
pdf_rotate($pdf. 30.0):
pdf_moveto(Spdf. Sradius. 0.0):
L pdf_11neto($pdf. $radius-$margin. 0.0).
pdf_stroke(Spdf): $ltime = getdate():
/* часовая стрелка */ pdf_save($pdf):
pdf_rotate($pdf.-((SItime['minutes']/60.0)+
ntfme['hours']-3.Q)*30.0): pdf_moveto
($pdf. -Sradius/10. -Sradius/20):
pdf_lineto($pdf. $radius/2. 0.0):
pdf_lineto($pdf. -Sradius/10. Sradius/20):
pdf_closepath($pdf). pdf_fill($pdf): pdf_restore(Spdf):
/* минутная стрелка */ pdf_save(Spdf):
paf_rotate($pdf.(($ltime['seconds']/60 0)+
SltimeC'rmnjtes'MS.): pdf_moveto
($pdf. -$radius.'10. -$radius/20); pdf_lineto
($pdf. Sradius * 0.8. 0 0): pdf_lineto(
$pdf. -$radius/i(). $radius/20): pdf_closepath($pdf):
pdf_fi)l($pdf); pdf_restore($pdf):
/* секундная стрелка */
pdf_setrgbcolor($pdf. 1.0. 0.0. 0.0);
pdf_setlinewidth($pdf. 2): pdf_save($pdf):
pdf_rotate($pdf. -((SltTmei'seconds'] - 15.0) *6.0)):
pdf_moveto($pdf. -$radius/5. 0.0).
pdf_lineto($pdf. Sradius. 0.0);
pdf_stroke($odf); pdf_restore($pdf):
/* центр */ pdf_circle($pdf. 0. 0. $radius/30):
pdf_fnH$pdf): pdf_restore($pdf);
pdf_end_page($pdf); } $pdf - pdf_close($pdf):
fclose($fp): $fp = fopen($pdffilename. "r");
header("Content - type: appli cati on/pdf");
fpassthru($fp): fclose($fp): ?>

pdf_set_info

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

void pdf set_info (int pdf_document. string fieldname, string value)

Допустимые поля fieldname: «Subject», «Title», «Creator», «Author», «Keywords» и одно, определяемое пользователем. Функция должна вызываться до создания страниц.

<?рhр $fd = fopent"test.pdf". "w"):
Spdfdoc - pdf open($fd).
pdf_set_1nfo($pdfdoc. "Author". "Имя автора");
pdf_setjnfo($pdfdoc. "Creator". "Наименование создателя");
pdf set info($pdfdoc. "Title", "Заголовок");
pdf_set_mfo($pdfdoc. "Subject". "Тема");
pdf_set_info($pdfdoc. "Keywords". "Ключевые, слова");
pdf_set_info($pdfdoc. "CustomField".
"Чего-то еще"); pdf_beg-in_page($pdfdoc. 595. 842);
pdf_end_page($pdfdoc). pdf_close($pdfdoc); ?>

Эта функция заменяет собой pdf_set_infoj<;e.ywords(), pdf_set_info_ title(), pdf_set_info_subject(), pdf_set_info_creator(), pdf_set_info_ sybject().

pdf_open

Открытие нового документа pdf 'int pdf_open (int file)

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

См. также: fopen(), pdf_close().

pdf_close

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

void pdf_close (int pdf_document)

См. также: pdf_open(), fclose().

pdf begin_page

Предисловие новой страницы

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

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

См. также pdf_end_page().

pdf_end_page

Заключение страницы

void pdf_end_page (int pdf_docuraent)

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

См. также pdf_begin_page().

pdf_show

Итог текста в нынешнюю позицию

void pdf_show (int pdf_document, string text)

Для итога применяются нынешняя позиция и нынешний шрифт.

См. также: pdf_show_xy(), pdf_show_boxed(), pdf_set_text_pos(), pdf_set_ font().

pdf_show_boxed

Итог текста в прямоугольную область

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

Левый нижний угол области итога задается (х,у); высота и ширина — height, width. Довод mode определяет выравнивание текста: если высота и ширина равна нулю, то допустимы значения: «left», «right» либо «center», если они не равны нулю, то — «justify» либо «full justify».

Если довод feature содержит значение «blind», текст не отображается.

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

См. также: pdf_show(), pdf_show_xy().

pdf_show_xy

Итог текста в указанную позицию

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

См. также: pdf_show(), pdf_show_boxed().

pdf_set_font

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

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

Довод вида кодировки encoding может принимать значения: «win-ansi» (по умолчанию), <-builtin», «host», «macroman» и т. п. Если для последнего довода задано значение 1, шрифт будет внедрен в документ pdf (напротив, нет). Если шрифт распространен, внедрять его не следует из-за увеличения размера документа.

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

pdf_ set_ leading

Установка интервала между строками текста void pdf_set_leading (int pdf_document, double distance) Применяется при итоге текста функцией pdf_continue_text().

См. также pdf continue text().

pdf_set_parameter

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

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

См. также: pdf_get_value(), pdf_set_value(), pdf_get_parameter().

pdf_get_parameter

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

string pdf_get_parameter (int pdf_doc, string name [, double modifier])

Довод modifier применяется при необходимости.

См. также: pdf_get_value(), pdf_set_value(), pdf_set_parameter().

pdf_set_value

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

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

См. также: pdf_get_value(), pdf_get_parameter(), pdf_set_parameter().

pdf_get_value

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

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

Довод modifier применяется при необходимости.

См. также: pdf_set_value(), pdf_get_parameter(), pdf_set_parameter().

pdf_set_text_rendering

Установка способа итога текста

void pdf_set_text_rendering (int pdf_document, int 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_show(), pdf_show_xy().

pdf_set_char_spacing

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

void pdf_set_char_spacing (int pdf_document, double space)

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

См. также: pdf_set_word_spacing(), pdf_set_leading().

pdf_set_word_spacing

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

void pdf_set_word_spacing (int pdf_document, double space)

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

См. также: pdf_set_char_spacing(), pdf_set_leading().

pdf_skew

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

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

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

pdf_continue_text

Итог текста со дальнейшей строки

void pdf_continue_text (int pdf_docuraent, string text)

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

См. также: pdf_show_xy(), pdf_set_leading(), pdf_set_text_pos().

pdf_stringwidth

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

double pdf strnngwidth (int pdf document, string text)

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

См. также pdf_set_font().

pdf_save

Сохранение нынешних установок

void pdf_save (int pdf_document)

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

См. также pdf_restore().

pdf_restore

Поправление ранее сохраненных установок

void pdf_restore (int pdf_document)

Восстанавливает установки, сохраненные pdf_save(). Действует аналогично команде postscript grestore.

<?php rdf_save($pdf):
// каждые вращения и трансформации ...
pdf_reitore($pdf) ?>

См. также pdf_save().

pdf_translate

Установка начала системы координат

j void pdf_translate (int pdf_document, double x, double y) Координаты указываются касательно нынешней точки отсчета. После этого, до начала рисования объектов, требуется установить нынешнюю точку.

<?php pdf_moveto($pdf. 0. 0). pdf_lireto
($pdf. 100. 100). pdf_stn>ke($pd*):
pdfJranslateOpdf. 100. 100): pdf_mweto($pdf. 0. 0);
pdfjireto($pdf. 100. 100): pdf_stroke($pdf): ?>

pdf_scale

Установка масштабирования

void pdf_scale (int pdf_document, double x_scale, double y_scale)

<?pho pdf_scale($pdf. 72 0, 72.0).
pdf_llneto($pdf. l. 1): // дюйм
pdf_stroke($pdf). ?>

pdf_rotate

Установка угла вращения в градусах

void pdf_rotate (int pdf_document, double angle)

pdf_setflat

Установка равномерности

void pdf_setflat (int pdf_document, double value)

Допустимые значения параметра — от 0 до 100.

pdf_setlinejoin

Установка параметра linejoin

void pdf_setlinejoin (int pdf_document. long value)

Допустимые значения параметра — от 0 до 2.

pdf_setlinecap

Установка параметра linecap

void pdf_setlinecap (int pdf document, int value)

Допустимые значения параметра — от 0 до 2.

pdf_setmiterlimit

Установка параметра miter limit

void pdf_setmiterlimit (int pdf_document. double value)

Допустимые значения параметра — 1 и больше.

pdf_setlinewidth

Установка ширины строк

void pdf_setlinewidth (int pdf_document. double width)

pdf_setdash

Установка вида штриховки

void pdf_setdash (int pdf_document. double white, double black)

Устанавливает размер белых и черных полос. Если оба довода равны 0, то линия будет постоянной.

pdf_moveto

Установка нынешней точки

void pdfjnoveto (int pdf_document, double x, double y)

pdf_curveto

Черчение косой

void pdf_curveto (int pdf_document, double xl, double yl, double x2, double y2, double x3, double y3)

Чертит кривую Безьс от нынешней точки до (хЗ.уЗ), применяя точки (xl.yl) и (х2,у2) как ориентирующие.

См. также: pdfjnoveto(), pdf_lineto(), pdf_stroke().

pdf_lineto

Черчение отрезка

void pdfjineto (int pdf_document, double x, double y)

Чертит линию от нынешней точки до указанной (х,у).

См. также: pdf_moveto(), pdf_curveto(), pdf_stroke().

pdf_circle

Черчение окружности

void pdf_circle (int pdf_document, double x, double y, double radius)

См. также: pdf_arc(), pdf_stroke().

pdf_arc

Черчение дуги

void pdf_arc (int pdf_document, double x, double y, double radius, double start, double end)

Начальный и финальный угол задаются start и end.

См. также: pdf_circle(), pdf_stroke().

pdf_rect

Черчение прямоугольника

void pdf_rect (int pdf_document, double x, double y, double width, double height)

Левый нижний угол задается (х,у); высота и ширина — height, width.

См. также pdf_stroke().

pdf_closepath

Заключение нынешнего пути

void pdf_closepath (int pdf_document)

Чертит линию от нынешней точки до точки, где начиналась первая линия. Многие функции, скажем pdfjnovetoO, pdf_circle(), pdf_rect(), начинают новейший путь.

pdf_stroke

Заштриховка пути

void pdf_stroke (int pdf_document)

Нынешний путь — это общность всех линий. Без этой функции линии начерчены не будут.

См. также: pdf_closepath(), pdf_c1osepath_stroke().

pdf_closepath_stroke

Черчение и закрытие пути

void pdf_closepath_stroke (int pdf_document)

Это комбинация pdf_closepath() и pdf_stroke().

См. также: pdf_closepath(), pdf_stroke().

pdf_fill

Заполнение пути цветом

void pdf_fill (int pdf_document)

См. также: pdf_closepath(), pdf_stroke(), pdf_setgray_fill(), pdf_setgray(), pdf_setrgbcolor_fiTl (), pdf_setrgbcolor().

pdf_fill_stroke

Заполнение пути цветом и закрытие его

void pdf_fill_stroke (int pdf_document)

См. также: pdf_closepath(), pdf_stroke(), pdf_fill(), pdf_setgray_fill(), pdf_setgray(), pdf_setrgbcolor_fill(), pdf_setrgbcolor().

pdf_closepath_fill_stroke

Черчение, закрашивание и закрытие пути

void pdf_dosepath_fin_stroke (int pdfjjocument)

См. также: pdf_closepath(), pdf_stroke(), pdf_fill(), pdf_setgray_fill()) pdf_setgray(), pdf_setrgbcolor_fiTI(), pdf_setrgbcolor().

pdf_endpath

Заключение пути без его закрытия void pdf_endpath (int pdf_document)

См. также pdf_dosepath().

pdf_clip

Присоединение всех линий к нынешнему пути

void pdf_c!ip (int pdf_docuraent)

pdf_setgray_fill

Установка заполнения серым цветом

void pdf_setgray_fill (int pdfjjocument, double gray_value)

См. также pdf_setrgbcolor_fill ().

pdf_setgray_stroke

Установка штриховки серым цветом

void pdf_setgray_stroke (int pdf_document, double gray_value)

См. также pdf_setrgbcolor_stroke().

pdf_setgray

Установка заполнения и штриховки серым цветом

void pdf_setgray (int pdf_document, double grayj/alue)

См. также: pdf_setrgbcolor_stroke(), pdf_setrgbcolor_fill().

pdf_setrgbcolor_fill

Установка заполнения цветом rgb

void pdf_setrgbcolor_fill (int pdf_document, double red_value, double green_value, double blue_value)

См. также pdf_setrgbcolor_fill().

pdf_setrgbcolor_stroke

Установка штриховки цветом rgb

void pdf_setrgbcolor_stroke (int pdfjjocument, double red_value, double green_value, double blue_value)

См. также pdf_setrgbcolor_stroke().

pdf_setrgbcolor

Установка заполнения и штриховки серым цветом rgb

void pdf_setrgbcolor (int pdf_document, double red_value, double green_value, double blue_value)

См. также: pdf_setrgbcolor_stroke(), pdf_setrgbcolor_fill().

pdf_add_outline

Добавление закладки для нынешней страницы

int pdf_add_outline (int pdf_ document, string text [, int parent [, int open]])

Наименование закладки определяется доводом text. Она становится дочерним объектом объекта parent и по умолчанию открыта (если довод open не равен 0). Возвращается идентификатор закладки, тот, что может применяться как родительский для других закладок.

pdf_set_transition

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

void pdf_set_transition (int pdf_document, int transition)

Используйте функцию PDF_set_parameter() с параметром «transition».

См. также pdf_set_duration().

pdfset_duration

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

void pdf_set_duration (int pdfjiocument, double duration)

См. также pdf_set_transition().

pdf_open_gif

Открытие рисунка GIF

int pdf_open_gif (int pdf_document, string filename)

Используйте функцию pdf_open_image_file().

<?php $im = pdf_open_gif($pdf. "test.gif"):
pdf_place_image($pdf. $im. 100. 100. 1):
pdf_close_image($pdf. Sim): ?> "

pdfopen_png

Открытие рисунка PNG

int pdf_open_png (int pdf, string png_file)

Используйте функцию pdf_open_image_file().

pdf_openjpeg

Открытие рисунка JPEG

int pdf_ppen_jpeg (int pdf_document, string filename)

Используйте функцию pdf_open_image_file().

pdf_open_tiff

Открытие рисунка TIFF

int pdf_open_tiff (int PDF-document, string filename)

Используйте функцию pdf_open_image_file().

pdf_open_image_file

Чтение рисунка из файла

int pdf_open_image_file (int PDF_document, string format, string filename)

Загружает рисунок формата format из файла filename и возвращает его идентификатор. Допустимые форматы: PNG, TIFF, JPEG и GIF.

<?php $pim = pdf_open_image_file
($pdf. "png". "picture.png");
pdf place_image($pdf. $plm. 100, 100. 1):
pdf_close_image($pdf. Spim); ?>

Функция заменяет pdf_open_jpeg(), pdf_open_gif(), pdf_open_tiff(), pdf_ open_png().

См. также: pdf_close_image(), pdf_execute_image(), pdf_place_image(), pdf_ put_image().

pdf_open_memory_image

Открытие рисунка, сделанного графическими функциями PHP

int pdf_open_memory_image (int pdfjJocument, int image)

Функция принимает дескриптор рисунка, сделанного PHP, и делает его доступным для документа pdf. Функция возвращает идентификатор рисунка pdf.

<?php // Example: Including a memory image
$im = ImageCreateClOO. 100);
$col = ImageColorAllocate($im. 80. 45. 190);
ImageFiimim. 10. 10, $col);
$pim = pdf_open_memory_image($pdf. $im):
ImageDestroy($im):
pdf_place_image($pdf. $pim. 100. 100, 1);
pdf_close_image($pdf. Spim): ?>

См. также: pdf_clo.scjmage(), pdf_executejmage(), pdf_place_image(), pdf_ put_iraage().

pdf_closejmage

Закрытие рисунка

void pdf_close_image (int image)

Закрывает рисунок, открытый функциями pdf_open_ ().

См. также: pdf_open_jpeg(), pdf_open_gif(), pdf_open_memory_image().

pdf_get_image_height

Установка высоты рисунка в пикселах

string pdf_get_image_height (int pdf_document, int image)

См. также: pdf_open_image_file(), pdf_open_memory_image(), pdf_get_image_ width().

pdf_get_image_width

Установка ширины рисунка в пикселах

string pdf_get_image_width (int pdf_document. int image)

См. также: pdf_open_itnage_file(), pdf_openjnemory_image(), pdf_get_image_ height().

pdf_placejmage

Размещение рисунка на странице

void pdf_p!ace_image (int pdf_doc, int image, double x, double y, double scale)

Позиция размещения задается (х,у); масштаб — scale.

См. также pdf_put_image().

pdf_put_image

Сохранение рисунка в PDF для последующего использования

void pdf_put_inage (int pdf_document, int image)

Внедряет рисунок в документ без его отображения. После этого рисунок может быть помещен на странице функцией pdf_execute_image() нужное число раз. Благотворно при многократной вставке рисунка (уменьшается размер файла).

Начиная с версии 2.01 pdflib функция непотребна и выводит только предупреждение.

См. также: pdf_place_image(), pdf_execute_image().

pdf_execute_image

Размещение сохраненного рисунка на странице

void pdf_execute_image (int pdf_document, int image, double x, double y, double scale) :

Отображает рисунок, внедренный функцией pdf_put_image().

Начиная с версии 2.01 pdflib функция непотребна и выводит только предупреждение.

Example I. Multiple show of an image
<?php
Sim = ImageCreatedOO. 100);
Scoll = ImageColorAllocate($im. 80. 45. 190);
ImageFill($im. 10. 10. Scoll):
$pim = pdf_open_memory_image($pdf. Sim);
pdf_put_image($pdf. $pim);
pdf_execute_image($pdf, $pim. 100. 100. 1);
pdf_execute_image($pdf. $pim. 200. 200. 2); // 200 %
pdf_close_image($pdf. $pim); ?>

pdf__add_annotation

Добавление примечания

void pdf_add_annotation (int pdf_document, double llx. double lly, double urx. double ury, string title, string content)

Примечание располагается в левом нижнем углу (Их, Пу), верхний правый угол (urx. ury).

pdf_set_border_style

Установка жанра обрамления примечаний и гиперссылок

void pdf_set_border_style (int pdf_document. string style, double width)

Довод style может принимать значения «solid» либо «dashed». Ширина задастся доводом width.

См. также: pdf_set_border_color(). pdf_set_border_dash().

pdf_set_border_color

Установка цвета обрамления ссылок и примечаний

void pdf_set_border_color (int pdf_document, double red, double green, double blue)

Три компонента цвета могут принимать значения из диапазона от 0.0 до 1.0.

См. также: pdf_set_border_style(), pdf_set_border_dash().

pdf_set_border_dash

Установка жанра окантовки ссылок и примечаний

void pdf_set_border_dash (int pdf_document. double black, double white)

Устанавливает длину черных и белых полос прерывистых линий.

См. также: pdf_set_border_style(), pdf_set_border_color().

ClibPDF

Библиотека ClibPDF дозволяет PHP создавать документы PDF. Она не является всецело вольно распространяемой. Библиотека действует аналогично pdflib, но создает документы меньшего размера с большей скоростью.

При необходимости воспользуйтесь документацией, поставляемой с ClibPDF.

Все функции, за исключением cpdf_open(), принимают в качестве своего первого довода дескриптор открытого документа.

В текущее время ClibPDF, в различие от pdflib, не разрешает единовременно трудиться с несколькими документами. Но она способна создавать документы в памяти, не применяя непостоянный файл. Допустимо также модифицировать всякую страницу.

<?php defineC'PPM". 2.83464566929):
// пойнтов в миллиметре Scpdf = cpdf_open(0)
cpdf_page_imt($cpdf. 1. 0. 595. 842. PPM);
cpdf_add_outlт netScpdf. 0. 0. 0. 1. "Page 1"):
cpdf_begin_text(Scpdf).
cpdf_set_font($cpdf. "Times-Roman" 30.
"WinAnsiEncoding"); cpdf_set_text_rendering($cpdf. 1):
cpdf_text($cpdf. "Times Roman outlined". 50. /50).
cpdf_end_text(Scpdf): cpdf_moveto(Scpdf. 50. 740).
cpdf_11neto(Scpdf. 330. 740). cpdf_stroke(Scpdf):
cpdf_final1ze($cpdf);
Header("Content-type: application/pdf"):
cpdf_output_buffer(Scpdf):
cpdf_close(Scpdf); ?>

Пример из комплекта pdflib дозволено применять для сопоставления 2-х библиотек.

<?php Sradius - 200-
Smargin - 20: Spagecount * 40.
$pdf -= cpdf_open(0):
cpdf_set_creator(Spdf. "pdf_clock.php3");
cpdf_set_title(Spdf. "Analog Clock").
while(Spagecount-- > 0) {
cpdf_page_imt(Spdf. $pagecount+l. 0. 2 *
(Sradius + Smargin). 2 * (Sradius * Smargin). 1.0).
cpdf_set_page_ammation($pdf. 4. 0 5. 0. 0. 0); /* wipe */
cpdf_translate
(Spdf. Sradius + Smargin. Sradius + Smargin):
cpdf_save(Spdf); cpdf_setrgbcolor(Spdf. 0.0. 0.0. 10):
/* minute strokes */ cpdf_setl-mew1dth($pdf. 2.0):
for ($alpha = 0: $alpha < 360: $alpha += 6) {
pdf_rotate($pdf. 60). cpdf_moveto($pdf. Sradius. 0 0).
cpdf_lineto($pdf. $radius-$margin/3. 0.0):
cpdf_stroke($pdf): }
cpdf_restore($pdf): cpdf_save($pdf):
/* 5 minute strokes */ cpdf_setlinewidth($pdf. 3.0):
for (Salpha = 0: $alpha < 360: $alpha += 30) {
cpdf_rotate($pdf. 30.0): cpdf_moveto($pdf. $radius. 0.0):
cpdf_lineto($pdf. $radius-$margin. 0 0):
cpdf_stroke($pdf); } Sltime -= getdatet):
/* draw hour hand */ cpdf_save($pdf):
cpdf_rotate($pdf. -(($ltime['minutes']/60 0)
+ $ltime['hours'] - 3.0) * 30.0): cpdf_moveto
($pdf. -$radius/10. -$radius/20): cpdfjineto
($pdf. $radius/2. 0 0): cpdf_hneto
($pdf. -$radius/10. $radius/20): cpdf_closepath
($pdf): cpdf_filK$pdf): cpdf_restore($pdf):
/* draw minute hand */ cpdf_save($pdf):
cpdf_rotate($pdf. -(($ltime['seconds']/60 0)
+ $ltime['minutes'] - 15.0) * 6.0): cpdf_moveto
($pdf. -$radius/10. -$radius/20). cpdf_lineto
($pdf. Sradius * 0.8. 0.0): cpdf_lineto
($pdf. -$radius/10. $radius/20): cpdf_closepath($pdf).
cpdf_fill($pdf): cpdf_restore($pdf):
/* draw second hand */ cpdf_setrgbcolor($pdf. 1.0. 0.0. 0.0):
cpdf_setlmewidth($pdf. 2): cpdf_save($pdf).
cpdf_rotate($pdf. -((Sltimefseconds'] - 15.0) * 6.0)):
cpdf_moveto($pdf. -$radius/5. 0.0): cpdf_lineto($pdf. Sradius. 0.0):
cpdf_stroke($pdf): cpdf_restore($pdf):
/* draw little circle at center
*/ cpdf_circle($pdf. 0. 0. $radius/30): cpdf_fill($pdf):
cpdf_restore(Spdf); cpdf_finalize_page($pdf. $pagecount+l); }
cpdf_finalize($pdf):
cpdf_save_to_file($pdf."e:\\clock.pdf"); cpdf_close($pdf): ?>

cpdf_global_set_document_limits

Установка ограничения для всех документов

void cpd8f_global_set_document_limits (int maxpages. int maxfonts, int maximages, int raaxannotations. int maxobjects)

Функцию следует вызывать до cpdf_open().

См. также cpdf_open().

cpdf_set_creator

Заполнение поля «создатель документа»

void cpdf_set_creator (string creator)

См. также: cpdf_set_subject(), cpdf_set_title(), cpdf_set_keywords().

cpdf_set_title

Заполнение поля «заголовок документа»

void cpdf_set_title (string title)

См. также: cpdf_set_subject(), cpdf_set_creator(), cpdf_set_keywords().

cpdf_set_subject

Заполнение поля «тема документа»

void cpdf_set subject (string subject)

См. также: cpdf_set_title(), cpdf_set_creator(), cpdf_set_keywords().

cpdf_set_keywords

Заполнение поля «ключевые слова документа»

void cpdf_set_keywords (string keywords)

См. также: cpdf_set_tit!e(), cpdf_set_creator(), cpdf_set_subject().

cpdf_open

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

int cpdf_open (int compression [, string filename])

Первым доводом дозволено указать надобность сжатия документа (если он не равен 0). Если указывается 2-й довод, то документ будет создаваться в файле, а не в памяти. Имя файла «-» указывает на типовой поток итога (это пока не работает с Apache).

Возвращаемый дескриптор применяется всеми после/чующими функциями.

См. также: cpdf_close(), cpdf_output_buffer(), cpdf_save_to_file().

cpdf_close

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

void cpdf_close (int pdfjJocument)

Эту функцию следует вызывать последней, даже позже cpdf_finalize(), cpdf_output_buffer() либо cpdf_save_to_file().

См. также cpdf_open().

cpdf_page_init

Предисловие новой страницы

void cpdf_page_init (int pdf_document, int pagejiumber, int orientation, double height, double width [, double unit])

Параметры новой страницы: page_number — ее номер, orientation — ориентация (0 — вертикальная, 1 — горизонтальная), высота height и ширина width; добровольный довод unit указывает разрешение в точках на дюйм (по умолчанию — 72).

См. также cpdf_set_current_page().

cpdf_finalize_page

Заключение указанной страницы

void cpdf_finalize_page (int pdf_document, int page_number) Позже этого страница не может модифицироваться.

См. также cpdf_page_init().

cpdf_finalize

Заключение документа

void cpdf_fina!ize (int pdf_document)

Позже этого нужно вызвать cpdf_close().

См. также cpdf_close().

cpdf_output_buffer

Итог документа из буфера памяти

void cpdf_output_buffer (int pdf_document)

Выводит документ на типовой поток итога (отсылает браузеру). Для этого документ должен быть сделан в памяти (а не в файле).

См. также cpdf_open().

cpdf_save_to_file

Запись документа в файл

void cpdf save_to_file (int pdf_document, string filename)

Функция не требуется, если документ первоначально создавался в файле.

См. также: cpdf_output_buffer(), cpdf_open().

cpdf_set_current_page

Установка нынешней страницы

void cpdf_set_current_page (int pdf_document, int page number)

Все дальнейшие операции будут проводиться на данной странице. Между страницами дозволено переключаться до вызова cpdf_fina1ize_ page().

См. также cpdf_finalize_page().

cpdf_begin_text

Предисловие текстового раздела

void cpdf_begin_text (int pdf_document)

Раздел должен быть закончен функцией cpdf_end_text().

<?php cpdf_begi n_text($pdf);
cpdf_set_font($pdf. 16. "Helvetica". "WinAnsiEncoding"):
cpdf_text($pdf, 100. 100. "Some text"): cpdf_end_text($pdf) ?>

См. также cpdf_end_text().

cpdf_end_text

Заключение текстового раздела

void cpdf_end_text (int pdf_document) Завершает раздел, начатый cpdf_begin_text().

См. также cpdf_begin_text().

cpdf_show

Итог текста в нынешнюю позицию

void cpdf_show (int pdf_document, string text)

См. также: cpdf_text(), cpdf_begin_text(), cpdf_end_text().

cpdf_show_xy

Итог текста в указанную позицию

void cpdf_show_xy (int pdfjjoc, string, text, double x, double у [, int mode])

Доводом mode дозволено указать используемое разрешение (если указывается 0, то применяется разрешение по умолчанию).

Функция одинакова cpdf_text() без необязательных доводов.

См. также cpdf_text().

cpdf_text

Итог текста с параметрами

void cpdf_text (int pdf_document, string text, double x, double у [, int mode [, double orientation [, int alignmode]]])

Параметр orientation задает вращение строки в градусах, a alignmode — выравнивание текста.

См. документацию ClibPdf касательно допустимых значений.

См. также cpdf_show_xy().

cpdf_set_font

Выбор нынешнего шрифта

void cpdf_set_font (int pdf_doc, string font_name, double size, string encoding)

Выбирает нынешний шрифт, его размер и кодировку. В текущее время поддерживаются только типовые шрифты postscript. Кодировка может быть указана значениями «MacRomanEncoding», «Mac-ExpertEncoding», «WinAnsiEncoding» и «NULL» (применять встроенную).

См. также документацию ClibPDF.

cpdf_set_leading

Установка межстрочного расстояния

void cpdf_set leading (int pdf_document, double distance) Применяется при итоге текста функцией cpdf_continue_text().

См. также cpdf_continue_text().

cpdf_set_text_rendering

Установка режима итога текста

void cpdf_set_text_rendering (int pdfjJocument, int mode)

Допустимые значения довода mode: 0 (текст с заполнением), 1 (контурный текст), 2 (заполненный контурный текст), 3 (заметный), 4 (заполненный текст, прикрепленный к пути), 5 (контурный текст, прикрепленный к пути), 6 (заполненный контурный текст, прикрепленный к пути), 7 (текст, прикрепленный к пути).

cpdf_set_horiz_scaling

Установка горизонтального разрешения

void cpdf_set_horiz_scaling (int pdfjJocument, double scale)

cpdf_set_text_rise

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

void cpdf_set_text_rise (int pdf_document, double value)

cpdf_set_text_matrix

Установка матрицы реформирования шрифта

void cpdf_set_text_matrix (int pdfjJocument, array matrix)

cpdf_set_text_pos

Установка позиции текста

void cpdf_set_text_pos (int pdfjJocument, double x, double у [, int mode])

Устанавливает позицию итога текста дальнейшим вызовом cpdf_ show().

Параметром mode дозволено указать разрешение.

См. также: cpdf_show(), cpdf_text().

cpdf_set_char_spacing

Установка межсимвольного промежутка

void cpdf_set_char_spacing (int pdf_document, double space)

См. также: cpdf_set_word_spacing(), cpdf_set_leading().

cpdf_set_word_spacing

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

void cpdf_set_word_spacing (int pdf_document, double space)

См. также: cpdf_set_char_spacing(), cpdf_set_leading().

cpdf_continue_text

Итог текста со дальнейшей строки

void cpdf_continue_text (int pdf_document, string text)

См. также: cpdf_show_xy(), cpdf_text(), cpdf_set_leading(), cpdf_set_text_ pos().

cpdf_stringwidth

Вычисление ширины строки с применением нынешнего шрифта

double cpdf_stringwidth (int pdf_document, string text)

См. также cpdf_set_font().

cpdf_save

Сохранение нынешних установок

void cpdf_save (int pdfjjocument)

См. также cpdf_restore().

cpdf_restore

Поправление ранее сохраненных установок

void cpdf restore (int pdf document)

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

<?php cpdf_save($pdf);
// любые вращения и трансформации ...
cpdf_restore($pdf) ?>

См. также cpdf_save().

cpdf_translate

Установка начала системы координат

void cpdf_translate (int pdf_doc. double x, double у [. int mode])

cpdf_scale

Установка масштабирования

void cpdf_scale (int pdf_document, double x-scale, double-scale)

cpdf_rotate

Установка угла вращения в градусах

void cpdfj-otate (int pdf_document, double angle)

cpdf_setflat

Установка равномерности

void cpdf_setflat (int pdfjlocument. double value)

Допустимые значения параметра — от 0 до 100.

cpdf_setlinejoin

Установка параметра linejoin

void cpdf_setlinejoin (int pdf_document, long value)

Допустимые значения параметра — от 0 до 2 (0 = miter, 1 = round, 2 = bevel).

cpdf_setlinecap

Установка параметра linecap

void cpdf_setlinecap (int pdf_document, int value)

Допустимые значения параметра — от 0 до 2 (0 = butt end, I = round, 2 = projecting square).

cpdf_setmiterlimit

Установка параметра miter limit

void cpdf_setmiterlimit (int pdf_document, double value)

Допустимые значения параметра — 1 и больше.

cpdf_setlinewidth

Установка ширины строк

void cpdf_setlinewidth (int pdf_document, double width)

cpdf_setdash

Установка вида штриховки

void cpdf_setdash (int pdf_document, double white, double black)

Устанавливает размер белых и черных полос. Если оба довода равны 0, то линия будет постоянной.

cpdf_newpath

Предисловие нового пути

void cpdf_newpath (int pdfjjocument)

cpdf_moveto

Установка нынешней точки

void cpdfjraveto (int pdf_document, double x. double у [, int mode])

cpdf_rmoveto

Смещение нынешней точки

void cpdf_rmoveto (int pdf_doc, double x, double у [, int mode])

См. также cpdf_moveto().

cpdf_curveto

Черчение косой

void cpdf_curveto (int pdf_document. double xl, double yl. double x2, double y2, double x3, double y3 [, int mode])

Чертит кривую Безье от нынешней точки до (хЗ.уЗ), применяя точки (xl.yl) и (х2,у2) как ориентирующие.

См. также: cpdf_moveto(), cpdf_rmoveto(), cpdf_rlineto(), cpdf_lineto().

cpdf_lineto

Черчение линии

void cpdf_lineto (int pdf_document, double x, double у [, int mode])

Чертит линию от нынешней точки до указанной (х,у).

См. также: cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto().

cpdf_rlineto

Черчение отрезка

void cpdf_rlineto (int pdf_document. double x, double у [, int mode]) Координаты (х,у) указываются касательно нынешней точки.

См. также: cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto().

cpdf_circle

Черчение окружности

void cpdf_circle (int pdf_document, double x, double y, double radius [, int mode])

См. также cpdf_arc().

cpdf_arc

Черчение дуги

void cpdf_arc (int pdf_document, double x-соог, double y-coor. double radius, double start, double end [, int mode])

Исходный и финальный угол задаются start и end.

См. также cpdf_circle().

cpdf_rect

Черчение прямоугольника

void cpdf_rect (int pdf_document, double x, double y, double width, double height [, int mode])

Левый нижний угол задается (х,у); высота и ширина — height, width.

cpdf_closepath

Заключение нынешнего пути

void cpdf_closepath (int pdfjiocument)

cpdf_stroke

Заштриховывание пути

void cpdf_stroke (int pdfjiocument)

См. также: cpdf_closepath(), cpdf_closepath_stroke().

cpdf_closepath_stroke

Черчение и закрытие пути

void cpdf_closepath_stroke (int pdf_document)

Это комбинация cpdf_closepath() и cpdf_stroke().

См. также: cpdf_closepath(), cpdf_stroke().

cpdf_fill

Заполнение пути нынешним цветом

void cpdfjfin (int pdf_document)

См. также: cpdf closepath(), cpdf_stroke(), cpdf_setgray_fill(), cpdf_ setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor().

cpdf_fill_ stroke

Заполнение пути цветом и закрытие его

void cpdf_fill_stroke (int pdf_document)

См. также: cpdf_closepath(), cpdf_stroke(), cpdf_fill(), cpdf_setgray_ fill(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor().

cpdf_closepath_fill_stroke

Черчение, закрашивание и закрытие пути

void cpdf_closepath_fill_stroke (int pdf_document)

См. также: cpdf_closepath(). cpdf_stroke(), cpdf_fill(), cpdf_setgray_ fill(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor().

cpdf_clip

Присоединение всех линий к нынешнему пути

void cpdf clip (int pdfjiocument)

pdf_setgray_fill

Установка заполнения серым цветом

old cpdf_setgray_fill (int pdf_document, double value)

См. также cpdf_setrgbcol or_fill ().

pdf_setgray_stroke

Установка штриховки серым цветом

poid cpdf_setgray_stroke (int pdf_document, double gray value)

См. также cpdf_setrgbcolor_stroke().

pdf_setgray

Установка заполнения и штриховки серым цветом

old cpdf_setgray (int pdf_document, double gray value)

См. также: cpdf_setrgbcolor_stroke(), cpdf setrgbcolor fill().

pdf_setrgbcolor_fill

Установка заполнения цветом rgb

oid cpdf_setrgbcolor_fill (int pdf_doc, double red, double green, double blue)

См. также: cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor().

pdf_setrgbcolor_stroke

Установка штриховки цветом rgb

oid cpdf_setrgbcolor_stroke (int pdf_document, double red value, double green value, double blue value)

См. также: cpdf_setrgbcolor_fill(), cpdf_setrgbcolor().

pdf_setrgbcolor

Установка заполнения и штриховки серым цветом rgb

oid cpdf_setrgbcolor (int pdf_document, double red_value, double green_value, double blue_value)

См. также: cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor_fill().

pdf_add_outline

Добавление закладки для нынешней страницы

oid cpdf_add_outline (int pdf_document, string text)

Наименование закладки определяется доводом text.

?php :pdf = cpdf_open(0).
3dfj>agejmt($cpdf. 1. 0. 595. 842):
3df_add_outline($cpdf. 0. 0. 0. 1. "Page 1"):
// ... /' some drawing // ... cpdf_f i nalт ze($cpdf):
Header("Content-type: application/pdf"):
cpdf_output_buf*?er($cpdf):
cpdf_close($cpdf). ?>

cpdf_set_page_animation

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

void cpdf_set_page_animation (int pdf_document, int transition. double duration)

Довод transition определяет способ перехода, a duration — его продолжительность в секундах.

cpdf_Import_jpeg

Открытие рисунка JPEG

int cpdfjmportjpeg (int pdf_doc. string filename, double x, double y. double angle, double width, double height. double x-scale, double y-scale [, int mode])

Открывает рисунок из файла filename и размещает его в позиции (х,у) на нынешней странице. Для рисунка дозволено указать угол поворота в градусах и масштабирование.

См. также cpdf_placejnlinejmage().

cpdf_place_inlinejmage

Размещение сгенерированного рисунка на странице

void cpdf_plасеJnlineJmage (int pdf_document, int image, double x, double y, double angle, double width, double height [, int mode])

Внедряет рисунок, сделанный графическими функциями PHP.

См. также cpdfJmportJpeg().

cpdf_add_annotation

Добавление примечания

void cpdf_add_annotation (int pdf_document, double Их, double lly, double urx, double ury. string title, string content [, int mode])

Примечание располагается в левом нижнем углу (Их, Ну), верхний правый угол — (urx. ury).

Forms Data Format

Функции форматирования данных форм (Forms Data Format, PDF) предуготовлены для работы с формами PDF-документов. Для заблаговременной информации ознакомьтесь с документом http://partners. adobe.com/asn/developer/acrosdk/forms.html.

Основная идея FDF сходна с формами HTML. Различие состоит в передаче (отправке) данных, от того что передаются как сами данные (FDF), так и документ формы (PDF). В обыкновенном случае PDF-форма с данными создается на основе PDF-документа, используемого как образец формы. То есть вначале создается FDF-документ (fdf_create()) и устанавливаются значения для всякого нуля ввода (fdf_set_ value()), а после этого ассоциируется форма PDF (fdf_set_file()). Позже этого происходит отправка PDF-формы браузеру (с заголовком: MiraeType appllcation/vnd.fdf). Надстройка браузера (Acrobat reader plugin) распознает MimeType и загружает ассоциированную PDF-форму, заполняя ее данными PDF-документа.

Дальнейший пример иллюстрирует обработку данных формы.

<?php // Save the FDF data into a temp file
$fdffp = fopenC'test.fdf". "w"):
fwnte($fdffp. $HTTP_FDF_DATA. strlen($HTTP_FDF_DATA));
fclose($fdffp);
// Open temp file and evaluate data
// pdf form содержит значения полей:
date, comment. // publisher, и checkbox: show_publisner.
$fdf = fdf_open("test.fdf"): $date = fdf_get_value($fdf. "date").
echo "The date field has the value '<B>$date</B>'<BR>":
Scomment = fdf_get_value($fdf, "comment");
echo "The comment field has the value ''e>$comment</B>
'<BR>";
if(fdf_get_value($fdf. "show_publisher")
== "On") { Spublisher = fdf_get_value($fdf. "publisher"):
echo "The publisher field has the value '<B>$publisher</B>
'<BR>": } else
echo "Publisher shall not be shown.<BR>":
fdf_close($fdf); ?>

fdf_open

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

int fdf_open (string filename)

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

<?php // Save the PDF data into a temp file
Sfdffp = fopen("test.fdf". "w"):
fwnte($fdffp, $HTTP_FDF_DATA. strlen($HTTP_FDF_DATA)):
fclose($fdffp):
// Open temp file and evaluate data $fdf = fdf_open("test fdf").
fdf_close($fdf): ?>

См. также fdf_close().

fdf_close

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

boolean fdf_close (int fdf_document)

См. также fdf_open().

fdf_create

Создание нового документа FDF

int fdf_create (void )

Функция нужна для установки значений полей.

<?рhр Soutfdf = fdf_create();
fdf_set_value($outfdf. "volume". Svolume. 0):
fdf set_file($outfdf. "http /testfdf/resultlabel.pdf"):
fdf_save($outfdf. "outtest.fdf").
fdf_close($outfdf):
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest fdf". "r"):
fpassthru(Sfp);
unlinkC'outtest.fdf"): ?>

См. также: fdf_close(), fdf_save(), fdf_open().

fdf_save

Сохранение документа PDF

int fdf_save (string filename)

Если имя файла указано как «.», то документ будет выводиться на типовой поток итога (отсылаться браузеру). Это не действует, если РНР является модулем apache (для итога используйте fpassthru()).

См. также: fdf_close() и пример в fdf_create().

fdf_get_value

Приобретение значения поля

string fdf_get_value (int fdfjJocument, string fieldname)

См. также fdf_set_value().

fdf_set_value

Установка значения поля

bool fdf_set_value (int fdf_document, string fieldname, string value, int isName)

Конечный довод определяет, будет ли значение поля преобразовываться в PDF Name (isName = 1) либо в PDF String (isName = 0).

См. также fdf get value().

fdf_next_field_name

Приобретение имени дальнейшего поля

string fdf_next_field_name (int fdf_document, string fieldname)

Возвращает имя первого поля (если довод fieldname имеет значение NULL) либо имя поля, дальнейшего за полем fieldname.

См. также: fdf_set_field(). fdf_get_field().

fdf_set_ap

Установка отображения поля

bool fdf_set_ap (int fdf_document. string field_name, int face, string filename, int page_number)

Устанавливается значение ключа АР. Допустимые значения довода face: l=FDFNormalAP, 2=FDFRolloverAP, 3=FDFDownAP.

fdf_set_status

Установка ключа STATUS

bool fdf_set_status (int fdf_document, string status)

См. также fdf_get_status().

fdf_get_status

Приобретение значения ключа STATUS

string fdf_get_status (int fdf_document)

См. также fdf_set_status().

fdf_set_file

Предназначение документа формы, установка ключа /F

boo! fdf_set_file (int fdf_document, string filename)

Ключ /F — это ссылка на документ PDF, тот, что заполняется данными, обыкновенно задаваемый URL (скажем: http:/testfdf/resuttlabel.pdf).

См. также: fdf_get_file() и пример в fdf_create().

fdf_get_file

Приобретение значения ключа /F

string fdf_get_file (int fdf_document)

См. также fdf_set_file().

fdf_set_flags

Установка флага поля

boo! fdf_set_flags (int fdf_doc, string fieldname, int whichFlags, int newFlags)

См. также fdf_set_opt().

fdf_set_opt

Установка параметра поля

bool fdf_set_opt (int fdf_document. string fieldname, int element, string strl, string str2)

См. также fdf_set_flags().

fdf_set_submit_form_action

Установка действия javascript для формы

bool fdf_set_submit_form_action (int fdf_document, string fieldname, int trigger, string script, int flags)

См. также fdf_set_javascript_action().

fdf_setjavascript_action

Установка действия javascript для поля

bool fdf_set_javascript_action (int fdf_document, string fieldname, int trigger, string script)

См. также fdf_set_submit_form_action().