Rearrange php libs/includes and produce sitemap.xml
[busui.git] / lib / tcpdf / tcpdf.php
blob:a/lib/tcpdf/tcpdf.php -> blob:b/lib/tcpdf/tcpdf.php
--- a/lib/tcpdf/tcpdf.php
+++ b/lib/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.