wmdeit_kaform/TCPDF/tcpdf.php

24579 lines
880 KiB
PHP
Raw Normal View History

2020-02-20 13:45:47 +00:00
<?php
//============================================================+
// File name : tcpdf.php
// Version : 6.3.2
// Begin : 2002-08-03
// Last Update : 2019-09-20
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
// -------------------------------------------------------------------
// Copyright (C) 2002-2019 Nicola Asuni - Tecnick.com LTD
//
// 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.
//
// 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, TrueType, 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 ImageMagick (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 Extension, 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, Datamatrix, QR-Code, PDF417;
// * JPEG and PNG ICC profiles, 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, named destinations and table of content;
// * text hyphenation;
// * text stretching and spacing (tracking);
// * 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;
// * Layers and object visibility.
// * PDF/A-1b support
//============================================================+
/**
* @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, TrueType, 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 ImageMagick (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 Extension, 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, Datamatrix, QR-Code, PDF417;</li>
* <li>JPEG and PNG ICC profiles, 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, named destinations and table of content;</li>
* <li>text hyphenation;</li>
* <li>text stretching and spacing (tracking);</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>
* <li>Layers and object visibility;</li>
* <li>PDF/A-1b support.</li>
* </ul>
* Tools to encode your unicode fonts are on fonts/utils directory.</p>
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 6.3.2
*/
// TCPDF configuration
require_once(dirname(__FILE__).'/tcpdf_autoconfig.php');
// TCPDF static font methods and data
require_once(dirname(__FILE__).'/include/tcpdf_font_data.php');
// TCPDF static font methods and data
require_once(dirname(__FILE__).'/include/tcpdf_fonts.php');
// TCPDF static color methods and data
require_once(dirname(__FILE__).'/include/tcpdf_colors.php');
// TCPDF static image methods and data
require_once(dirname(__FILE__).'/include/tcpdf_images.php');
// TCPDF static methods and data
require_once(dirname(__FILE__).'/include/tcpdf_static.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 6.3.2
* @author Nicola Asuni - info@tecnick.com
* @IgnoreAnnotation("protected")
* @IgnoreAnnotation("public")
* @IgnoreAnnotation("pre")
*/
class TCPDF {
// Protected properties
/**
* Current page number.
* @protected
*/
protected $page;
/**
* Current object number.
* @protected
*/
protected $n;
/**
* Array of object offsets.
* @protected
*/
protected $offsets = array();
/**
* Array of object IDs for each page.
* @protected
*/
protected $pageobjects = array();
/**
* 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;
/**
* Right margin.
* @protected
*/
protected $rMargin;
/**
* Cell left margin (used by regions).
* @protected
*/
protected $clMargin;
/**
* Cell right margin (used by regions).
* @protected
*/
protected $crMargin;
/**
* Top margin.
* @protected
*/
protected $tMargin;
/**
* 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();
/**
* Depth of the svg tag, to keep track if the svg tag is a subtag or the root tag.
* @protected
*/
protected $svg_tag_depth = 0;
/**
* 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 page header.
* @protected
*/
protected $InHeader = false;
/**
* Flag set when processing page 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 = '';
/**
* Starting page number.
* @protected
*/
protected $starting_page_number = 1;
/**
* 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;
/**
* 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 = false;
/**
* If true reset the Header Xobject template at each page
* @protected
*/
protected $header_xobj_autoreset = false;
/**
* 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 = '';
/**
* Color for header text (RGB array).
* @since 5.9.174 (2012-07-25)
* @protected
*/
protected $header_text_color = array(0,0,0);
/**
* Color for header line (RGB array).
* @since 5.9.174 (2012-07-25)
* @protected
*/
protected $header_line_color = array(0,0,0);
/**
* Color for footer text (RGB array).
* @since 5.9.174 (2012-07-25)
* @protected
*/
protected $footer_text_color = array(0,0,0);
/**
* Color for footer line (RGB array).
* @since 5.9.174 (2012-07-25)
* @protected
*/
protected $footer_line_color = array(0,0,0);
/**
* Text shadow data array.
* @since 5.9.174 (2012-07-25)
* @protected
*/
protected $txtshadow = array('enabled'=>false, 'depth_w'=>0, 'depth_h'=>0, 'color'=>false, 'opacity'=>1, 'blend_mode'=>'Normal');
/**
* 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;
/**
* 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 through 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 (the page numbers are the keys of the array).
* @protected
* @since 3.0.000 (2008-03-27)
*/
protected $newpagegroup = array();
/**
* Array that contains the number of pages in each page group.
* @protected
* @since 3.0.000 (2008-03-27)
*/
protected $pagegroups = array();
/**
* Current page group number.
* @protected
* @since 3.0.000 (2008-03-27)
*/
protected $currpagegroup = 0;
/**
* 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;
/**
* Epsilon value used for float calculations.
* @protected
* @since 4.2.000 (2008-10-29)
*/
protected $feps = 0.005;
/**
* Array used for custom vertical spaces for HTML tags.
* @protected
* @since 4.2.001 (2008-10-30)
*/
protected $tagvspaces = array();
/**
* HTML PARSER: custom indent amount for lists. Negative value means disabled.
* @protected
* @since 4.2.007 (2008-11-12)
*/
protected $customlistindent = -1;
/**
* Boolean flag to indicate if the border of the cell sides that cross the page should be removed.
* @protected
* @since 4.2.010 (2008-11-14)
*/
protected $opencell = true;
/**
* Array of files to embedd.
* @protected
* @since 4.4.000 (2008-12-07)
*/
protected $embeddedfiles = array();
/**
* Boolean flag to indicate if we are inside a PRE tag.
* @protected
* @since 4.4.001 (2008-12-08)
*/
protected $premode = false;
/**
* Array used to store positions of graphics transformation blocks inside the page buffer.
* keys are the page numbers
* @protected
* @since 4.4.002 (2008-12-09)
*/
protected $transfmrk = array();
/**
* Default color for html links.
* @protected
* @since 4.4.003 (2008-12-09)
*/
protected $htmlLinkColorArray = array(0, 0, 255);
/**
* Default font style to add to html links.
* @protected
* @since 4.4.003 (2008-12-09)
*/
protected $htmlLinkFontStyle = 'U';
/**
* Counts the number of pages.
* @protected
* @since 4.5.000 (2008-12-31)
*/
protected $numpages = 0;
/**
* Array containing page lengths in bytes.
* @protected
* @since 4.5.000 (2008-12-31)
*/
protected $pagelen = array();
/**
* Counts the number of pages.
* @protected
* @since 4.5.000 (2008-12-31)
*/
protected $numimages = 0;
/**
* Store the image keys.
* @protected
* @since 4.5.000 (2008-12-31)
*/
protected $imagekeys = array();
/**
* Length of the buffer in bytes.
* @protected
* @since 4.5.000 (2008-12-31)
*/
protected $bufferlen = 0;
/**
* Counts the number of fonts.
* @protected
* @since 4.5.000 (2009-01-02)
*/
protected $numfonts = 0;
/**
* Store the font keys.
* @protected
* @since 4.5.000 (2009-01-02)
*/
protected $fontkeys = array();
/**
* Store the font object IDs.
* @protected
* @since 4.8.001 (2009-09-09)
*/
protected $font_obj_ids = array();
/**
* Store the fage status (true when opened, false when closed).
* @protected
* @since 4.5.000 (2009-01-02)
*/
protected $pageopen = array();
/**
* Default monospace font.
* @protected
* @since 4.5.025 (2009-03-10)
*/
protected $default_monospaced_font = 'courier';
/**
* Cloned copy of the current class object.
* @protected
* @since 4.5.029 (2009-03-19)
*/
protected $objcopy;
/**
* Array used to store the lengths of cache files.
* @protected
* @since 4.5.029 (2009-03-19)
*/