   #PHP Manual Function Reference overload pdf_add_annotation

   PHP Manual
   Prev  Next
   ______________________________________________________________________

LXXIX. PDF functions

Introduction

   The PDF functions in PHP can create PDF files using the PDFlib library
   created by Thomas Merz.

   The documentation in this section is only meant to be an overview of
   the available functions in the PDFlib library and should not be
   considered an exhaustive reference. Please consult the documentation
   included in the source distribution of PDFlib for the full and
   detailed explanation of each function here. It provides a very good
   overview of what PDFlib is capable of doing and contains the most
   up-to-date documentation of all functions.

   All of the functions in PDFlib and the PHP module have identical
   function names and parameters. You will need to understand some of the
   basic concepts of PDF and PostScript to efficiently use this
   extension. 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. Please see the PDFlib documentation
   included with the source distribution of PDFlib for a more thorough
   explanation of the coordinate system used.

   Please note that most of the PDF functions require a pdfdoc as its
   first parameter. Please see the examples below for more information.

     Note: If you're interested in alternative free PDF generators that
     do not utilize external PDF libraries, see this related FAQ.

Requirements

   PDFlib is available for download at
   http://www.pdflib.com/products/pdflib/index.html, but requires that
   you purchase a license for commercial use. The JPEG and TIFF libraries
   are required to compile this extension.

Issues with older versions of PDFlib

   Any version of PHP 4 after March 9, 2000 does not support versions of
   PDFlib older than 3.0.

   PDFlib 3.0 or greater is supported by PHP 3.0.19 and later.

Installation

   To get these functions to work, you have to compile PHP with
   --with-pdflib[=DIR]. DIR is the PDFlib base install directory,
   defaults to /usr/local. In addition you can specify the jpeg, tiff,
   and pnglibrary for PDFlib to use, which is optional for PDFlib 4.x. To
   do so add to your configure line the options --with-jpeg-dir[=DIR]
   --with-png-dir[=DIR] --with-tiff-dir[=DIR].

   When using version 3.x of PDFlib, you should configure PDFlib with the
   option --enable-shared-pdflib.

Runtime Configuration

   This extension has no configuration directives defined in php.ini.

Confusion with old PDFlib versions

   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 FALSE was adopted. For compatibility reasons, this
   binding for PDFlib still supports the old functions, but they should
   be replaced by their new versions. PDFlib GmbH will not support any
   problems arising from the use of these deprecated functions.

   Table 1. Deprecated functions and their replacements
   Old function Replacement
   pdf_put_image() Not needed anymore.
   pdf_execute_image() Not needed anymore.
   pdf_get_annotation() pdf_get_bookmark() using the same parameters.
   pdf_get_font() pdf_get_value() passing "font" as the second parameter.
   pdf_get_fontsize() pdf_get_value() passing "fontsize" as the second
   parameter.
   pdf_get_fontname() pdf_get_parameter() passing "fontname" as the
   second parameter.
   pdf_set_info_creator() pdf_set_info() passing "Creator" as the second
   parameter.
   pdf_set_info_title() pdf_set_info() passing "Title" as the second
   parameter.
   pdf_set_info_subject() pdf_set_info() passing "Subject" as the second
   parameter.
   pdf_set_info_author() pdf_set_info() passing "Author" as the second
   parameter.
   pdf_set_info_keywords() pdf_set_info() passing "Keywords" as the
   second parameter.
   pdf_set_leading() pdf_set_value() passing "leading" as the second
   parameter.
   pdf_set_text_rendering() pdf_set_value() passing "textrendering" as
   the second parameter.
   pdf_set_text_rise() pdf_set_value() passing "textrise" as the second
   parameter.
   pdf_set_horiz_scaling() pdf_set_value() passing "horizscaling" as the
   second parameter.
   pdf_set_text_matrix() Not available anymore
   pdf_set_char_spacing() pdf_set_value() passing "charspacing" as the
   second parameter.
   pdf_set_word_spacing() pdf_set_value() passing "wordspacing" as the
   second parameter.
   pdf_set_transition() pdf_set_parameter() passing "transition" as the
   second parameter.
   pdf_open() pdf_new() plus an subsequent call of pdf_open_file()
   pdf_set_font() pdf_findfont() plus an subsequent call of pdf_setfont()
   pdf_set_duration() pdf_set_value() passing "duration" as the second
   parameter.
   pdf_open_gif() pdf_open_image_file() passing "gif" as the second
   parameter.
   pdf_open_jpeg() pdf_open_image_file() passing "jpeg" as the second
   parameter.
   pdf_open_tiff() pdf_open_image_file() passing "tiff" as the second
   parameter.
   pdf_open_png() pdf_open_image_file() passing "png" as the second
   parameter.
   pdf_get_image_width() pdf_get_value() passing "imagewidth" as the
   second parameter and the image as the third parameter.
   pdf_get_image_height() pdf_get_value() passing "imageheight" as the
   second parameter and the image as the third parameter.

Examples

   Most of the functions are fairly easy to use. The most difficult part
   is probably creating your first PDF document. The following example
   should help to get you started. It creates test.pdf with one page. The
   page contains the text "Times Roman outlined" in an outlined, 30pt
   font. The text is also underlined.

   Example 1. Creating a PDF document with PDFlib
   <?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");
   $font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
   pdf_setfont($pdf, $font, 10);
   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 "<A HREF=getpdf.php>finished</A>";
   ?>
   The script getpdf.php just returns the pdf document.

   Example 2. Outputting a precalculated PDF
   <?php
   $len = filesize($filename);
   header("Content-type: application/pdf");
   header("Content-Length: $len");
   header("Content-Disposition: inline; filename=foo.pdf");
   readfile($filename);
   ?>

   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 to alleviate the need to use temporary files. The
   example was converted to PHP from the PDFlib example. (The same
   example is available in the CLibPDF documentation.)

   Example 3. pdfclock example from PDFlib distribution
   <?php
   $radius = 200;
   $margin = 20;
   $pagecount = 10;
   $pdf = pdf_new();
   if (!pdf_open_file($pdf, "")) {
       echo 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 < 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 < 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");
   echo $buf;
   pdf_delete($pdf);
   ?>

See Also

     Note: An alternative PHP module for PDF document creation based on
     FastIO's ClibPDF is available. Please see the ClibPDF section for
     details. Note that ClibPDF has a slightly different API than
     PDFlib.

   Table of Contents
   pdf_add_annotation -- Deprecated: Adds annotation
   pdf_add_bookmark -- Adds bookmark for current page
   pdf_add_launchlink -- Add a launch annotation for current page
   pdf_add_locallink -- Add a link annotation for current page
   pdf_add_note -- Sets annotation for current page
   pdf_add_outline -- Deprecated: Adds bookmark for current page
   pdf_add_pdflink -- Adds file link annotation for current page
   pdf_add_thumbnail -- Adds thumbnail for current page
   pdf_add_weblink -- Adds weblink for current page
   pdf_arc -- Draws an arc (counterclockwise)
   pdf_arcn -- Draws an arc (clockwise)
   pdf_attach_file -- Adds a file attachment for current page
   pdf_begin_page -- Starts new page
   pdf_begin_pattern -- Starts new pattern
   pdf_begin_template -- Starts new template
   pdf_circle -- Draws a circle
   pdf_clip -- Clips to current path
   pdf_close_image -- Closes an image
   pdf_close_pdi_page --  Close the page handle
   pdf_close_pdi --  Close the input PDF document
   pdf_close -- Closes a pdf resource
   pdf_closepath_fill_stroke -- Closes, fills and strokes current path
   pdf_closepath_stroke -- Closes path and draws line along path
   pdf_closepath -- Closes path
   pdf_concat -- Concatenate a matrix to the CTM
   pdf_continue_text -- Outputs text in next line
   pdf_curveto -- Draws a curve
   pdf_delete -- Deletes a PDF object
   pdf_end_page -- Ends a page
   pdf_end_pattern -- Finish pattern
   pdf_end_template -- Finish template
   pdf_endpath -- Deprecated: Ends current path
   pdf_fill_stroke -- Fills and strokes current path
   pdf_fill -- Fills current path
   pdf_findfont -- Prepare font for later use with pdf_setfont().
   pdf_get_buffer -- Fetch the buffer containing the generated PDF data.
   pdf_get_font -- Deprecated: font handling
   pdf_get_fontname -- Deprecated: font handling
   pdf_get_fontsize -- Deprecated: font handling
   pdf_get_image_height -- Deprecated: returns height of an image
   pdf_get_image_width -- Deprecated: Returns width of an image
   pdf_get_majorversion --  Returns the major version number of the
          PDFlib

   pdf_get_minorversion --  Returns the minor version number of the
          PDFlib

   pdf_get_parameter -- Gets certain parameters
   pdf_get_pdi_parameter -- Get some PDI string parameters
   pdf_get_pdi_value -- Gets some PDI numerical parameters
   pdf_get_value -- Gets certain numerical value
   pdf_initgraphics -- Resets graphic state
   pdf_lineto -- Draws a line
   pdf_makespotcolor -- Makes a spotcolor
   pdf_moveto -- Sets current point
   pdf_new -- Creates a new pdf resource
   pdf_open_CCITT -- Opens a new image file with raw CCITT data
   pdf_open_file -- Opens a new pdf object
   pdf_open_gif -- Deprecated: Opens a GIF image
   pdf_open_image_file -- Reads an image from a file
   pdf_open_image -- Versatile function for images
   pdf_open_jpeg -- Deprecated: Opens a JPEG image
   pdf_open_memory_image -- Opens an image created with PHP's image
          functions

   pdf_open_pdi_page --  Prepare a page
   pdf_open_pdi --  Opens a PDF file
   pdf_open_png --  Deprecated: Opens a PNG image
   pdf_open_tiff -- Deprecated: Opens a TIFF image
   pdf_open -- Deprecated: Open a new pdf object
   pdf_place_image -- Places an image on the page
   pdf_place_pdi_page -- Places an image on the page
   pdf_rect -- Draws a rectangle
   pdf_restore -- Restores formerly saved environment
   pdf_rotate -- Sets rotation
   pdf_save -- Saves the current environment
   pdf_scale -- Sets scaling
   pdf_set_border_color -- Sets color of border around links and
          annotations

   pdf_set_border_dash -- Sets dash style of border around links and
          annotations

   pdf_set_border_style -- Sets style of border around links and
          annotations

   pdf_set_char_spacing -- Deprecated: Sets character spacing
   pdf_set_duration -- Deprecated: Sets duration between pages
   pdf_set_font -- Deprecated: Selects a font face and size
   pdf_set_horiz_scaling -- Sets horizontal scaling of text
   pdf_set_info_author --  Deprecated: Fills the author field of the
          document

   pdf_set_info_creator --  Deprecated: Fills the creator field of the
          document

   pdf_set_info_keywords --  Deprecated: Fills the keywords field of the
          document

   pdf_set_info_subject --  Deprecated: Fills the subject field of the
          document

   pdf_set_info_title --  Deprecated: Fills the title field of the
          document

   pdf_set_info -- Fills a field of the document information
   pdf_set_leading -- Deprecated: Sets distance between text lines
   pdf_set_parameter -- Sets certain parameters
   pdf_set_text_matrix -- Deprecated: Sets the text matrix
   pdf_set_text_pos -- Sets text position
   pdf_set_text_rendering -- Deprecated: Determines how text is rendered
   pdf_set_text_rise -- Deprecated: Sets the text rise
   pdf_set_value -- Sets certain numerical value
   pdf_set_word_spacing -- Deprecated: Sets spacing between words
   pdf_setcolor -- Sets fill and stroke color
   pdf_setdash -- Sets dash pattern
   pdf_setflat -- Sets flatness
   pdf_setfont -- Set the current font
   pdf_setgray_fill -- Sets filling color to gray value
   pdf_setgray_stroke -- Sets drawing color to gray value
   pdf_setgray -- Sets drawing and filling color to gray value
   pdf_setlinecap -- Sets linecap parameter
   pdf_setlinejoin -- Sets linejoin parameter
   pdf_setlinewidth -- Sets line width
   pdf_setmatrix -- Sets current transformation matrix
   pdf_setmiterlimit -- Sets miter limit
   pdf_setpolydash -- Deprecated: Sets complicated dash pattern
   pdf_setrgbcolor_fill -- Sets filling color to rgb color value
   pdf_setrgbcolor_stroke -- Sets drawing color to rgb color value
   pdf_setrgbcolor -- Sets drawing and filling color to rgb color value
   pdf_show_boxed -- Output text in a box
   pdf_show_xy -- Output text at given position
   pdf_show -- Output text at current position
   pdf_skew -- Skews the coordinate system
   pdf_stringwidth -- Returns width of text using current font
   pdf_stroke -- Draws line along path
   pdf_translate -- Sets origin of coordinate system
   ______________________________________________________________________

   Prev     Home               Next
   overload  Up  pdf_add_annotation
