--- a/tcpdf/tcpdf.php +++ b/tcpdf/tcpdf.php @@ -1,1 +1,26352 @@ - +<?php +//============================================================+ +// File name : tcpdf.php +// Version : 5.9.059 +// Begin : 2002-08-03 +// Last Update : 2011-02-27 +// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com +// License : http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT GNU-LGPLv3 + YOU CAN'T REMOVE ANY TCPDF COPYRIGHT NOTICE OR LINK FROM THE GENERATED PDF DOCUMENTS. +// ------------------------------------------------------------------- +// Copyright (C) 2002-2011 Nicola Asuni - Tecnick.com S.r.l. +// +// This file is part of TCPDF software library. +// +// TCPDF is free software: you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. Additionally, +// YOU CAN'T REMOVE ANY TCPDF COPYRIGHT NOTICE OR LINK FROM THE +// GENERATED PDF DOCUMENTS. +// +// TCPDF is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Lesser General Public License for more details. +// +// You should have received a copy of the License +// along with TCPDF. If not, see +// <http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT>. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : This is a PHP class for generating PDF documents without +// requiring external extensions. +// +// NOTE: +// This class was originally derived in 2002 from the Public +// Domain FPDF class by Olivier Plathey (http://www.fpdf.org), +// but now is almost entirely rewritten and contains thousands of +// new lines of code and hundreds new features. +// +// Main features: +// * no external libraries are required for the basic functions; +// * all standard page formats, custom page formats, custom margins and units of measure; +// * UTF-8 Unicode and Right-To-Left languages; +// * TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts; +// * font subsetting; +// * methods to publish some XHTML + CSS code, Javascript and Forms; +// * images, graphic (geometric figures) and transformation methods; +// * supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/www/formats.html) +// * 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, QR-Code, PDF417; +// * Grayscale, RGB, CMYK, Spot Colors and Transparencies; +// * automatic page header and footer management; +// * document encryption up to 256 bit and digital signature certifications; +// * transactions to UNDO commands; +// * PDF annotations, including links, text and file attachments; +// * text rendering modes (fill, stroke and clipping); +// * multiple columns mode; +// * no-write page regions; +// * bookmarks and table of content; +// * text hyphenation; +// * text stretching and spacing (tracking/kerning); +// * automatic page break, line break and text alignments including justification; +// * automatic page numbering and page groups; +// * move and delete pages; +// * page compression (requires php-zlib extension); +// * XOBject Templates; +// +// ----------------------------------------------------------- +// THANKS TO: +// +// Olivier Plathey (http://www.fpdf.org) for original FPDF. +// Efthimios Mavrogeorgiadis (emavro@yahoo.com) for suggestions on RTL language support. +// Klemen Vodopivec (http://www.fpdf.de/downloads/addons/37/) for Encryption algorithm. +// Warren Sherliker (wsherliker@gmail.com) for better image handling. +// dullus for text Justification. +// Bob Vincent (pillarsdotnet@users.sourceforge.net) for <li> value attribute. +// Patrick Benny for text stretch suggestion on Cell(). +// Denis Van Nuffelen for Dynamic Form. +// Jacek Czekaj for multibyte justification +// Anthony Ferrara for the reintroduction of legacy image methods. +// Sourceforge user 1707880 (hucste) for line-trough mode. +// Larry Stanbery for page groups. +// Martin Hall-May for transparency. +// Aaron C. Spike for Polycurve method. +// Mohamad Ali Golkar, Saleh AlMatrafe, Charles Abbott for Arabic and Persian support. +// Moritz Wagner and Andreas Wurmser for graphic functions. +// Andrew Whitehead for core fonts support. +// Teus Hagen for several suggestions and fixes. +// Yukihiro Nakadaira for CID-0 CJK fonts fixes. +// Kosmas Papachristos for some CSS improvements. +// Marcel Partap for some fixes. +// Won Kyu Park for several suggestions, fixes and patches. +// Dominik Dzienia for QR-code support. +// Laurent Minguet for some suggestions. +// Christian Deligant for some suggestions and fixes. +// Anyone that has reported a bug or sent a suggestion. +//============================================================+ + +/** + * @file + * This is a PHP class for generating PDF documents without requiring external extensions.<br> + * TCPDF project (http://www.tcpdf.org) was originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br> + * <h3>TCPDF main features are:</h3> + * <ul> + * <li>no external libraries are required for the basic functions;</li> + * <li>all standard page formats, custom page formats, custom margins and units of measure;</li> + * <li>UTF-8 Unicode and Right-To-Left languages;</li> + * <li>TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts;</li> + * <li>font subsetting;</li> + * <li>methods to publish some XHTML + CSS code, Javascript and Forms;</li> + * <li>images, graphic (geometric figures) and transformation methods; + * <li>supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/www/formats.html)</li> + * <li>1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, QR-Code, PDF417;</li> + * <li>Grayscale, RGB, CMYK, Spot Colors and Transparencies;</li> + * <li>automatic page header and footer management;</li> + * <li>document encryption up to 256 bit and digital signature certifications;</li> + * <li>transactions to UNDO commands;</li> + * <li>PDF annotations, including links, text and file attachments;</li> + * <li>text rendering modes (fill, stroke and clipping);</li> + * <li>multiple columns mode;</li> + * <li>no-write page regions;</li> + * <li>bookmarks and table of content;</li> + * <li>text hyphenation;</li> + * <li>text stretching and spacing (tracking/kerning);</li> + * <li>automatic page break, line break and text alignments including justification;</li> + * <li>automatic page numbering and page groups;</li> + * <li>move and delete pages;</li> + * <li>page compression (requires php-zlib extension);</li> + * <li>XOBject Templates;</li> + * </ul> + * Tools to encode your unicode fonts are on fonts/utils directory.</p> + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @version 5.9.059 + */ + +// Main configuration file. Define the K_TCPDF_EXTERNAL_CONFIG constant to skip this file. +require_once(dirname(__FILE__).'/config/tcpdf_config.php'); + +/** + * @class TCPDF + * PHP class for generating PDF documents without requiring external extensions. + * TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br> + * @package com.tecnick.tcpdf + * @brief PHP class for generating PDF documents without requiring external extensions. + * @version 5.9.059 + * @author Nicola Asuni - info@tecnick.com + */ +class TCPDF { + + // private properties + + /** + * Current TCPDF version. + * @private + */ + private $tcpdf_version = '5.9.059'; + + // Protected properties + + /** + * Current page number. + * @protected + */ + protected $page; + + /** + * Current object number. + * @protected + */ + protected $n; + + /** + * Array of object offsets. + * @protected + */ + protected $offsets; + + /** + * Buffer holding in-memory PDF. + * @protected + */ + protected $buffer; + + /** + * Array containing pages. + * @protected + */ + protected $pages = array(); + + /** + * Current document state. + * @protected + */ + protected $state; + + /** + * Compression flag. + * @protected + */ + protected $compress; + + /** + * Current page orientation (P = Portrait, L = Landscape). + * @protected + */ + protected $CurOrientation; + + /** + * Page dimensions. + * @protected + */ + protected $pagedim = array(); + + /** + * Scale factor (number of points in user unit). + * @protected + */ + protected $k; + + /** + * Width of page format in points. + * @protected + */ + protected $fwPt; + + /** + * Height of page format in points. + * @protected + */ + protected $fhPt; + + /** + * Current width of page in points. + * @protected + */ + protected $wPt; + + /** + * Current height of page in points. + * @protected + */ + protected $hPt; + + /** + * Current width of page in user unit. + * @protected + */ + protected $w; + + /** + * Current height of page in user unit. + * @protected + */ + protected $h; + + /** + * Left margin. + * @protected + */ + protected $lMargin; + + /** + * Top margin. + * @protected + */ + protected $tMargin; + + /** + * Right margin. + * @protected + */ + protected $rMargin; + + /** + * Page break margin. + * @protected + */ + protected $bMargin; + + /** + * Array of cell internal paddings ('T' => top, 'R' => right, 'B' => bottom, 'L' => left). + * @since 5.9.000 (2010-10-03) + * @protected + */ + protected $cell_padding = array('T' => 0, 'R' => 0, 'B' => 0, 'L' => 0); + + /** + * Array of cell margins ('T' => top, 'R' => right, 'B' => bottom, 'L' => left). + * @since 5.9.000 (2010-10-04) + * @protected + */ + protected $cell_margin = array('T' => 0, 'R' => 0, 'B' => 0, 'L' => 0); + + /** + * Current horizontal position in user unit for cell positioning. + * @protected + */ + protected $x; + + /** + * Current vertical position in user unit for cell positioning. + * @protected + */ + protected $y; + + /** + * Height of last cell printed. + * @protected + */ + protected $lasth; + + /** + * Line width in user unit. + * @protected + */ + protected $LineWidth; + + /** + * Array of standard font names. + * @protected + */ + protected $CoreFonts; + + /** + * Array of used fonts. + * @protected + */ + protected $fonts = array(); + + /** + * Array of font files. + * @protected + */ + protected $FontFiles = array(); + + /** + * Array of encoding differences. + * @protected + */ + protected $diffs = array(); + + /** + * Array of used images. + * @protected + */ + protected $images = array(); + + /** + * Array of Annotations in pages. + * @protected + */ + protected $PageAnnots = array(); + + /** + * Array of internal links. + * @protected + */ + protected $links = array(); + + /** + * Current font family. + * @protected + */ + protected $FontFamily; + + /** + * Current font style. + * @protected + */ + protected $FontStyle; + + /** + * Current font ascent (distance between font top and baseline). + * @protected + * @since 2.8.000 (2007-03-29) + */ + protected $FontAscent; + + /** + * Current font descent (distance between font bottom and baseline). + * @protected + * @since 2.8.000 (2007-03-29) + */ + protected $FontDescent; + + /** + * Underlining flag. + * @protected + */ + protected $underline; + + /** + * Overlining flag. + * @protected + */ + protected $overline; + + /** + * Current font info. + * @protected + */ + protected $CurrentFont; + + /** + * Current font size in points. + * @protected + */ + protected $FontSizePt; + + /** + * Current font size in user unit. + * @protected + */ + protected $FontSize; + + /** + * Commands for drawing color. + * @protected + */ + protected $DrawColor; + + /** + * Commands for filling color. + * @protected + */ + protected $FillColor; + + /** + * Commands for text color. + * @protected + */ + protected $TextColor; + + /** + * Indicates whether fill and text colors are different. + * @protected + */ + protected $ColorFlag; + + /** + * Automatic page breaking. + * @protected + */ + protected $AutoPageBreak; + + /** + * Threshold used to trigger page breaks. + * @protected + */ + protected $PageBreakTrigger; + + /** + * Flag set when processing footer. + * @protected + */ + protected $InFooter = false; + + /** + * Zoom display mode. + * @protected + */ + protected $ZoomMode; + + /** + * Layout display mode. + * @protected + */ + protected $LayoutMode; + + /** + * If true set the document information dictionary in Unicode. + * @protected + */ + protected $docinfounicode = true; + + /** + * Document title. + * @protected + */ + protected $title = ''; + + /** + * Document subject. + * @protected + */ + protected $subject = ''; + + /** + * Document author. + * @protected + */ + protected $author = ''; + + /** + * Document keywords. + * @protected + */ + protected $keywords = ''; + + /** + * Document creator. + * @protected + */ + protected $creator = ''; + + /** + * String alias for total number of pages. + * @protected + */ + protected $AliasNbPages = '{nb}'; + + /** + * String alias for page number. + * @protected + */ + protected $AliasNumPage = '{pnb}'; + + /** + * The right-bottom (or left-bottom for RTL) corner X coordinate of last inserted image. + * @since 2002-07-31 + * @author Nicola Asuni + * @protected + */ + protected $img_rb_x; + + /** + * The right-bottom corner Y coordinate of last inserted image. + * @since 2002-07-31 + * @author Nicola Asuni + * @protected + */ + protected $img_rb_y; + + /** + * Adjusting factor to convert pixels to user units. + * @since 2004-06-14 + * @author Nicola Asuni + * @protected + */ + protected $imgscale = 1; + + /** + * Boolean flag set to true when the input text is unicode (require unicode fonts). + * @since 2005-01-02 + * @author Nicola Asuni + * @protected + */ + protected $isunicode = false; + + /** + * Object containing unicode data. + * @since 5.9.004 (2010-10-18) + * @author Nicola Asuni + * @protected + */ + protected $unicode; + + /** + * PDF version. + * @since 1.5.3 + * @protected + */ + protected $PDFVersion = '1.7'; + + /** + * ID of the stored default header template (-1 = not set). + * @protected + */ + protected $header_xobjid = -1; + + /** + * Minimum distance between header and top page margin. + * @protected + */ + protected $header_margin; + + /** + * Minimum distance between footer and bottom page margin. + * @protected + */ + protected $footer_margin; + + /** + * Original left margin value. + * @protected + * @since 1.53.0.TC013 + */ + protected $original_lMargin; + + /** + * Original right margin value. + * @protected + * @since 1.53.0.TC013 + */ + protected $original_rMargin; + + /** + * Default font used on page header. + * @protected + */ + protected $header_font; + + /** + * Default font used on page footer. + * @protected + */ + protected $footer_font; + + /** + * Language templates. + * @protected + */ + protected $l; + + /** + * Barcode to print on page footer (only if set). + * @protected + */ + protected $barcode = false; + + /** + * Boolean flag to print/hide page header. + * @protected + */ + protected $print_header = true; + + /** + * Boolean flag to print/hide page footer. + * @protected + */ + protected $print_footer = true; + + /** + * Header image logo. + * @protected + */ + protected $header_logo = ''; + + /** + * Width of header image logo in user units. + * @protected + */ + protected $header_logo_width = 30; + + /** + * Title to be printed on default page header. + * @protected + */ + protected $header_title = ''; + + /** + * String to pring on page header after title. + * @protected + */ + protected $header_string = ''; + + /** + * Default number of columns for html table. + * @protected + */ + protected $default_table_columns = 4; + + // variables for html parser + + /** + * HTML PARSER: array to store current link and rendering styles. + * @protected + */ + protected $HREF = array(); + + /** + * List of available fonts on filesystem. + * @protected + */ + protected $fontlist = array(); + + /** + * Current foreground color. + * @protected + */ + protected $fgcolor; + + /** + * HTML PARSER: array of boolean values, true in case of ordered list (OL), false otherwise. + * @protected + */ + protected $listordered = array(); + + /** + * HTML PARSER: array count list items on nested lists. + * @protected + */ + protected $listcount = array(); + + /** + * HTML PARSER: current list nesting level. + * @protected + */ + protected $listnum = 0; + + /** + * HTML PARSER: indent amount for lists. + * @protected + */ + protected $listindent = 0; + + /** + * HTML PARSER: current list indententation level. + * @protected + */ + protected $listindentlevel = 0; + + /** + * Current background color. + * @protected + */ + protected $bgcolor; + + /** + * Temporary font size in points. + * @protected + */ + protected $tempfontsize = 10; + + /** + * Spacer string for LI tags. + * @protected + */ + protected $lispacer = ''; + + /** + * Default encoding. + * @protected + * @since 1.53.0.TC010 + */ + protected $encoding = 'UTF-8'; + + /** + * PHP internal encoding. + * @protected + * @since 1.53.0.TC016 + */ + protected $internal_encoding; + + /** + * Boolean flag to indicate if the document language is Right-To-Left. + * @protected + * @since 2.0.000 + */ + protected $rtl = false; + + /** + * Boolean flag used to force RTL or LTR string direction. + * @protected + * @since 2.0.000 + */ + protected $tmprtl = false; + + // --- Variables used for document encryption: + + /** + * IBoolean flag indicating whether document is protected. + * @protected + * @since 2.0.000 (2008-01-02) + */ + protected $encrypted; + + /** + * Array containing encryption settings. + * @protected + * @since 5.0.005 (2010-05-11) + */ + protected $encryptdata = array(); + + /** + * Last RC4 key encrypted (cached for optimisation). + * @protected + * @since 2.0.000 (2008-01-02) + */ + protected $last_enc_key; + + /** + * Last RC4 computed key. + * @protected + * @since 2.0.000 (2008-01-02) + */ + protected $last_enc_key_c; + + /** + * Encryption padding string. + * @protected + */ + protected $enc_padding = "\x28\xBF\x4E\x5E\x4E\x75\x8A\x41\x64\x00\x4E\x56\xFF\xFA\x01\x08\x2E\x2E\x00\xB6\xD0\x68\x3E\x80\x2F\x0C\xA9\xFE\x64\x53\x69\x7A"; + + /** + * File ID (used on document trailer). + * @protected + * @since 5.0.005 (2010-05-12) + */ + protected $file_id; + + // --- bookmark --- + + /** + * Outlines for bookmark. + * @protected + * @since 2.1.002 (2008-02-12) + */ + protected $outlines = array(); + + /** + * Outline root for bookmark. + * @protected + * @since 2.1.002 (2008-02-12) + */ + protected $OutlineRoot; + + // --- javascript and form --- + + /** + * Javascript code. + * @protected + * @since 2.1.002 (2008-02-12) + */ + protected $javascript = ''; + + /** + * Javascript counter. + * @protected + * @since 2.1.002 (2008-02-12) + */ + protected $n_js; + + /** + * line trough state + * @protected + * @since 2.8.000 (2008-03-19) + */ + protected $linethrough; + + /** + * Array with additional document-wide usage rights for the document. + * @protected + * @since 5.8.014 (2010-08-23) + */ + protected $ur = array(); + + /** + * DPI (Dot Per Inch) Document Resolution (do not change). + * @protected + * @since 3.0.000 (2008-03-27) + */ + protected $dpi = 72; + + /** + * Array of page numbers were a new page group was started. + * @protected + * @since 3.0.000 (2008-03-27) + */ + protected $newpagegroup = array(); + + /** + * Contains the number of pages of the groups. + * @protected + * @since 3.0.000 (2008-03-27) + */ + protected $pagegroups; + + /** + * Contains the alias of the current page group. + * @protected + * @since 3.0.000 (2008-03-27) + */ + protected $currpagegroup; + + /** + * Restrict the rendering of some elements to screen or printout. + * @protected + * @since 3.0.000 (2008-03-27) + */ + protected $visibility = 'all'; + + /** + * Print visibility. + * @protected + * @since 3.0.000 (2008-03-27) + */ + protected $n_ocg_print; + + /** + * View visibility. + * @protected + * @since 3.0.000 (2008-03-27) + */ + protected $n_ocg_view; + + /** + * Array of transparency objects and parameters. + * @protected + * @since 3.0.000 (2008-03-27) + */ + protected $extgstates; + + /** + * Set the default JPEG compression quality (1-100). + * @protected + * @since 3.0.000 (2008-03-27) + */ + protected $jpeg_quality; + + /** + * Default cell height ratio. + * @protected + * @since 3.0.014 (2008-05-23) + */ + protected $cell_height_ratio = K_CELL_HEIGHT_RATIO; + + /** + * PDF viewer preferences. + * @protected + * @since 3.1.000 (2008-06-09) + */ + protected $viewer_preferences; + + /** + * A name object specifying how the document should be displayed when opened. + * @protected + * @since 3.1.000 (2008-06-09) + */ + protected $PageMode; + + /** + * Array for storing gradient information. + * @protected + * @since 3.1.000 (2008-06-09) + */ + protected $gradients = array(); + + /** + * Array used to store positions inside the pages buffer (keys are the page numbers). + * @protected + * @since 3.2.000 (2008-06-26) + */ + protected $intmrk = array(); + + /** + * Array used to store positions inside the pages buffer (keys are the page numbers). + * @protected + * @since 5.7.000 (2010-08-03) + */ + protected $bordermrk = array(); + + /** + * Array used to store page positions to track empty pages (keys are the page numbers). + * @protected + * @since 5.8.007 (2010-08-18) + */ + protected $emptypagemrk = array(); + + /** + * Array used to store content positions inside the pages buffer (keys are the page numbers). + * @protected + * @since 4.6.021 (2009-07-20) + */ + protected $cntmrk = array(); + + /** + * Array used to store footer positions of each page. + * @protected + * @since 3.2.000 (2008-07-01) + */ + protected $footerpos = array(); + + /** + * Array used to store footer length of each page. + * @protected + * @since 4.0.014 (2008-07-29) + */ + protected $footerlen = array(); + + /** + * Boolean flag to indicate if a new line is created. + * @protected + * @since 3.2.000 (2008-07-01) + */ + protected $newline = true; + + /** + * End position of the latest inserted line. + * @protected + * @since 3.2.000 (2008-07-01) + */ + protected $endlinex = 0; + + /** + * PDF string for width value of the last line. + * @protected + * @since 4.0.006 (2008-07-16) + */ + protected $linestyleWidth = ''; + + /** + * PDF string for CAP value of the last line. + * @protected + * @since 4.0.006 (2008-07-16) + */ + protected $linestyleCap = '0 J'; + + /** + * PDF string for join value of the last line. + * @protected + * @since 4.0.006 (2008-07-16) + */ + protected $linestyleJoin = '0 j'; + + /** + * PDF string for dash value of the last line. + * @protected + * @since 4.0.006 (2008-07-16) + */ + protected $linestyleDash = '[] 0 d'; + + /** + * Boolean flag to indicate if marked-content sequence is open. + * @protected + * @since 4.0.013 (2008-07-28) + */ + protected $openMarkedContent = false; + + /** + * Count the latest inserted vertical spaces on HTML. + * @protected + * @since 4.0.021 (2008-08-24) + */ + protected $htmlvspace = 0; + + /** + * Array of Spot colors. + * @protected + * @since 4.0.024 (2008-09-12) + */ + protected $spot_colors = array(); + + /** + * Symbol used for HTML unordered list items. + * @protected + * @since 4.0.028 (2008-09-26) + */ + protected $lisymbol = ''; + + /** + * String used to mark the beginning and end of EPS image blocks. + * @protected + * @since 4.1.000 (2008-10-18) + */ + protected $epsmarker = 'x#!#EPS#!#x'; + + /** + * Array of transformation matrix. + * @protected + * @since 4.2.000 (2008-10-29) + */ + protected $transfmatrix = array(); + + /** + * Current key for transformation matrix. + * @protected + * @since 4.8.005 (2009-09-17) + */ + protected $transfmatrix_key = 0; + + /** + * Booklet mode for double-sided pages. + * @protected + * @since 4.2.000 (2008-10-29) + */ + protected $booklet = false; + + /**