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.
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.
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.
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
|
- 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 containig 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