php-doc-en/functions/cpdf.sgml
Uwe Steinmann 755ce9ad97 more documentation
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@10251 c90b9560-bf6c-de11-be94-00142212c4b1
1999-07-01 20:23:46 +00:00

1891 lines
64 KiB
Text

<reference id="ref.cpdf">
<title>ClibPDF functions</title>
<titleabbrev>ClibPDF</titleabbrev>
<partintro>
<simpara>
ClibPDF allows to create pdf documents with PHP. It is available at
<ulink url="http://www.fastio.com">FastIO</ulink> but is not free
software. You should definitely read the licence before you start
playing with ClibPDF. If you cannot fullfil the licence agreement
consider using pdflib by Thomas Merz, which is also very powerful.
ClibPDF functionality and API is similar to Thomas Merz pdflib but
ClibPDF is, according to FastIO, faster and creates smaller documents.
This may have changed with the new version 2.0 of pdflib. A simple
benchmark (the pdfclock.c example from pdflib 2.0 turned into a php
script) actually show no difference in speed at all. The file size
is also similar if compression is turned off.
<simpara>
This documentation should be read with the ClibPDF manual since it
explains much of the library in much more detail. Once you understand
the manual of ClibPDF you should be able to start using the library
with PHP.
<simpara>
Many functions in the native ClibPDF and the PHP module, as
well as in pdflib, have the same name. All functions except for
<function>cpdf_open</function> take as their first parameter the
handle for the document on which the function is to be performed.
Currently this handle is not used internally since ClibPDF does
not support the creation of several PDF documents at the same time.
Actually, you should not even try it, the results are unpredictable. I
cannot oversee what the consequences in a multi threaded environment
are. According to the author of ClibPDF this will change in one of
the next releases (current version when this was written is 1.10).
If you need this functionality use the pdflib module.
<simpara>
One big advantage of ClibPDF over pdflib is the possibility to create
the pdf document completely in memory without using temporary files.
It also provides the ability to pass coordinates in a predefined
unit length. This is a handy feature but can be simulated with
<function>pdf_translate</function>.
<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 you get started. It creates a document
with one page. The page contains the text "Times-Roman" in an
outlined 30pt font. The text is underlined.
<example>
<title>Simple ClibPDF Example</title>
<programlisting>
&lt;?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
cpdf_set_font($cpdf, "Times-Roman", 30, 4);
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 750);
cpdf_moveto($cpdf, 50, 740);
cpdf_lineto($cpdf, 330, 740);
cpdf_stroke($cpdf);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>
</programlisting>
</example>
<simpara>
The pdflib distribution contains a more complex example which creates a
series of pages with an analog clock. Here is that example converted
into PHP using the ClibPDF extension:
<example>
<title>pdfclock example from pdflib 2.0 distribution</title>
<programlisting>
&lt;?php
$radius = 200;
$margin = 20;
$pagecount = 40;
$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php3");
cpdf_set_title($pdf, "Analog Clock");
while($pagecount-- > 0) {
cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);
cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0); /* wipe */
cpdf_translate($pdf, $radius + $margin, $radius + $margin);
cpdf_save($pdf);
cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);
/* minute strokes */
cpdf_setlinewidth($pdf, 2.0);
for ($alpha = 0; $alpha < 360; $alpha += 6)
{
cpdf_rotate($pdf, 6.0);
cpdf_moveto($pdf, $radius, 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 ($alpha = 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);
}
$ltime = getdate();
/* 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);
cpdf_lineto($pdf, $radius/2, 0.0);
cpdf_lineto($pdf, -$radius/10, $radius/20);
cpdf_closepath($pdf);
cpdf_fill($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, $radius * 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_setlinewidth($pdf, 2);
cpdf_save($pdf);
cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
cpdf_moveto($pdf, -$radius/5, 0.0);
cpdf_lineto($pdf, $radius, 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($pdf);
cpdf_finalize_page($pdf, $pagecount+1);
}
cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>
</programlisting>
</example>
</partintro>
<refentry id="function.cpdf-set-creator">
<refnamediv>
<refname>cpdf_set_creator</refname>
<refpurpose>Sets the creator field in the pdf document</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_creator</function></funcdef>
<paramdef>string <parameter>creator</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_creator</function> function sets the
creator of a pdf document.
<para>
See also <function>cpdf_set_subject</function>,
<function>cpdf_set_title</function>,
<function>cpdf_set_keywords</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-title">
<refnamediv>
<refname>cpdf_set_title</refname>
<refpurpose>Sets the title field of the pdf document</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_title</function></funcdef>
<paramdef>string <parameter>title</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_title</function> function sets the
title of a pdf document.
<para>
See also <function>cpdf_set_subject</function>,
<function>cpdf_set_creator</function>,
<function>cpdf_set_keywords</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-subject">
<refnamediv>
<refname>cpdf_set_subject</refname>
<refpurpose>Sets the subject field of the pdf document</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_subject</function></funcdef>
<paramdef>string <parameter>subject</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_subject</function> function sets the
subject of a pdf document.
<para>
See also <function>cpdf_set_title</function>,
<function>cpdf_set_creator</function>,
<function>cpdf_set_keywords</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-keywords">
<refnamediv>
<refname>cpdf_set_keywords</refname>
<refpurpose>Sets the keywords field of the pdf document</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_keywords</function></funcdef>
<paramdef>string <parameter>keywords</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_keywords</function> function sets the
keywords of a pdf document.
<para>
See also <function>cpdf_set_title</function>,
<function>cpdf_set_creator</function>,
<function>cpdf_set_subject</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-open">
<refnamediv>
<refname>cpdf_open</refname>
<refpurpose>Opens a new pdf document</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>int <function>cpdf_open</function></funcdef>
<paramdef>int <parameter>compression</parameter></paramdef>
<paramdef>string <parameter>filename</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_open</function> function opens
a new pdf document. The first parameter turns document compression
on if it is unequal to 0. The second optional parameter sets the
file in which the document is written. If it is omitted the document
is created in memory and can either be written into a file with
the <function>cpdf_save_to_file</function> or written to standard
output with <function>cpdf_output_buffer</function>.
<note><simpara>
The return value will be needed in futher versions of ClibPDF as the
first parameter in all other functions which are writing to the pdf
document.
</simpara><simpara>
The ClibPDF library takes the filename "-" as a synonym for stdout.
If PHP is compiled as an apache module this will not work because the
way ClibPDF outputs to stdout does not work with apache. You can solve
this problem by skipping the filename and using
<function>cpdf_output_buffer</function> to output the pdf document.
</simpara></note>
<para>
See also <function>cpdf_close</function>,
<function>cpdf_output_buffer</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-close">
<refnamediv>
<refname>cpdf_close</refname>
<refpurpose>Closes the pdf document</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_close</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_close</function> function closes the pdf document.
This should be the last function even after
<function>cpdf_finalize</function>, <function>cpdf_output_buffer</function>
and <function>cpdf_save_to_file</function>.
<para>
See also <function>cpdf_open</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-page-init">
<refnamediv>
<refname>cpdf_page_init</refname>
<refpurpose>Starts new page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_page_init</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>int <parameter>page number</parameter></paramdef>
<paramdef>int <parameter>orientation</parameter></paramdef>
<paramdef>double <parameter>height</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
<paramdef>double <parameter>unit</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_page_init</function> function starts a new
page with height <parameter>height</parameter> and width
<parameter>width</parameter>. The page has number
<parameter>page number</parameter> and orientation
<parameter>orientation</parameter>. <parameter>orientation</parameter>
can be 0 for portrait and 1 for landscape. The last optional parameter
<parameter>unit</parameter> sets the unit for the koordinate system.
The value should be the number of postscript points per unit. Since
one inch is equal to 72 points, a value of 72 would set the unit
to one inch. The default is also 72.
<para>
See also <function>cpdf_set_current_page</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-finalize-page">
<refnamediv>
<refname>cpdf_finalize_page</refname>
<refpurpose>Ends page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_finalize_page</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>int <parameter>page number</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_finalize_page</function> function ends the page
with page number <parameter>page number</parameter>.
This function is only for saving memory. A finalized page takes
less memory but cannot be modified anymore.
<para>
See also <function>cpdf_page_init</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-finalize">
<refnamediv>
<refname>cpdf_finalize</refname>
<refpurpose>Ends document</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_finalize</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_finalize</function> function ends the document.
You still have to call <function>cpdf_close</function>.
<para>
See also <function>cpdf_close</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-output-buffer">
<refnamediv>
<refname>cpdf_output_buffer</refname>
<refpurpose>Outputs the pdf document in memory buffer</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_output_buffer</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_output_buffer</function> function outputs
the pdf document to stdout. The document has to be created in memory which
is the case if <function>cpdf_open</function> has been called with
no filename parameter.
<para>
See also <function>cpdf_open</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-save-to-file">
<refnamediv>
<refname>cpdf_save_to_file</refname>
<refpurpose>Writes the pdf document into a file</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_save_to_file</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>string <parameter>filename</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_save_to_file</function> function outputs
the pdf document into a file if it has been created in memory.
This function is not needed if the pdf document has been open
by specifying a filename as a parameter of <function>cpdf_open</function>.
<para>
See also <function>cpdf_output_buffer</function>,
<function>cpdf_open</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-current-page">
<refnamediv>
<refname>cpdf_set_current_page</refname>
<refpurpose>Sets current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_current_page</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>int <parameter>page number</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_current_page</function> function set the page
on which all operations are performed. One can switch between pages
until a page is finished with <function>cpdf_finalize_page</function>.
<para>
See also <function>cpdf_finalize_page</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-begin-text">
<refnamediv>
<refname>cpdf_begin_text</refname>
<refpurpose>Starts text section</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_begin_text</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_begin_text</function> function starts a text
section. It must be ended with <function>cpdf_end_text</function>.
<example>
<title>Text output</title>
<programlisting>
&lt;?php cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", 4);
cpdf_text($pdf, 100, 100, "Some text");
cpdf_end_text($pdf) ?>
</programlisting></example>
<para>
See also <function>cpdf_end_text</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-end-text">
<refnamediv>
<refname>cpdf_end_text</refname>
<refpurpose>Starts text section</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_end_text</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_end_text</function> function ends a text
section which was started with <function>cpdf_begin_text</function>.
<example>
<title>Text output</title>
<programlisting>
&lt;?php cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", 4);
cpdf_text($pdf, 100, 100, "Some text");
cpdf_end_text($pdf) ?>
</programlisting></example>
<para>
See also <function>cpdf_begin_text</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-show">
<refnamediv>
<refname>cpdf_show</refname>
<refpurpose>Output text at current position</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_show</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_show</function> function outputs the
string in <parameter>text</parameter> at the current position.
<para>
See also <function>cpdf_text</function>,
<function>cpdf_begin_text</function>,
<function>cpdf_end_text</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-show-xy">
<refnamediv>
<refname>cpdf_show_xy</refname>
<refpurpose>Output text at position</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_show_xy</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_show_xy</function> function outputs the
string <parameter>text</parameter> at position with
coordinates (<parameter>x-koor</parameter>, <parameter>y-koor</parameter>).
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<note>
<simpara>The function <function>cpdf_show_xy</function> is identical
to <function>cpdf_text</function> without the optional parameters.</simpara></note>
<para>
See also <function>cpdf_text</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-text">
<refnamediv>
<refname>cpdf_text</refname>
<refpurpose>Output text with parameters</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_text</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
<paramdef>double <parameter>orientation</parameter></paramdef>
<paramdef>int <parameter>alignmode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_text</function> function outputs the
string <parameter>text</parameter> at position with
coordinates (<parameter>x-koor</parameter>, <parameter>y-koor</parameter>).
The optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used.
Otherwise the koodinates
are measured in postscript points disregarding the current unit.
The optional parameter <parameter>orientation</parameter> is the rotation
of the text in degree. The optional parameter
<parameter>alignmode</parameter> determines how the text is align.
See the ClibPDF documentation for possible values.
<para>
See also <function>cpdf_show_xy</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-font">
<refnamediv>
<refname>cpdf_set_font</refname>
<refpurpose>Select the current font face and size</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_font</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>string <parameter>font name</parameter></paramdef>
<paramdef>double <parameter>size</parameter></paramdef>
<paramdef>int <parameter>encoding</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_font</function> function sets the the
current font face, font size and encoding. Currently only
the standard postscript fonts are supported.
The last parameter
<parameter>encoding</parameter> can take the following values:
2 = macroman, 3 = macexpert, 4 = winansi.
Any other value selects the font's buildin encoding.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-leading">
<refnamediv>
<refname>cpdf_set_leading</refname>
<refpurpose>Sets distance between text lines</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set leading</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>distance</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_leading</function> function sets the distance
between text lines. This will be used if text is output by
<function>cpdf_continue_text</function>.
<para>
See also <function>cpdf_continue_text</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-text-rendering">
<refnamediv>
<refname>cpdf_set_text_rendering</refname>
<refpurpose>Determines how text is rendered</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_text_rendering</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_text_rendering</function> function determines
how text is rendered. The possible values for <parameter>mode</parameter>
are 0=fill text, 1=stroke text, 2=fill and stroke text, 3=invisible,
4=fill text and add it to cliping path, 5=stroke text and add it to
clipping path, 6=fill and stroke text and add
it to cliping path, 7=add it to clipping path.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-horiz-scaling">
<refnamediv>
<refname>cpdf_set_horiz_scaling</refname>
<refpurpose>Sets horizontal scaling of text</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_horiz_scaling</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>scale</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_horiz_scaling</function> function sets the
horizontal scaling to <parameter>scale</parameter> percent.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-text-rise">
<refnamediv>
<refname>cpdf_set_text_rise</refname>
<refpurpose>Sets the text rise</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_text_rise</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_text_rise</function> function sets the
text rising to <parameter>value</parameter> units.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-text-matrix">
<refnamediv>
<refname>cpdf_set_text_matrix</refname>
<refpurpose>Sets the text matrix</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_text_matrix</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>array <parameter>matrix</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_text_matrix</function> function sets
a matrix which describes a transformation applied on the current
text font.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-text-pos">
<refnamediv>
<refname>cpdf_set_text_pos</refname>
<refpurpose>Sets text position</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_text_pos</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_text_pos</function> function sets the
position of text for the next <function>cpdf_show</function>
function call.
<para>
The last optional parameter <parameter>mode</parameter> determines
the unit length. If is 0 or omitted the default unit as specified
for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<para>
See also <function>cpdf_show</function>,
<function>cpdf_text</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-char-spacing">
<refnamediv>
<refname>cpdf_set_char_spacing</refname>
<refpurpose>Sets character spacing</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_char_spacing</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>space</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_char_spacing</function> function sets the
spacing between characters.
<para>
See also <function>cpdf_set_word_spacing</function>,
<function>cpdf_set_leading</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-set-word-spacing">
<refnamediv>
<refname>cpdf_set_word_spacing</refname>
<refpurpose>Sets spacing between words</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_word_spacing</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>space</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_word_spacing</function> function sets the
spacing between words.
<para>
See also <function>cpdf_set_char_spacing</function>,
<function>cpdf_set_leading</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-continue-text">
<refnamediv>
<refname>cpdf_continue_text</refname>
<refpurpose>Output text in next line</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_continue_text</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_continue_text</function> function outputs the
string in <parameter>text</parameter> in the next line.
<para>
See also <function>cpdf_show_xy</function>,
<function>cpdf_text</function>,
<function>cpdf_set_leading</function>,
<function>cpdf_set_text_pos</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-stringwidth">
<refnamediv>
<refname>cpdf_stringwidth</refname>
<refpurpose>Returns width of text in current font</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>double <function>cpdf_stringwidth</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_stringwidth</function> function returns the
width of the string in <parameter>text</parameter>. It requires
a font to be set before.
<para>
See also <function>cpdf_set_font</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-save">
<refnamediv>
<refname>cpdf_save</refname>
<refpurpose>Saves current enviroment</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_save</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_save</function> function saves the current
enviroment. It works like the postscript command gsave. Very
useful if you want to translate or rotate an object without effecting
other objects.
<para>
See also <function>cpdf_restore</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-restore">
<refnamediv>
<refname>cpdf_restore</refname>
<refpurpose>Restores formerly saved enviroment</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_restore</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_restore</function> function restores the
enviroment saved with <function>cpdf_save</function>. It works
like the postscript command grestore. Very
useful if you want to translate or rotate an object without effecting
other objects.
<example>
<title>Save/Restore</title>
<programlisting>
&lt;?php cpdf_save($pdf);
// do all kinds of rotations, transformations, ...
cpdf_restore($pdf) ?>
</programlisting></example>
<para>
See also <function>cpdf_save</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-translate">
<refnamediv>
<refname>cpdf_translate</refname>
<refpurpose>Sets origin of coordinate system</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_translate</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_translate</function> function set the origin of
coordinate system to the point (<parameter>x-koor</parameter>,
<parameter>y-koor</parameter>).
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
</refsect1>
</refentry>
<refentry id="function.cpdf-scale">
<refnamediv>
<refname>cpdf_scale</refname>
<refpurpose>Sets scaling</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_scale</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-scale</parameter></paramdef>
<paramdef>double <parameter>y-scale</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_scale</function> function set the scaling factor
in both directions.
</refsect1>
</refentry>
<refentry id="function.cpdf-rotate">
<refnamediv>
<refname>cpdf_rotate</refname>
<refpurpose>Sets rotation</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_rotate</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>angle</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_rotate</function> function set the rotation in
degress to <parameter>angle</parameter>.
</refsect1>
</refentry>
<refentry id="function.cpdf-setflat">
<refnamediv>
<refname>cpdf_setflat</refname>
<refpurpose>Sets flatness</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setflat</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setflat</function> function set the flatness to
a value between 0 and 100.
</refsect1>
</refentry>
<refentry id="function.cpdf-setlinejoin">
<refnamediv>
<refname>cpdf_setlinejoin</refname>
<refpurpose>Sets linejoin parameter</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setlinejoin</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>long <parameter>value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setlinejoin</function> function set the linejoin
parameter between a value of 0 and 2. 0 = miter, 1 = round, 2 = bevel.
</refsect1>
</refentry>
<refentry id="function.cpdf-setlinecap">
<refnamediv>
<refname>cpdf_setlinecap</refname>
<refpurpose>Sets linecap aparameter</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setlinecap</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>int <parameter>value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setlinecap</function> function set the linecap
parameter between a value of 0 and 2. 0 = butt end, 1 = round,
2 = projecting square.
</refsect1>
</refentry>
<refentry id="function.cpdf-setmiterlimit">
<refnamediv>
<refname>cpdf_setmiterlimit</refname>
<refpurpose>Sets miter limit</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setmiterlimit</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setmiterlimit</function> function set the miter limit
to a value greater or equal than 1.
</refsect1>
</refentry>
<refentry id="function.cpdf-setlinewidth">
<refnamediv>
<refname>cpdf_setlinewidth</refname>
<refpurpose>Sets line width</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setlinewidth</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setlinewidth</function> function set the line width
to <parameter>width</parameter>.
</refsect1>
</refentry>
<refentry id="function.cpdf-setdash">
<refnamediv>
<refname>cpdf_setdash</refname>
<refpurpose>Sets dash pattern</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setdash</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>white</parameter></paramdef>
<paramdef>double <parameter>black</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setdash</function> function set the dash pattern
<parameter>white</parameter> white units and <parameter>black</parameter>
black units. If both are 0 a solid line is set.
</refsect1>
</refentry>
<refentry id="function.cpdf-moveto">
<refnamediv>
<refname>cpdf_moveto</refname>
<refpurpose>Sets current point</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_moveto</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_moveto</function> function set the current point
to the coordinates <parameter>x-koor</parameter> and
<parameter>y-koor</parameter>.
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
</refsect1>
</refentry>
<refentry id="function.cpdf-rmoveto">
<refnamediv>
<refname>cpdf_rmoveto</refname>
<refpurpose>Sets current point</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_rmoveto</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_rmoveto</function> function set the current point
relative to the coordinates <parameter>x-koor</parameter> and
<parameter>y-koor</parameter>.
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<para>
See also <function>cpdf_moveto</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-curveto">
<refnamediv>
<refname>cpdf_curveto</refname>
<refpurpose>Draws a curve</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_curveto</function></funcdef>
<paramdef>int <parameter>pdf document</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>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_curveto</function> function draws a Bezier curve
from the current point to the point
(<parameter>x3</parameter>, <parameter>y3</parameter>) using
(<parameter>x1</parameter>, <parameter>y1</parameter>) and
(<parameter>x2</parameter>, <parameter>y2</parameter>) as control
points.
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<para>
See also <function>cpdf_moveto</function>,
<function>cpdf_rmoveto</function>,
<function>cpdf_rlineto</function>,
<function>cpdf_lineto</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-lineto">
<refnamediv>
<refname>cpdf_lineto</refname>
<refpurpose>Draws a line</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_lineto</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_lineto</function> function draws a line from
the current point to the point with coordinates
(<parameter>x-koor</parameter>, <parameter>y-koor</parameter>).
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<para>
See also <function>cpdf_moveto</function>,
<function>cpdf_rmoveto</function>,
<function>cpdf_curveto</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-rlineto">
<refnamediv>
<refname>cpdf_rlineto</refname>
<refpurpose>Draws a line</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_rlineto</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_rlineto</function> function draws a line from
the current point to the relative point with coordinates
(<parameter>x-koor</parameter>, <parameter>y-koor</parameter>).
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<para>
See also <function>cpdf_moveto</function>,
<function>cpdf_rmoveto</function>,
<function>cpdf_curveto</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-circle">
<refnamediv>
<refname>cpdf_circle</refname>
<refpurpose>Draw a circle</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_circle</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>double <parameter>radius</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_circle</function> function draws a circle with
center at point
(<parameter>x-koor</parameter>, <parameter>y-koor</parameter>)
and radius <parameter>radius</parameter>.
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<para>
See also <function>cpdf_arc</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-arc">
<refnamediv>
<refname>cpdf_arc</refname>
<refpurpose>Draws an arc</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_arc</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>double <parameter>radius</parameter></paramdef>
<paramdef>double <parameter>start</parameter></paramdef>
<paramdef>double <parameter>end</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_arc</function> function draws an arc with
center at point
(<parameter>x-koor</parameter>, <parameter>y-koor</parameter>)
and radius <parameter>radius</parameter>, starting at angle
<parameter>start</parameter> and ending at angle
<parameter>end</parameter>.
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<para>
See also <function>cpdf_circle</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-rect">
<refnamediv>
<refname>cpdf_rect</refname>
<refpurpose>Draw a rectangle</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_rect</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
<paramdef>double <parameter>height</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_rect</function> function draws a rectangle with
its lower left corner at point
(<parameter>x-koor</parameter>, <parameter>y-koor</parameter>).
This width is set to <parameter>widgth</parameter>.
This height is set to <parameter>height</parameter>.
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
</refsect1>
</refentry>
<refentry id="function.cpdf-closepath">
<refnamediv>
<refname>cpdf_closepath</refname>
<refpurpose>Close path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_closepath</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_closepath</function> function closes the
current path.
</refsect1>
</refentry>
<refentry id="function.cpdf-stroke">
<refnamediv>
<refname>cpdf_stroke</refname>
<refpurpose>Draw line along path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_stroke</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_stroke</function> function draws a line along
current path.
<para>
See also <function>cpdf_closepath</function>,
<function>cpdf_closepath_stroke</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-closepath-stroke">
<refnamediv>
<refname>cpdf_closepath_stroke</refname>
<refpurpose>Close path and draw line along path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_closepath_stroke</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_closepath_stroke</function> function is a
combination of <function>cpdf_closepath</function> and
<function>cpdf_stroke</function>. Than clears the path.
<para>
See also <function>cpdf_closepath</function>,
<function>cpdf_stroke</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-fill">
<refnamediv>
<refname>cpdf_fill</refname>
<refpurpose>Fill current path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_fill</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_fill</function> function fills the interior of
the current path with the current fill color.
<para>
See also <function>cpdf_closepath</function>,
<function>cpdf_stroke</function>,
<function>cpdf_setgray_fill</function>,
<function>cpdf_setgray</function>,
<function>cpdf_setrgbcolor_fill</function>,
<function>cpdf_setrgbcolor</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-fill-stroke">
<refnamediv>
<refname>cpdf_fill_stroke</refname>
<refpurpose>Fill and stroke current path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_fill_stroke</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_fill_stroke</function> function fills the interior of
the current path with the current fill color and draws current path.
<para>
See also <function>cpdf_closepath</function>,
<function>cpdf_stroke</function>,
<function>cpdf_fill</function>,
<function>cpdf_setgray_fill</function>,
<function>cpdf_setgray</function>,
<function>cpdf_setrgbcolor_fill</function>,
<function>cpdf_setrgbcolor</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-closepath-fill-stroke">
<refnamediv>
<refname>cpdf_closepath_fill_stroke</refname>
<refpurpose>Close, fill and stroke current path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_closepath_fill_stroke</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_closepath_fill_stroke</function> function closes,
fills the interior of
the current path with the current fill color and draws current path.
<para>
See also <function>cpdf_closepath</function>,
<function>cpdf_stroke</function>,
<function>cpdf_fill</function>,
<function>cpdf_setgray_fill</function>,
<function>cpdf_setgray</function>,
<function>cpdf_setrgbcolor_fill</function>,
<function>cpdf_setrgbcolor</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-clip">
<refnamediv>
<refname>cpdf_clip</refname>
<refpurpose>Clips to current path</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_clip</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_clip</function> function clips all drawing
to the current path.
</refsect1>
</refentry>
<refentry id="function.cpdf-setgray-fill">
<refnamediv>
<refname>cpdf_setgray_fill</refname>
<refpurpose>Sets filling color to gray value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setgray_fill</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setgray_fill</function> function sets the current
gray value to fill a path.
<para>
See also <function>cpdf_setrgbcolor_fill</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-setgray-stroke">
<refnamediv>
<refname>cpdf_setgray_stroke</refname>
<refpurpose>Sets drawing color to gray value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setgray_stroke</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>gray value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setgray_stroke</function> function sets the current
drawing color to the given gray value.
<para>
See also <function>cpdf_setrgbcolor_stroke</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-setgray">
<refnamediv>
<refname>cpdf_setgray</refname>
<refpurpose>Sets drawing and filling color to gray value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setgray</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>gray value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setgray_stroke</function> function sets the current
drawing and filling color to the given gray value.
<para>
See also <function>cpdf_setrgbcolor_stroke</function>,
<function>cpdf_setrgbcolor_fill</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-setrgbcolor-fill">
<refnamediv>
<refname>cpdf_setrgbcolor_fill</refname>
<refpurpose>Sets filling color to rgb color value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setrgbcolor_fill</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>red value</parameter></paramdef>
<paramdef>double <parameter>green value</parameter></paramdef>
<paramdef>double <parameter>blue value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setrgbcolor_fill</function> function sets the current
rgb color value to fill a path.
<para>
See also <function>cpdf_setrgbcolor_stroke</function>,
<function>cpdf_setrgbcolor</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-setrgbcolor-stroke">
<refnamediv>
<refname>cpdf_setrgbcolor_stroke</refname>
<refpurpose>Sets drawing color to rgb color value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setrgbcolor_stroke</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>red value</parameter></paramdef>
<paramdef>double <parameter>green value</parameter></paramdef>
<paramdef>double <parameter>blue value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setrgbcolor_stroke</function> function sets the current
drawing color to the given rgb color value.
<para>
See also <function>cpdf_setrgbcolor_fill</function>,
<function>cpdf_setrgbcolor</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-setrgbcolor">
<refnamediv>
<refname>cpdf_setrgbcolor</refname>
<refpurpose>Sets drawing and filling color to rgb color value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_setrgbcolor</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>double <parameter>red value</parameter></paramdef>
<paramdef>double <parameter>green value</parameter></paramdef>
<paramdef>double <parameter>blue value</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_setrgbcolor_stroke</function> function sets the current
drawing and filling color to the given rgb color value.
<para>
See also <function>cpdf_setrgbcolor_stroke</function>,
<function>cpdf_setrgbcolor_fill</function>.
</refsect1>
</refentry>
<refentry id="function.cpdf-add-outline">
<refnamediv>
<refname>cpdf_add_outline</refname>
<refpurpose>Adds bookmark for current page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_add_outline</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>string <parameter>text</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_add_outline</function> function adds a bookmark
with text <parameter>text</parameter> that points to the current page.
<example>
<title>Adding a page outline</title>
<programlisting>
&lt;?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
// ...
// some drawing
// ...
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>
</programlisting>
<para>
</example>
</refsect1>
</refentry>
<refentry id="function.cpdf-set-page-animation">
<refnamediv>
<refname>cpdf_set_page_animation</refname>
<refpurpose>Sets duration between pages</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_set_page_animation</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>int <parameter>transition</parameter></paramdef>
<paramdef>double <parameter>duration</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_set_page_animation</function> function set the
transition between following pages.
<para>
The value of <parameter>transition</parameter>
can be
<simplelist>
<member>
0 for none,
</member>
<member>
1 for two lines sweeping across the screen reveal the page,
</member>
<member>
2 for multiple lines sweeping across the screen reveal the page,
</member>
<member>
3 for a box reveals the page,
</member>
<member>
4 for a single line sweeping across the screen reveals the page,
</member>
<member>
5 for the old page dissolves to reveal the page,
</member>
<member>
6 for the dissolve effect moves from one screen edge to another,
</member>
<member>
7 for the old page is simply replaced by the new page (default)
</member>
</simplelist>
<para>
The value of <parameter>duration</parameter> is the number of seconds
between page flipping.
</refsect1>
</refentry>
<refentry id="function.cpdf-import-jpeg">
<refnamediv>
<refname>cpdf_import_jpeg</refname>
<refpurpose>Opens a JPEG image</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>int <function>cpdf_open_jpeg</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>string <parameter>file name</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>double <parameter>angle</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
<paramdef>double <parameter>height</parameter></paramdef>
<paramdef>double <parameter>x-scale</parameter></paramdef>
<paramdef>double <parameter>y-scale</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_import_jpeg</function> function opens an image stored
in the file with the name <parameter>file name</parameter>.
The format of the image has to be jpeg. The image is placed on the current
page at position (<parameter>x-koor</parameter>, <parameter>y-koor</parameter>).
The image is rotated by <parameter>angle</parameter> degres.
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<para>
See also <function>cpdf_place_inline_image</function>,
</refsect1>
</refentry>
<refentry id="function.cpdf-place-inline-image">
<refnamediv>
<refname>cpdf_place_inline_image</refname>
<refpurpose>Places an image on the page</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_place_inline_image</function></funcdef>
<paramdef>int <parameter>pdf document</parameter></paramdef>
<paramdef>int <parameter>image</parameter></paramdef>
<paramdef>double <parameter>x-koor</parameter></paramdef>
<paramdef>double <parameter>y-koor</parameter></paramdef>
<paramdef>double <parameter>angle</parameter></paramdef>
<paramdef>double <parameter>width</parameter></paramdef>
<paramdef>double <parameter>height</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_place_inline_image</function> function places an image
created with the php image functions on the page at postion
(<parameter>x-koor</parameter>,
<parameter>y-koor</parameter>). The image can be scaled at the same
time.
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
<para>
See also <function>cpdf_import_jpeg</function>,
</refsect1>
</refentry>
<refentry id="function.cpdf-add-annotation">
<refnamediv>
<refname>cpdf_add_annotation</refname>
<refpurpose>Adds annotation</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcdef>void <function>cpdf_add_annotation</function></funcdef>
<paramdef>int <parameter>pdf document</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>title</parameter></paramdef>
<paramdef>string <parameter>content</parameter></paramdef>
<paramdef>int <parameter>mode</parameter></paramdef>
</funcsynopsis>
<para>
The <function>cpdf_add_annotation</function> adds a note with
the lower left corner at (<parameter>llx</parameter>,
<parameter>lly</parameter>) and the upper right corner at
(<parameter>urx</parameter>, <parameter>ury</parameter>).
<para>
The last optional parameter determines the unit length. If is 0 or omitted
the default unit as specified for the page is used. Otherwise the koodinates
are measured in postscript points disregarding the current unit.
</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:
-->