php-doc-en/functions/pdf.xml
Derick Rethans 3a86adcc0b - Fix for bug 10722 (typo)
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@46854 c90b9560-bf6c-de11-be94-00142212c4b1
2001-05-08 06:53:41 +00:00

2781 lines
87 KiB
XML

<reference id="ref.pdf">
<title>PDF functions </title>
<titleabbrev>PDF</titleabbrev>
<partintro>
<sect1 id="pdf.intro">
<title>Introduction</title>
<simpara>
You can use the PDF functions in PHP to create PDF files if you
have the PDF library by Thomas Merz (available at
<ulink url="&url.pdf;">&url.pdf;</ulink>;
you will also need <ulink url="&url.jpeg;">the JPEG library</ulink>
and <ulink url="&url.tiff;">the TIFF library</ulink> to
compile this. These two librariess can often cause problems when
configuring PHP, so be sure to pay attention to the output of
the configure script and fix any problems it reports.
</simpara>
<simpara>
Please consult the documentation for PDFlib shipped with
the source distribution of PDFlib. It provides a very good
overview of what PDFlib is capable of doing and contains the full
and most up-to-date description of all functions.
</simpara>
<simpara>
All of the functions in PDFlib and the PHP module have the same name.
The parameters are also identical.
You should also understand some of the concepts of PDF
or PostScript to efficiently use this module.
All lengths and coordinates are measured in PostScript points.
There are generally 72 PostScript points to an inch, but this
depends on the output resolution.
</simpara>
<simpara>
There is another PHP module for PDF document creation based on
<ulink url="&url.cpdf;">FastIO's</ulink>.
ClibPDF. It has a slightly different API. Check the
<link linkend="ref.cpdf">ClibPDF functions</link> section for
details.
</simpara>
<simpara>
The PDF module introduces one new type of variable.
It is called a <parameter>pdf object</parameter> and
almost all functions need a <parameter>pdf object</parameter>
as its first parameter.
</simpara>
</sect1>
<sect1 id="pdf.oldlibs.confusion">
<title>Confusion with old PDFlib versions</title>
<simpara>
Starting with PHP 4.0.5, the PHP extension for PDFlib is officially
supported by PDFlib GmbH. This means that all the functions
described in the PDFlib-manual (V3.00 or greater) are supported by
PHP 4 with exactly the same meaning and the same parameters.
Only the return values may differ from the PDFlib manual, because
the PHP convention of returning <literal>false</literal> was adopted.
For compatibility reasons this binding for
PDFlib still supports the old functions, but as stated above
they should be replaced by their new versions. PDFlib GmbH will not
support any problems arising from the use of these deprecated
functions.
</simpara>
<para>
<table>
<title>Deprecated functions and its replacements</title>
<tgroup cols="2">
<thead>
<row>
<entry>Old function</entry>
<entry>Replacement</entry>
</row>
</thead>
<tbody>
<row>
<entry><function>PDF_put_image</function></entry>
<entry>Not needed anymore.</entry>
</row>
<row>
<entry><function>PDF_execute_image</function></entry>
<entry>Not needed anymore.</entry>
</row>
<row>
<entry><function>PDF_get_annotation</function></entry>
<entry><function>PDF_get_bookmark</function> using the same
parameters.</entry>
</row>
<row>
<entry><function>PDF_get_font</function></entry>
<entry><function>PDF_get_value</function> passing
<literal>"font"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_get_fontsize</function></entry>
<entry><function>PDF_get_value</function> passing
<literal>"fontsize"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_get_fontname</function></entry>
<entry><function>PDF_get_parameter</function> passing
<literal>"fontname"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_info_creator</function></entry>
<entry><function>PDF_set_info</function> passing
<literal>"Creator"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_info_title</function></entry>
<entry><function>PDF_set_info</function> passing
<literal>"Title"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_info_subject</function></entry>
<entry><function>PDF_set_info</function> passing
<literal>"Subject"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_info_author</function></entry>
<entry><function>PDF_set_info</function> passing
<literal>"Author"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_info_keywords</function></entry>
<entry><function>PDF_set_info</function> passing
<literal>"Keywords"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_leading</function></entry>
<entry><function>PDF_set_value</function> passing
<literal>"leading"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_text_rendering</function></entry>
<entry><function>PDF_set_value</function> passing
<literal>"textrendering"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_text_rise</function></entry>
<entry><function>PDF_set_value</function> passing
<literal>"textrise"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_horiz_scaling</function></entry>
<entry><function>PDF_set_value</function> passing
<literal>"horizscaling"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_text_matrix</function></entry>
<entry>Not available anymore</entry>
</row>
<row>
<entry><function>PDF_set_char_spacing</function></entry>
<entry><function>PDF_set_value</function> passing
<literal>"charspacing"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_word_spacing</function></entry>
<entry><function>PDF_set_value</function> passing
<literal>"wordspacing"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_set_transition</function></entry>
<entry><function>PDF_set_parameter</function> passing
<literal>"transition"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_open</function></entry>
<entry><function>PDF_new</function> plus an subsequent call
of <function>PDF_open_file</function></entry>
</row>
<row>
<entry><function>PDF_set_font</function></entry>
<entry><function>PDF_findfont</function> plus an subsequent call
of <function>PDF_setfont</function></entry>
</row>
<row>
<entry><function>PDF_set_duration</function></entry>
<entry><function>PDF_set_value</function> passing
<literal>"duration"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_open_gif</function></entry>
<entry><function>PDF_open_image_file</function> passing
<literal>"gif"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_open_jpeg</function></entry>
<entry><function>PDF_open_image_file</function> passing
<literal>"jpeg"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_open_tiff</function></entry>
<entry><function>PDF_open_image_file</function> passing
<literal>"tiff"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_open_png</function></entry>
<entry><function>PDF_open_image_file</function> passing
<literal>"png"</literal> as the second parameter.</entry>
</row>
<row>
<entry><function>PDF_get_image_width</function></entry>
<entry><function>PDF_get_value</function> passing
<literal>"imagewidth"</literal> as the second parameter and the image
as the third parameter.</entry>
</row>
<row>
<entry><function>PDF_get_image_height</function></entry>
<entry><function>PDF_get_value</function> passing
<literal>"imageheight"</literal> as the second parameter and the
image as the third parameter.</entry>
</row>
<row>
<entry><function></function></entry>
<entry><function></function></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</sect1>
<sect1 id="pdf.install.pdflib">
<title>Hints for installation of PDFlib 3.x</title>
<simpara>
Since version 3.0 of PDFlib you should configure PDFlib with the option
<literal>--enable-shared-pdflib</literal>.
</simpara>
</sect1>
<sect1 id="pdf.oldlibs.hints">
<title>Issues with older versions of PDFlib</title>
<simpara>
Any version of PHP 4 after March 9, 2000 does not support versions
of PDFlib older than 3.0.
</simpara>
<simpara>
PDFlib 3.0 or greater is also supported by PHP 3.0.19 and later.
</simpara>
</sect1>
<sect1 id="pdf.examples">
<title>Examples</title>
<simpara>
Most of the functions are fairly easy to use. The most difficult part
is probably creating a very simple PDF document at all. The following
example should help to get started.
It creates <filename>test.pdf</filename>
with one page. The page contains the text "Times Roman outlined" in an
outlined, 30pt font. The text is also underlined.
</simpara>
<para>
<example>
<title>Creating a PDF document with PDFlib</title>
<programlisting>
&lt;?php
$pdf = PDF_new();
PDF_open_file($pdf, "test.pdf");
PDF_set_info($pdf, "Author", "Uwe Steinmann");
PDF_set_info($pdf, "Title", "Test for PHP wrapper of PDFlib 2.0");
PDF_set_info($pdf, "Creator", "See Author");
PDF_set_info($pdf, "Subject", "Testing");
PDF_begin_page($pdf, 595, 842);
PDF_add_outline($pdf, "Page 1");
PDF_set_font($pdf, "Times-Roman", 30, "host");
PDF_set_value($pdf, "textrendering", 1);
PDF_show_xy($pdf, "Times Roman outlined", 50, 750);
PDF_moveto($pdf, 50, 740);
PDF_lineto($pdf, 330, 740);
PDF_stroke($pdf);
PDF_end_page($pdf);
PDF_close($pdf);
PDF_delete($pdf);
echo "&lt;A HREF=getpdf.php>finished&lt;/A>";
?>
</programlisting>
<simpara>
The script <filename>getpdf.php</filename> just returns the pdf document.
</simpara>
<informalexample>
<programlisting>
&lt;?php
$len = filesize($filename);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
readfile($filename);
?>
</programlisting>
</informalexample>
</example>
</para>
<para>
The PDFlib distribution contains a more complex example which
creates a page with an analog clock. Here we use
the in memory creation feature of PDFlib, so we don't need
any tmp-files. This example
converted into PHP using PDFlib looks as the following (you
can see the same example in the documentation for the
<link linkend="ref.cpdf">clibpdf module)</link>:
</para>
<para>
<example>
<title>pdfclock example from PDFlib distribution</title>
<programlisting>
&lt;?php
$radius = 200;
$margin = 20;
$pagecount = 10;
$pdf = PDF_new();
if (!PDF_open_file($pdf, "")) {
print error;
exit;
};
PDF_set_parameter($pdf, "warning", "true");
PDF_set_info($pdf, "Creator", "pdf_clock.php");
PDF_set_info($pdf, "Author", "Uwe Steinmann");
PDF_set_info($pdf, "Title", "Analog Clock");
while($pagecount-- > 0) {
PDF_begin_page($pdf, 2 * ($radius + $margin), 2 * ($radius + $margin));
PDF_set_parameter($pdf, "transition", "wipe");
PDF_set_value($pdf, "duration", 0.5);
PDF_translate($pdf, $radius + $margin, $radius + $margin);
PDF_save($pdf);
PDF_setrgbcolor($pdf, 0.0, 0.0, 1.0);
/* minute strokes */
PDF_setlinewidth($pdf, 2.0);
for ($alpha = 0; $alpha &lt; 360; $alpha += 6) {
PDF_rotate($pdf, 6.0);
PDF_moveto($pdf, $radius, 0.0);
PDF_lineto($pdf, $radius-$margin/3, 0.0);
PDF_stroke($pdf);
}
PDF_restore($pdf);
PDF_save($pdf);
/* 5 minute strokes */
PDF_setlinewidth($pdf, 3.0);
for ($alpha = 0; $alpha &lt; 360; $alpha += 30) {
PDF_rotate($pdf, 30.0);
PDF_moveto($pdf, $radius, 0.0);
PDF_lineto($pdf, $radius-$margin, 0.0);
PDF_stroke($pdf);
}
$ltime = getdate();
/* draw hour hand */
PDF_save($pdf);
PDF_rotate($pdf,-(($ltime['minutes']/60.0)+$ltime['hours']-3.0)*30.0);
PDF_moveto($pdf, -$radius/10, -$radius/20);
PDF_lineto($pdf, $radius/2, 0.0);
PDF_lineto($pdf, -$radius/10, $radius/20);
PDF_closepath($pdf);
PDF_fill($pdf);
PDF_restore($pdf);
/* draw minute hand */
PDF_save($pdf);
PDF_rotate($pdf,-(($ltime['seconds']/60.0)+$ltime['minutes']-15.0)*6.0);
PDF_moveto($pdf, -$radius/10, -$radius/20);
PDF_lineto($pdf, $radius * 0.8, 0.0);
PDF_lineto($pdf, -$radius/10, $radius/20);
PDF_closepath($pdf);
PDF_fill($pdf);
PDF_restore($pdf);
/* draw second hand */
PDF_setrgbcolor($pdf, 1.0, 0.0, 0.0);
PDF_setlinewidth($pdf, 2);
PDF_save($pdf);
PDF_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
PDF_moveto($pdf, -$radius/5, 0.0);
PDF_lineto($pdf, $radius, 0.0);
PDF_stroke($pdf);
PDF_restore($pdf);
/* draw little circle at center */
PDF_circle($pdf, 0, 0, $radius/30);
PDF_fill($pdf);
PDF_restore($pdf);
PDF_end_page($pdf);
# to see some difference
sleep(1);
}
PDF_close($pdf);
$buf = PDF_get_buffer($pdf);
$len = strlen($buf);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
print $buf;
PDF_delete($pdf);
?>
</programlisting>
</example>
</para>
</sect1>
</partintro>
<refentry id="function.pdf-add-annotation">
<refnamediv>
<refname>PDF_add_annotation</refname>
<refpurpose>Deprecated: Adds annotation</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
<function>PDF_add_outline</function> is replaced by
<function>PDF_add_note</function>
</para>
<para>
See also <function>PDF_add_note</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-add-bookmark">
<refnamediv>
<refname>PDF_add_bookmark</refname>
<refpurpose>Adds bookmark for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_add_bookmark</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
<paramdef>int <parameter><optional>parent</optional></parameter></paramdef>
<paramdef>int <parameter><optional>open</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add a nested bookmark under <parameter>parent</parameter>, or a new top-level
bookmark if <parameter>parent</parameter> = 0. Returns a bookmark descriptor
which may be used as parent for subsequent nested bookmarks.
If open = 1, child bookmarks will be folded out, and invisible if open = 0.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-add-launchlink">
<refnamediv>
<refname>PDF_add_launchlink</refname>
<refpurpose>Add a launch annotation for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_add_launchlink</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>llx</parameter></paramdef>
<paramdef>double <parameter>lly</parameter></paramdef>
<paramdef>double <parameter>urx</parameter></paramdef>
<paramdef>double <parameter>ury</parameter></paramdef>
<paramdef>string <parameter>filename</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add a launch annotation (to a target of arbitrary file type).
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-add-locallink">
<refnamediv>
<refname>PDF_add_locallink</refname>
<refpurpose>Add a link annotation for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_add_locallink</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>llx</parameter></paramdef>
<paramdef>double <parameter>lly</parameter></paramdef>
<paramdef>double <parameter>urx</parameter></paramdef>
<paramdef>double <parameter>ury</parameter></paramdef>
<paramdef>int <parameter>page</parameter></paramdef>
<paramdef>string <parameter>dest</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add a link annotation to a target within the current PDF file.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-add-note">
<refnamediv>
<refname>PDF_add_note</refname>
<refpurpose>Add a note annotation for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_add_note</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>llx</parameter></paramdef>
<paramdef>double <parameter>lly</parameter></paramdef>
<paramdef>double <parameter>urx</parameter></paramdef>
<paramdef>double <parameter>ury</parameter></paramdef>
<paramdef>string <parameter>contents</parameter></paramdef>
<paramdef>string <parameter>title</parameter></paramdef>
<paramdef>string <parameter>icon</parameter></paramdef>
<paramdef>int <parameter>open</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add a note annotation. icon is one of of "comment, "insert", "note",
"paragraph", "newparagraph", "key", or "help".
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-add-outline">
<refnamediv>
<refname>pdf_add_outline</refname>
<refpurpose>Deprecated: Adds bookmark for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See <function>PDF_add_bookmark</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-add-pdflink">
<refnamediv>
<refname>PDF_add_pdflink</refname>
<refpurpose>Adds file link annotation for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_add_pdflink</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>llx</parameter></paramdef>
<paramdef>double <parameter>lly</parameter></paramdef>
<paramdef>double <parameter>urx</parameter></paramdef>
<paramdef>double <parameter>ury</parameter></paramdef>
<paramdef>string <parameter>filename</parameter></paramdef>
<paramdef>int <parameter>page</parameter></paramdef>
<paramdef>string <parameter>dest</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add a file link annotation (to a PDF target).
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-add-thumbnail">
<refnamediv>
<refname>PDF_add_thumbnail</refname>
<refpurpose>Adds thumbnail for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_add_thumbnail</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>image</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add an existing image as thumbnail for the current page.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-add-weblink">
<refnamediv>
<refname>PDF_add_weblink</refname>
<refpurpose>Adds weblink for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_add_weblink</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>llx</parameter></paramdef>
<paramdef>double <parameter>lly</parameter></paramdef>
<paramdef>double <parameter>urx</parameter></paramdef>
<paramdef>double <parameter>ury</parameter></paramdef>
<paramdef>string <parameter>url</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add a weblink annotation to a target URL on the Web.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-arc">
<refnamediv>
<refname>PDF_arc</refname>
<refpurpose>Draws an arc</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_arc</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
<paramdef>double <parameter>r</parameter></paramdef>
<paramdef>double <parameter>alpha</parameter></paramdef>
<paramdef>double <parameter>beta</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Draw a counterclockwise circular arc from alpha to beta degrees
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-arcn">
<refnamediv>
<refname>PDF_arcn</refname>
<refpurpose>Draws an arc</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_arc</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
<paramdef>double <parameter>r</parameter></paramdef>
<paramdef>double <parameter>alpha</parameter></paramdef>
<paramdef>double <parameter>beta</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Draw a clockwise circular arc from alpha to beta degrees
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-attach-file">
<refnamediv>
<refname>PDF_attach_file</refname>
<refpurpose>Adds a file attachement for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_attach_file</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>llx</parameter></paramdef>
<paramdef>double <parameter>lly</parameter></paramdef>
<paramdef>double <parameter>urx</parameter></paramdef>
<paramdef>double <parameter>ury</parameter></paramdef>
<paramdef>string <parameter>filename</parameter></paramdef>
<paramdef>string <parameter>description</parameter></paramdef>
<paramdef>string <parameter>author</parameter></paramdef>
<paramdef>string <parameter>mimetype</parameter></paramdef>
<paramdef>string <parameter>icon</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add a file attachment annotation. icon is one of "graph,
"paperclip", "pushpin", or "tag".
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-begin-page">
<refnamediv>
<refname>PDF_begin_page</refname>
<refpurpose>Starts new page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_begin_page</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
<paramdef>double <parameter>height</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add a new page to the document.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-begin-pattern">
<refnamediv>
<refname>PDF_begin_pattern</refname>
<refpurpose>Starts new pattern</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_begin_pattern</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
<paramdef>double <parameter>height</parameter></paramdef>
<paramdef>double <parameter>xstep</parameter></paramdef>
<paramdef>double <parameter>ystep</parameter></paramdef>
<paramdef>int <parameter>painttype</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Start a new pattern definition.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-begin-template">
<refnamediv>
<refname>PDF_begin_template</refname>
<refpurpose>Starts new template</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_begin_template</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
<paramdef>double <parameter>height</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Start a new template definition.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-circle">
<refnamediv>
<refname>PDF_circle</refname>
<refpurpose>Draws a circle</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_circle</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
<paramdef>double <parameter>r</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Draw a circle with center (x, y) and radius r.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-clip">
<refnamediv>
<refname>PDF_clip</refname>
<refpurpose>Clips to current path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_clip</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Use the current path as clipping path.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-close">
<refnamediv>
<refname>PDF_close</refname>
<refpurpose>Closes a pdf object</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_close</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Close the generated PDF file, and free all document-related resources.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-closepath">
<refnamediv>
<refname>PDF_closepath</refname>
<refpurpose>Closes path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_closepath</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Close the current path.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-closepath-fill-stroke">
<refnamediv>
<refname>PDF_closepath_fill_stroke</refname>
<refpurpose>Closes, fills and strokes current path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_closepath_fill_stroke</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Close the path, fill, and stroke it.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-closepath-stroke">
<refnamediv>
<refname>PDF_closepath_stroke</refname>
<refpurpose>Closes path and draws line along path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_closepath_stroke</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Close the path, and stroke it.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-close-image">
<refnamediv>
<refname>PDF_close_image</refname>
<refpurpose>Closes an image</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_close_image</function></funcdef>
<paramdef>int <parameter>image</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Close an <parameter>image</parameter> retrieved with one of the
<function>PDF_open_image*()</function> functions.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-close-pdi">
<refnamediv>
<refname>PDF_close_pdi</refname>
<refpurpose>
Close the input PDF document
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_close_pdi</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>dochandle</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Close all open page handles, and close the input PDF document.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-close-pdi-page">
<refnamediv>
<refname>PDF_close_pdi_page</refname>
<refpurpose>
Close the page handle
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_close_pdi_page</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>pagehandle</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Close the page handle, and free all page-related resources.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-concat">
<refnamediv>
<refname>PDF_concat</refname>
<refpurpose>Concatenate a matrix to the CTM</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_concat</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>a</parameter></paramdef>
<paramdef>double <parameter>b</parameter></paramdef>
<paramdef>double <parameter>c</parameter></paramdef>
<paramdef>double <parameter>d</parameter></paramdef>
<paramdef>double <parameter>e</parameter></paramdef>
<paramdef>double <parameter>f</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Concatenate a matrix to the CTM.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-continue-text">
<refnamediv>
<refname>PDF_continue_text</refname>
<refpurpose>Outputs text in next line</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_continue_text</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Print text at the next line. The spacing between lines is determined
by the <parameter>leading</parameter> parameter.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-curveto">
<refnamediv>
<refname>PDF_curveto</refname>
<refpurpose>Draws a curve</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_curveto</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>x1</parameter></paramdef>
<paramdef>double <parameter>y1</parameter></paramdef>
<paramdef>double <parameter>x2</parameter></paramdef>
<paramdef>double <parameter>y2</parameter></paramdef>
<paramdef>double <parameter>x3</parameter></paramdef>
<paramdef>double <parameter>y3</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Draw a Bezier curve from the current point, using 3 more control points.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-delete">
<refnamediv>
<refname>PDF_delete</refname>
<refpurpose>Deletes a PDF object</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_delete</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Delete the PDF object, and free all internal resources.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-end-page">
<refnamediv>
<refname>PDF_end_page</refname>
<refpurpose>Ends a page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_end_page</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Finish the page.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-endpath">
<refnamediv>
<refname>PDF_endpath</refname>
<refpurpose>Deprecated: Ends current path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated, use one of the stroke, fill, or clip functions instead.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-end-pattern">
<refnamediv>
<refname>PDF_end_pattern</refname>
<refpurpose>Finish pattern</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_end_pattern</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Finish the pattern definition.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-end-template">
<refnamediv>
<refname>PDF_end_template</refname>
<refpurpose>Finish template</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_end_template</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Finish the template definition.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-fill">
<refnamediv>
<refname>PDF_fill</refname>
<refpurpose>Fills current path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_fill_stroke</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Fill the interior of the path with the current fill color.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-fill-stroke">
<refnamediv>
<refname>PDF_fill_stroke</refname>
<refpurpose>Fills and strokes current path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_fill_stroke</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Fill and stroke the path with the current fill and stroke color.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-findfont">
<refnamediv>
<refname>PDF_findfont</refname>
<refpurpose>Prepare font for later use with <function>PDF_setfont</function>.</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_findfont</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>fontname</parameter></paramdef>
<paramdef>string <parameter>encoding^</parameter></paramdef>
<paramdef>int <parameter>embed</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Prepare a font for later use with <function>PDF_setfont</function>.
The metrics will be loaded, and if embed is nonzero, the font file
will be checked, but not yet used. Encoding is one of "builtin",
"macroman", "winansi", "host", or a user-defined encoding name,
or the name of a CMap.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-buffer">
<refnamediv>
<refname>PDF_get_buffer</refname>
<refpurpose>Fetch the buffer containig the generated PDF data.</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string <function>PDF_get_buffer</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Get the contents of the PDF output buffer. The result must be
used by the client before calling any other PDFlib function.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-font">
<refnamediv>
<refname>PDF_get_font</refname>
<refpurpose>Deprecated: font handling</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See <function>PDF_get_value</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-fontname">
<refnamediv>
<refname>PDF_get_fontname</refname>
<refpurpose>Deprecated: font handling</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See <function>PDF_get_parameter</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-fontsize">
<refnamediv>
<refname>PDF_get_fontsize</refname>
<refpurpose>Deprecated: font handling</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See <function>PDF_get_value</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-image-height">
<refnamediv>
<refname>PDF_get_image_height</refname>
<refpurpose>Returns height of an image</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string <function>PDF_get_image_height</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>image</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
<function>PDF_get_image_height</function> is deprecated,
use <function>PDF_get_value</function> instead.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-image-width">
<refnamediv>
<refname>PDF_get_image_width</refname>
<refpurpose>Returns width of an image</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string <function>PDF_get_image_width</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>image</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
The <function>PDF_get_image_width</function> is deprecated,
use <function>PDF_get_value</function> instead.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-parameter">
<refnamediv>
<refname>PDF_get_parameter</refname>
<refpurpose>Gets certain parameters</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string <function>PDF_get_parameter</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>key</parameter></paramdef>
<paramdef>double <parameter><optional>modifier</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Get the contents of some PDFlib parameter with string type.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-pdi-parameter">
<refnamediv>
<refname>PDF_get_pdi_parameter</refname>
<refpurpose>Get some PDI string parameters</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string <function>PDF_get_pdi_parameter</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>key</parameter></paramdef>
<paramdef>int <parameter>doc</parameter></paramdef>
<paramdef>int <parameter>page</parameter></paramdef>
<paramdef>int <parameter>index</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Get the contents of some PDI document parameter with string type.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-pdi-value">
<refnamediv>
<refname>PDF_get_pdi_value</refname>
<refpurpose>Gets some PDI numerical parameters</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string <function>PDF_get_pdi_value</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>key</parameter></paramdef>
<paramdef>int <parameter>doc</parameter></paramdef>
<paramdef>int <parameter>page</parameter></paramdef>
<paramdef>int <parameter>index</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Get the contents of some PDI document parameter with numerical type.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-get-value">
<refnamediv>
<refname>PDF_get_value</refname>
<refpurpose>Gets certain numerical value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>double <function>PDF_get_value</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>key</parameter></paramdef>
<paramdef>double <parameter><optional>modifier</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Get the contents of some PDFlib parameter with float type.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-initgraphics">
<refnamediv>
<refname>PDF_initgraphics</refname>
<refpurpose>Resets graphic state</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_initgraphics</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Reset all implicit color and graphics state parameters to their defaults.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-lineto">
<refnamediv>
<refname>PDF_lineto</refname>
<refpurpose>Draws a line</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_lineto</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Draw a line from the current point to (<parameter>x</parameter>,
<parameter>y</parameter>).
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-makespotcolor">
<refnamediv>
<refname>PDF_makespotcolor</refname>
<refpurpose>Makes a spotcolor</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_makespotcolor</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>spotname</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Make a named spot color from the current color.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-moveto">
<refnamediv>
<refname>PDF_moveto</refname>
<refpurpose>Sets current point</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_moveto</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current point.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-new">
<refnamediv>
<refname>PDF_new</refname>
<refpurpose>Creates a new pdf object</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_new</function></funcdef>
<paramdef><parameter></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Create a new PDF object, using default error handling
and memory management.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open">
<refnamediv>
<refname>pdf_open</refname>
<refpurpose>Deprecated: Open a new pdf object</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
<function>PDF_open</function> is deprecated, use
<function>PDF_new</function> plus <function>PDF_open_file</function>
instead.
</para>
<para>
See also <function>PDF_new</function>,
<function>PDF_open_file</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-ccitt">
<refnamediv>
<refname>PDF_open_CCITT</refname>
<refpurpose>Opens a new image file with raw CCITT data</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_open</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>filename</parameter></paramdef>
<paramdef>int <parameter>width</parameter></paramdef>
<paramdef>int <parameter>height</parameter></paramdef>
<paramdef>int <parameter>BitReverse</parameter></paramdef>
<paramdef>int <parameter>k</parameter></paramdef>
<paramdef>int <parameter>Blackls1</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Open a raw CCITT image.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-file">
<refnamediv>
<refname>PDF_open_file</refname>
<refpurpose>Opens a new pdf object</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_open_file</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter><optional>filename</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Create a new PDF file using the supplied file name.
If <parameter>filename</parameter> is empty the PDF document
will be generated in memory instead of on file. The result
must be fetched by the client with the
<function>PDF_get_buffer</function> function.
</para>
<para>
The following example shows how to create a pdf document in memory
and how to output it correctly.
<example>
<title>Creating a PDF document in memory</title>
<programlisting role="php">
&lt;?php
$pdf = pdf_new();
pdf_open_file($pdf);
pdf_begin_page($pdf, 595, 842);
pdf_set_font($pdf, "Times-Roman", 30, "host");
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "A PDF document created in memory!", 50, 750);
pdf_end_page($pdf);
pdf_close($pdf);
$data = pdf_get_buffer($pdf);
header("Content-type: application/pdf");
header("Content-disposition: inline; filename=test.pdf");
header("Content-length: " . strlen($data));
echo $data;
?>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-gif">
<refnamediv>
<refname>PDF_open_gif</refname>
<refpurpose>Deprecated: Opens a GIF image</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See <function>PDF_open_image</function>,
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-image">
<refnamediv>
<refname>PDF_open_image</refname>
<refpurpose>Versatile function for images</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_open_image</function></funcdef>
<paramdef>int <parameter>PDF-document</parameter></paramdef>
<paramdef>string <parameter>imagetype</parameter></paramdef>
<paramdef>string <parameter>source</parameter></paramdef>
<paramdef>string <parameter>data</parameter></paramdef>
<paramdef>long <parameter>length</parameter></paramdef>
<paramdef>int <parameter>width</parameter></paramdef>
<paramdef>int <parameter>height</parameter></paramdef>
<paramdef>int <parameter>components</parameter></paramdef>
<paramdef>int <parameter>bpc</parameter></paramdef>
<paramdef>string <parameter>params</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Use image data from a variety of data sources. Supported types are
"jpeg", "ccitt", "raw". Supported sources are "memory", "fileref",
"url". len is only used for type="raw", params is only
used for type="ccitt".
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-image-file">
<refnamediv>
<refname>PDF_open_image_file</refname>
<refpurpose>Reads an image from a file</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_open_image_file</function></funcdef>
<paramdef>int <parameter>PDF-document</parameter></paramdef>
<paramdef>string <parameter>imagetype</parameter></paramdef>
<paramdef>string <parameter>filename</parameter></paramdef>
<paramdef>string <parameter><optional>stringparam</optional></parameter></paramdef>
<paramdef>string <parameter><optional>intparam</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Open an image file. Supported types are "jpeg", "tiff", "gif",
and "png". <parameter>stringparam</parameter> is either
"", "mask", "masked", or "page".
<parameter>intparam</parameter>is either 0, the image id
of the applied mask, or the page.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-jpeg">
<refnamediv>
<refname>PDF_open_jpeg</refname>
<refpurpose>Deprecated: Opens a JPEG image</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See also <function>PDF_open_image</function>,
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-pdi">
<refnamediv>
<refname>PDF_open_pdi</refname>
<refpurpose>
Opens a PDF file
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_open_pdi</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>filename</parameter></paramdef>
<paramdef>string <parameter>stringparam</parameter></paramdef>
<paramdef>int <parameter>intparam</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Open an existing PDF document for later use.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-pdi-page">
<refnamediv>
<refname>PDF_open_pdi_page</refname>
<refpurpose>
Prepare a page
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_open_pd_pagei</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>dochandle</parameter></paramdef>
<paramdef>int <parameter>pagenumber</parameter></paramdef>
<paramdef>string <parameter>pagelabel</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Prepare a page for later use with <function>PDF_place_image</function>
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-png">
<refnamediv>
<refname>PDF_open_png</refname>
<refpurpose>
Deprecated: Opens a PNG image
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See <function>PDF_open_image</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-tiff">
<refnamediv>
<refname>PDF_open_tiff</refname>
<refpurpose>Deprecated: Opens a TIFF image</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_open_tiff</function></funcdef>
<paramdef>int <parameter>PDF-document</parameter></paramdef>
<paramdef>string <parameter>filename</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Deprecated.
</para>
<para>
See also <function>PDF_open_image</function>,
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-place-image">
<refnamediv>
<refname>PDF_place_image</refname>
<refpurpose>Places an image on the page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_place_image</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>image</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
<paramdef>double <parameter>scale</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Place an image with the lower left corner at (<parameter>x</parameter>,
<parameter>y</parameter>), and scale it.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-place-pdi-page">
<refnamediv>
<refname>PDF_place_pdi_page</refname>
<refpurpose>Places an image on the page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_place_pdi_page</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>page</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
<paramdef>double <parameter>sx</parameter></paramdef>
<paramdef>double <parameter>sy</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Place a PDF page with the lower left corner at (<parameter>x</parameter>,
<parameter>y</parameter>), and scale it.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-rect">
<refnamediv>
<refname>PDF_rect</refname>
<refpurpose>Draws a rectangle</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_rect</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
<paramdef>double <parameter>height</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Draw a rectangle at lower left (x, y) with width and height.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-restore">
<refnamediv>
<refname>PDF_restore</refname>
<refpurpose>Restores formerly saved environment</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_restore</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Restore the most recently saved graphics state.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-rotate">
<refnamediv>
<refname>PDF_rotate</refname>
<refpurpose>Sets rotation</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_rotate</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>phi</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Rotate the coordinate system by phi degrees.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-save">
<refnamediv>
<refname>PDF_save</refname>
<refpurpose>Saves the current environment</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_save</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Save the current graphics state.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-scale">
<refnamediv>
<refname>PDF_scale</refname>
<refpurpose>Sets scaling</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_scale</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>x-scale</parameter></paramdef>
<paramdef>double <parameter>y-scale</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Scale the coordinate system.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setcolor">
<refnamediv>
<refname>PDF_setcolor</refname>
<refpurpose>Sets fill and stroke color to CMYK values</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setcolor</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>type</parameter></paramdef>
<paramdef>string <parameter>colorspace</parameter></paramdef>
<paramdef>double <parameter>c1</parameter></paramdef>
<paramdef>double <parameter>c2</parameter></paramdef>
<paramdef>double <parameter>c3</parameter></paramdef>
<paramdef>double <parameter>c4</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current color space and color. type is "fill",
"stroke", or "both".
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setdash">
<refnamediv>
<refname>PDF_setdash</refname>
<refpurpose>Sets dash pattern</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setdash</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>w</parameter></paramdef>
<paramdef>double <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current dash pattern to b black and w white units.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setflat">
<refnamediv>
<refname>PDF_setflat</refname>
<refpurpose>Sets flatness</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setflat</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>flatness</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the flatness to a value between 0 and 100 inclusive.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setfont">
<refnamediv>
<refname>PDF_setfont</refname>
<refpurpose>Set the current font</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setfont</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>font</parameter></paramdef>
<paramdef>double <parameter>size</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current font in the given size, using a
<parameter>font</parameter> handle returned by
<function>PDF_findfont</function>
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setgray">
<refnamediv>
<refname>PDF_setgray</refname>
<refpurpose>Sets drawing and filling color to gray value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setgray</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>gray</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current fill and stroke color.
</para>
<note>
<para>
PDFlib V4.0: Deprecated, use <function>PDF_setcolor</function> instead.
</para>
</note>
</refsect1>
</refentry>
<refentry id="function.pdf-setgray-fill">
<refnamediv>
<refname>PDF_setgray_fill</refname>
<refpurpose>Sets filling color to gray value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setgray_fill</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>gray</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current fill color to a gray value between 0 and 1 inclusive.
</para>
<note>
<para>
PDFlib V4.0: Deprecated, use <function>PDF_setcolor</function> instead.
</para>
</note>
</refsect1>
</refentry>
<refentry id="function.pdf-setgray-stroke">
<refnamediv>
<refname>PDF_setgray_stroke</refname>
<refpurpose>Sets drawing color to gray value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setgray_stroke</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>gray</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current stroke color to a gray value between 0 and 1 inclusive
</para>
<note>
<para>
PDFlib V4.0: Deprecated, use <function>PDF_setcolor</function> instead.
</para>
</note>
</refsect1>
</refentry>
<refentry id="function.pdf-setlinecap">
<refnamediv>
<refname>PDF_setlinecap</refname>
<refpurpose>Sets linecap parameter</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setlinecap</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>linecap</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the <parameter>linecap</parameter> parameter to a value between 0 and 2 inclusive.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setlinejoin">
<refnamediv>
<refname>PDF_setlinejoin</refname>
<refpurpose>Sets linejoin parameter</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setlinejoin</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>long <parameter>linejoin</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the line join parameter to a value between 0 and 2 inclusive.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setlinewidth">
<refnamediv>
<refname>PDF_setlinewidth</refname>
<refpurpose>Sets line width</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setlinewidth</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current linewidth to width.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setmatrix">
<refnamediv>
<refname>PDF_setmatrix</refname>
<refpurpose>Sets current transformation matrix</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setmatrix</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>a</parameter></paramdef>
<paramdef>double <parameter>b</parameter></paramdef>
<paramdef>double <parameter>c</parameter></paramdef>
<paramdef>double <parameter>d</parameter></paramdef>
<paramdef>double <parameter>e</parameter></paramdef>
<paramdef>double <parameter>f</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Explicitly set the current transformation matrix.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setmiterlimit">
<refnamediv>
<refname>PDF_setmiterlimit</refname>
<refpurpose>Sets miter limit</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setmiterlimit</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>miter</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the miter limit to a value greater than or equal to 1.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setpolydash">
<refnamediv>
<refname>PDF_setpolydash</refname>
<refpurpose>Sets complicated dash pattern</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setpolydash</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double *<parameter>dasharray</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set a more complicated dash pattern defined by an array.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-setrgbcolor">
<refnamediv>
<refname>PDF_setrgbcolor</refname>
<refpurpose>Sets drawing and filling color to rgb color value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setrgbcolor</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>red value</parameter></paramdef>
<paramdef>double <parameter>green value</parameter></paramdef>
<paramdef>double <parameter>blue value</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current fill and stroke color to the supplied RGB values.
</para>
<note>
<para>
PDFlib V4.0: Deprecated, use <function>PDF_setcolor</function> instead.
</para>
</note>
</refsect1>
</refentry>
<refentry id="function.pdf-setrgbcolor-fill">
<refnamediv>
<refname>PDF_setrgbcolor_fill</refname>
<refpurpose>Sets filling color to rgb color value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setrgbcolor_fill</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>red value</parameter></paramdef>
<paramdef>double <parameter>green value</parameter></paramdef>
<paramdef>double <parameter>blue value</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current fill color to the supplied RGB values.
</para>
<note>
<para>
PDFlib V4.0: Deprecated, use <function>PDF_setcolor</function> instead.
</para>
</note>
</refsect1>
</refentry>
<refentry id="function.pdf-setrgbcolor-stroke">
<refnamediv>
<refname>PDF_setrgbcolor_stroke</refname>
<refpurpose>Sets drawing color to rgb color value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_setrgbcolor_stroke</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>red value</parameter></paramdef>
<paramdef>double <parameter>green value</parameter></paramdef>
<paramdef>double <parameter>blue value</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the current stroke color to the supplied RGB values.
</para>
<note>
<para>
PDFlib V4.0: Deprecated, use <function>PDF_setcolor</function> instead.
</para>
</note>
</refsect1>
</refentry>
<refentry id="function.pdf-set-border-color">
<refnamediv>
<refname>PDF_set_border_color</refname>
<refpurpose>Sets color of border around links and annotations</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_set_border_color</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>red</parameter></paramdef>
<paramdef>double <parameter>green</parameter></paramdef>
<paramdef>double <parameter>blue</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the border color for all kinds of annotations.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-border-dash">
<refnamediv>
<refname>PDF_set_border_dash</refname>
<refpurpose>Sets dash style of border around links and annotations</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_set_border_dash</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>black</parameter></paramdef>
<paramdef>double <parameter>white</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the border dash style for all kinds of annotations.
See <function>PDF_setdash</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-border-style">
<refnamediv>
<refname>PDF_set_border_style</refname>
<refpurpose>Sets style of border around links and annotations</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_set_border_style</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>style</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the border style for all kinds of annotations.
<parameter>style</parameter> is "solid" or "dashed".
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-char-spacing">
<refnamediv>
<refname>PDF_set_char_spacing</refname>
<refpurpose>Deprecated: Sets character spacing</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See also <function>PDF_set_value</function>,
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-duration">
<refnamediv>
<refname>pdf_set_duration</refname>
<refpurpose>Deprecated: Sets duration between pages</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See <function>PDF_set_value</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-font">
<refnamediv>
<refname>PDF_set_font</refname>
<refpurpose>Deprecated: Selects a font face and size</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated. You should use <function>PDF_findfont</function> plus
<function>PDF_setfont</function> instead.
</para>
<para>
See <function>PDF_findfont</function>,
<function>PDF_setfont</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-horiz-scaling">
<refnamediv>
<refname>PDF_set_horiz_scaling</refname>
<refpurpose>Sets horizontal scaling of text</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_set_horiz_scaling</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>scale</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Deprecated.
</para>
<para>
See also <function>PDF_set_value</function>,
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-info">
<refnamediv>
<refname>PDF_set_info</refname>
<refpurpose>Fills a field of the document information</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_set_info</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>key</parameter></paramdef>
<paramdef>string <parameter>value</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Fill document information field key with value.
<parameter>key</parameter> is one of "Subject", "Title", "Creator",
"Author", "Keywords", or a user-defined key.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-leading">
<refnamediv>
<refname>PDF_set_leading</refname>
<refpurpose>Deprecated: Sets distance between text lines</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See also <function>PDF_set_value</function>,
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-parameter">
<refnamediv>
<refname>PDF_set_parameter</refname>
<refpurpose>Sets certain parameters</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_set_parameter</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>key</parameter></paramdef>
<paramdef>string <parameter>value</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set some PDFlib parameter with string type.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-text-pos">
<refnamediv>
<refname>PDF_set_text_pos</refname>
<refpurpose>Sets text position</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_set_text_pos</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the text output position.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-text-rendering">
<refnamediv>
<refname>PDF_set_text_rendering</refname>
<refpurpose>Deprecated: Determines how text is rendered</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See <function>PDF_set_value</function>,
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-text-rise">
<refnamediv>
<refname>pdf_set_text_rise</refname>
<refpurpose>Deprecated: Sets the text rise</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See <function>PDF_set_value</function>,
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-transition">
<refnamediv>
<refname>pdf_set_text_matrix</refname>
<refpurpose>Deprecated: Sets the text matrix</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
See <function>PDF_set_paramter</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-value">
<refnamediv>
<refname>PDF_set_value</refname>
<refpurpose>Sets certain numerical value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_set_value</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>key</parameter></paramdef>
<paramdef>double <parameter>value</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Set the value of some PDFlib parameter with float type.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-set-word-spacing">
<refnamediv>
<refname>pdf_set_word_spacing</refname>
<refpurpose>Depriciated: Sets spacing between words</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
Deprecated.
</para>
<para>
See also <function>PDF_set_value</function>,
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-show">
<refnamediv>
<refname>PDF_show</refname>
<refpurpose>Output text at current position</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_show</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Print text in the current font and size at the current position.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-show-boxed">
<refnamediv>
<refname>PDF_show_boxed</refname>
<refpurpose>Output text in a box</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_show_boxed</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
<paramdef>double <parameter>left</parameter></paramdef>
<paramdef>double <parameter>top</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
<paramdef>double <parameter>height</parameter></paramdef>
<paramdef>string <parameter>hmode</parameter></paramdef>
<paramdef>string <parameter><optional>feature</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Format text in the current font and size into the supplied text box
according to the requested formatting mode, which must be one of
"left", "right", "center", "justify", or "fulljustify".
If width and height are 0, only a single line is placed at the point
(left, top) in the requested mode.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-show-xy">
<refnamediv>
<refname>PDF_show_xy</refname>
<refpurpose>Output text at given position</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_show_xy</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
<paramdef>double <parameter>x</parameter></paramdef>
<paramdef>double <parameter>y</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Print text in the current font at (x, y).
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-skew">
<refnamediv>
<refname>PDF_skew</refname>
<refpurpose>Skews the coordinate system</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_skew</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>alpha</parameter></paramdef>
<paramdef>double <parameter>beta</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Skew the coordinate system in x and y direction by alpha and
beta degrees.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-stringwidth">
<refnamediv>
<refname>PDF_stringwidth</refname>
<refpurpose>Returns width of text using current font</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>double <function>PDF_stringwidth</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
<paramdef>string <parameter><optional>text</optional></parameter></paramdef>
<paramdef>string <parameter><optional>text</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Return the width of text in an arbitrary font.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-stroke">
<refnamediv>
<refname>PDF_stroke</refname>
<refpurpose>Draws line along path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_stroke</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Stroke the path with the current color and line width, and clear it.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-translate">
<refnamediv>
<refname>PDF_translate</refname>
<refpurpose>Sets origin of coordinate system</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>PDF_translate</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>double <parameter>tx</parameter></paramdef>
<paramdef>double <parameter>ty</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Translate the origin of the coordinate system.
</para>
</refsect1>
</refentry>
<refentry id="function.pdf-open-memory-image">
<refnamediv>
<refname>PDF_open_memory_image</refname>
<refpurpose>Opens an image created with PHP's image functions</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>PDF_open_memory_image</function></funcdef>
<paramdef>int <parameter>pdf object</parameter></paramdef>
<paramdef>int <parameter>image</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
The <function>PDF_open_memory_image</function> function takes
an image created with the PHP's image functions and makes it available
for the pdf object. The function returns a pdf
image identifier.
<example>
<title>Including a memory image</title>
<programlisting>
&lt;?php
$im = ImageCreate(100, 100);
$col = ImageColorAllocate($im, 80, 45, 190);
ImageFill($im, 10, 10, $col);
$pim = PDF_open_memory_image($pdf, $im);
ImageDestroy($im);
PDF_place_image($pdf, $pim, 100, 100, 1);
PDF_close_image($pdf, $pim);
?>
</programlisting>
</example></para>
<para>
See also <function>PDF_close_image</function>,
<function>PDF_place_image</function>.</para>
</refsect1>
</refentry>
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->