From ecca6b031a62f83bd463a5852d8642099d42c5e2 Mon Sep 17 00:00:00 2001
From: Adrian Greeve ... ).
4.8.005 (2009-09-17)
@@ -1903,7 +1965,7 @@
- WARNING: THIS VERSION CHANGES THE BEHAVIOUR OF $x and $y parameters for several TCPDF methods:
zero coordinates for $x and $y are now valid coordinates;
set $x and $y as empty strings to get the current value.
- - Some error caused by 'empty' funtion were fixed.
+ - Some error caused by 'empty' function were fixed.
- Default color for convertHTMLColorToDec() method was changed to white and the return value for invalid color is false.
- HTML on footer bug was fixed.
- The following examples were fixed: 5,7,10,17,19,20,21,33,42,43.
@@ -1922,8 +1984,8 @@
C128A : CODE 128 A
C128B : CODE 128 B
C128C : CODE 128 C
- EAN2 : 2-Digits UPC-Based Extention
- EAN5 : 5-Digits UPC-Based Extention
+ EAN2 : 2-Digits UPC-Based Extension
+ EAN5 : 5-Digits UPC-Based Extension
EAN8 : EAN 8
EAN13 : EAN 13
UPCA : UPC-A
diff --git a/lib/tcpdf/README.TXT b/lib/tcpdf/README.TXT
index 6d279ee23ed..d051393caa2 100644
--- a/lib/tcpdf/README.TXT
+++ b/lib/tcpdf/README.TXT
@@ -8,11 +8,11 @@ http://sourceforge.net/donate/index.php?group_id=128076
------------------------------------------------------------
Name: TCPDF
-Version: 6.0.093
-Release date: 2014-09-02
+Version: 6.2.6
+Release date: 2015-01-28
Author: Nicola Asuni
-Copyright (c) 2002-2014:
+Copyright (c) 2002-2015:
Nicola Asuni
Tecnick.com LTD
www.tecnick.com
@@ -35,7 +35,7 @@ Main Features:
* 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, Datamatrix, QR-Code, PDF417;
+ * 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;
diff --git a/lib/tcpdf/composer.json b/lib/tcpdf/composer.json
index 0354e0c817a..6952e393a54 100644
--- a/lib/tcpdf/composer.json
+++ b/lib/tcpdf/composer.json
@@ -1,6 +1,6 @@
{
"name": "tecnick.com/tcpdf",
- "version": "6.0.093",
+ "version": "6.2.6",
"homepage": "http://www.tcpdf.org/",
"type": "library",
"description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
diff --git a/lib/tcpdf/config/tcpdf_config.php b/lib/tcpdf/config/tcpdf_config.php
index 864a9d2d895..92317b121ef 100644
--- a/lib/tcpdf/config/tcpdf_config.php
+++ b/lib/tcpdf/config/tcpdf_config.php
@@ -2,7 +2,7 @@
//============================================================+
// File name : tcpdf_config.php
// Begin : 2004-06-11
-// Last Update : 2014-09-02
+// Last Update : 2014-12-11
//
// Description : Configuration file for TCPDF.
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
@@ -210,7 +210,7 @@ define('K_THAI_TOPCHARS', true);
* If true allows to call TCPDF methods using HTML syntax
* IMPORTANT: For security reason, disable this feature if you are printing user HTML content.
*/
-define('K_TCPDF_CALLS_IN_HTML', true);
+define('K_TCPDF_CALLS_IN_HTML', false);
/**
* If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution.
diff --git a/lib/tcpdf/include/barcodes/datamatrix.php b/lib/tcpdf/include/barcodes/datamatrix.php
index c1067299ca6..19b46fadaf1 100644
--- a/lib/tcpdf/include/barcodes/datamatrix.php
+++ b/lib/tcpdf/include/barcodes/datamatrix.php
@@ -710,13 +710,13 @@ class Datamatrix {
$pos = 0; // current position
$cw = array(); // array of codewords to be returned
$cw_num = 0; // number of data codewords
- $data_lenght = strlen($data); // number of chars
- while ($pos < $data_lenght) {
+ $data_length = strlen($data); // number of chars
+ while ($pos < $data_length) {
// set last used encoding
$this->last_enc = $enc;
switch ($enc) {
case ENC_ASCII: { // STEP B. While in ASCII encodation
- if (($data_lenght > 1) AND ($pos < ($data_lenght - 1)) AND ($this->isCharMode(ord($data[$pos]), ENC_ASCII_NUM) AND $this->isCharMode(ord($data[$pos + 1]), ENC_ASCII_NUM))) {
+ if (($data_length > 1) AND ($pos < ($data_length - 1)) AND ($this->isCharMode(ord($data[$pos]), ENC_ASCII_NUM) AND $this->isCharMode(ord($data[$pos + 1]), ENC_ASCII_NUM))) {
// 1. If the next data sequence is at least 2 consecutive digits, encode the next two digits as a double digit in ASCII mode.
$cw[] = (intval(substr($data, $pos, 2)) + 130);
++$cw_num;
@@ -820,7 +820,7 @@ class Datamatrix {
break;
}
}
- } while (($p > 0) AND ($epos < $data_lenght));
+ } while (($p > 0) AND ($epos < $data_length));
// process last data (if any)
if ($p > 0) {
// get remaining number of data symbols
@@ -870,10 +870,10 @@ class Datamatrix {
break;
}
case ENC_EDF: { // F. While in EDIFACT (EDF) encodation
- // initialize temporary array with 0 lenght
+ // initialize temporary array with 0 length
$temp_cw = array();
$epos = $pos;
- $field_lenght = 0;
+ $field_length = 0;
$newenc = $enc;
do {
// 2. process the next character in EDIFACT encodation.
@@ -881,21 +881,21 @@ class Datamatrix {
if ($this->isCharMode($chr, ENC_EDF)) {
++$epos;
$temp_cw[] = $chr;
- ++$field_lenght;
+ ++$field_length;
}
- if (($field_lenght == 4) OR ($epos == $data_lenght) OR !$this->isCharMode($chr, ENC_EDF)) {
- if (($epos == $data_lenght) AND ($field_lenght < 3)) {
+ if (($field_length == 4) OR ($epos == $data_length) OR !$this->isCharMode($chr, ENC_EDF)) {
+ if (($epos == $data_length) AND ($field_length < 3)) {
$enc = ENC_ASCII;
$cw[] = $this->getSwitchEncodingCodeword($enc);
++$cw_num;
break;
}
- if ($field_lenght < 4) {
+ if ($field_length < 4) {
// set unlatch character
$temp_cw[] = 0x1f;
- ++$field_lenght;
+ ++$field_length;
// fill empty characters
- for ($i = $field_lenght; $i < 4; ++$i) {
+ for ($i = $field_length; $i < 4; ++$i) {
$temp_cw[] = 0;
}
$enc = ENC_ASCII;
@@ -919,19 +919,19 @@ class Datamatrix {
}
$temp_cw = array();
$pos = $epos;
- $field_lenght = 0;
+ $field_length = 0;
if ($enc == ENC_ASCII) {
break; // exit from EDIFACT mode
}
}
- } while ($epos < $data_lenght);
+ } while ($epos < $data_length);
break;
}
case ENC_BASE256: { // G. While in Base 256 (B256) encodation
- // initialize temporary array with 0 lenght
+ // initialize temporary array with 0 length
$temp_cw = array();
- $field_lenght = 0;
- while (($pos < $data_lenght) AND ($field_lenght <= 1555)) {
+ $field_length = 0;
+ while (($pos < $data_length) AND ($field_length <= 1555)) {
$newenc = $this->lookAheadTest($data, $pos, $enc);
if ($newenc != $enc) {
// 1. If the look-ahead test (starting at step J) indicates another mode, switch to that mode.
@@ -942,16 +942,16 @@ class Datamatrix {
$chr = ord($data[$pos]);
++$pos;
$temp_cw[] = $chr;
- ++$field_lenght;
+ ++$field_length;
}
}
- // set field lenght
- if ($field_lenght <= 249) {
- $cw[] = $this->get255StateCodeword($field_lenght, ($cw_num + 1));
+ // set field length
+ if ($field_length <= 249) {
+ $cw[] = $this->get255StateCodeword($field_length, ($cw_num + 1));
++$cw_num;
} else {
- $cw[] = $this->get255StateCodeword((floor($field_lenght / 250) + 249), ($cw_num + 1));
- $cw[] = $this->get255StateCodeword(($field_lenght % 250), ($cw_num + 2));
+ $cw[] = $this->get255StateCodeword((floor($field_length / 250) + 249), ($cw_num + 1));
+ $cw[] = $this->get255StateCodeword(($field_length % 250), ($cw_num + 2));
$cw_num += 2;
}
if (!empty($temp_cw)) {
diff --git a/lib/tcpdf/include/barcodes/pdf417.php b/lib/tcpdf/include/barcodes/pdf417.php
index 07b36b90c05..4fbe6522c92 100644
--- a/lib/tcpdf/include/barcodes/pdf417.php
+++ b/lib/tcpdf/include/barcodes/pdf417.php
@@ -636,7 +636,7 @@ class PDF417 {
// add macro section
$codewords = array_merge($codewords, $macrocw);
}
- // Symbol Lenght Descriptor (number of data codewords including Symbol Lenght Descriptor and pad codewords)
+ // Symbol Length Descriptor (number of data codewords including Symbol Length Descriptor and pad codewords)
$sld = $size - $errsize;
// add symbol length description
array_unshift($codewords, $sld);
@@ -772,7 +772,7 @@ class PDF417 {
/**
* Returns the error correction codewords
- * @param $cw (array) array of codewords including Symbol Lenght Descriptor and pad
+ * @param $cw (array) array of codewords including Symbol Length Descriptor and pad
* @param $ecl (int) error correction level 0-8
* @return array of error correction codewords
* @protected
diff --git a/lib/tcpdf/include/tcpdf_filters.php b/lib/tcpdf/include/tcpdf_filters.php
index 96584db542f..dfb80c5d259 100644
--- a/lib/tcpdf/include/tcpdf_filters.php
+++ b/lib/tcpdf/include/tcpdf_filters.php
@@ -148,7 +148,7 @@ class TCPDF_FILTERS {
* @public static
*/
public static function decodeFilterASCIIHexDecode($data) {
- // intialize string to return
+ // initialize string to return
$decoded = '';
// all white-space characters shall be ignored
$data = preg_replace('/[\s]/', '', $data);
@@ -188,7 +188,7 @@ class TCPDF_FILTERS {
* @public static
*/
public static function decodeFilterASCII85Decode($data) {
- // intialize string to return
+ // initialize string to return
$decoded = '';
// all white-space characters shall be ignored
$data = preg_replace('/[\s]/', '', $data);
@@ -272,7 +272,7 @@ class TCPDF_FILTERS {
* @public static
*/
public static function decodeFilterLZWDecode($data) {
- // intialize string to return
+ // initialize string to return
$decoded = '';
// data length
$data_length = strlen($data);
@@ -353,7 +353,7 @@ class TCPDF_FILTERS {
* @public static
*/
public static function decodeFilterFlateDecode($data) {
- // intialize string to return
+ // initialize string to return
$decoded = @gzuncompress($data);
if ($decoded === false) {
self::Error('decodeFilterFlateDecode: invalid code');
@@ -369,7 +369,7 @@ class TCPDF_FILTERS {
* @public static
*/
public static function decodeFilterRunLengthDecode($data) {
- // intialize string to return
+ // initialize string to return
$decoded = '';
// data length
$data_length = strlen($data);
diff --git a/lib/tcpdf/include/tcpdf_fonts.php b/lib/tcpdf/include/tcpdf_fonts.php
index a7f0486a902..0a19f330149 100644
--- a/lib/tcpdf/include/tcpdf_fonts.php
+++ b/lib/tcpdf/include/tcpdf_fonts.php
@@ -1,9 +1,9 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
- * @version 1.0.003
+ * @version 1.0.005
*/
/**
@@ -46,7 +46,7 @@
* Static image methods used by the TCPDF class.
* @package com.tecnick.tcpdf
* @brief PHP class for generating PDF documents without requiring external extensions.
- * @version 1.0.003
+ * @version 1.0.005
* @author Nicola Asuni - info@tecnick.com
*/
class TCPDF_IMAGES {
@@ -56,7 +56,7 @@ class TCPDF_IMAGES {
* @since 5.0.000 (2010-05-02)
* @public static
*/
- public static $svginheritprop = array('clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cursor', 'direction', 'fill', 'fill-opacity', 'fill-rule', 'font', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'image-rendering', 'kerning', 'letter-spacing', 'marker', 'marker-end', 'marker-mid', 'marker-start', 'pointer-events', 'shape-rendering', 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-rendering', 'visibility', 'word-spacing', 'writing-mode');
+ public static $svginheritprop = array('clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cursor', 'direction', 'display', 'fill', 'fill-opacity', 'fill-rule', 'font', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'image-rendering', 'kerning', 'letter-spacing', 'marker', 'marker-end', 'marker-mid', 'marker-start', 'pointer-events', 'shape-rendering', 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-rendering', 'visibility', 'word-spacing', 'writing-mode');
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -97,11 +97,12 @@ class TCPDF_IMAGES {
* @public static
*/
public static function setGDImageTransparency($new_image, $image) {
+ // default transparency color (white)
+ $tcol = array('red' => 255, 'green' => 255, 'blue' => 255);
// transparency index
$tid = imagecolortransparent($image);
- // default transparency color
- $tcol = array('red' => 255, 'green' => 255, 'blue' => 255);
- if ($tid >= 0) {
+ $palletsize = imagecolorstotal($image);
+ if (($tid >= 0) AND ($tid < $palletsize)) {
// get the colors for the transparency index
$tcol = imagecolorsforindex($image, $tid);
}
@@ -115,23 +116,22 @@ class TCPDF_IMAGES {
* Convert the loaded image to a PNG and then return a structure for the PDF creator.
* This function requires GD library and write access to the directory defined on K_PATH_CACHE constant.
* @param $image (image) Image object.
+ * @param $tempfile (string) Temporary file name.
* return image PNG image object.
* @since 4.9.016 (2010-04-20)
* @public static
*/
- public static function _toPNG($image) {
- // set temporary image file name
- $tempname = TCPDF_STATIC::getObjFilename('img');
+ public static function _toPNG($image, $tempfile) {
// turn off interlaced mode
imageinterlace($image, 0);
// create temporary PNG image
- imagepng($image, $tempname);
+ imagepng($image, $tempfile);
// remove image from memory
imagedestroy($image);
// get PNG image data
- $retvars = self::_parsepng($tempname);
+ $retvars = self::_parsepng($tempfile);
// tidy up by removing temporary image
- unlink($tempname);
+ unlink($tempfile);
return $retvars;
}
@@ -140,16 +140,16 @@ class TCPDF_IMAGES {
* This function requires GD library and write access to the directory defined on K_PATH_CACHE constant.
* @param $image (image) Image object.
* @param $quality (int) JPEG quality.
+ * @param $tempfile (string) Temporary file name.
* return image JPEG image object.
* @public static
*/
- public static function _toJPEG($image, $quality) {
- $tempname = TCPDF_STATIC::getObjFilename('img');
- imagejpeg($image, $tempname, $quality);
+ public static function _toJPEG($image, $quality, $tempfile) {
+ imagejpeg($image, $tempfile, $quality);
imagedestroy($image);
- $retvars = self::_parsejpeg($tempname);
+ $retvars = self::_parsejpeg($tempfile);
// tidy up by removing temporary image
- unlink($tempname);
+ unlink($tempfile);
return $retvars;
}
diff --git a/lib/tcpdf/include/tcpdf_static.php b/lib/tcpdf/include/tcpdf_static.php
index e657446aa22..e947832d24a 100644
--- a/lib/tcpdf/include/tcpdf_static.php
+++ b/lib/tcpdf/include/tcpdf_static.php
@@ -1,13 +1,13 @@
* @package com.tecnick.tcpdf
* @author Nicola Asuni
- * @version 1.0.004
+ * @version 1.1.2
*/
/**
@@ -46,7 +46,7 @@
* Static methods used by the TCPDF class.
* @package com.tecnick.tcpdf
* @brief PHP class for generating PDF documents without requiring external extensions.
- * @version 1.0.004
+ * @version 1.1.1
* @author Nicola Asuni - info@tecnick.com
*/
class TCPDF_STATIC {
@@ -55,7 +55,7 @@ class TCPDF_STATIC {
* Current TCPDF version.
* @private static
*/
- private static $tcpdf_version = '6.0.093';
+ private static $tcpdf_version = '6.2.6';
/**
* String alias for total number of pages.
@@ -105,6 +105,362 @@ class TCPDF_STATIC {
* @public static
*/
public static $pageboxes = array('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox');
+
+ /**
+ * Array of page formats
+ * measures are calculated in this way: (inches * 72) or (millimeters * 72 / 25.4)
+ * @public static
+ */
+ public static $page_formats = array(
+ // ISO 216 A Series + 2 SIS 014711 extensions
+ 'A0' => array( 2383.937, 3370.394), // = ( 841 x 1189 ) mm = ( 33.11 x 46.81 ) in
+ 'A1' => array( 1683.780, 2383.937), // = ( 594 x 841 ) mm = ( 23.39 x 33.11 ) in
+ 'A2' => array( 1190.551, 1683.780), // = ( 420 x 594 ) mm = ( 16.54 x 23.39 ) in
+ 'A3' => array( 841.890, 1190.551), // = ( 297 x 420 ) mm = ( 11.69 x 16.54 ) in
+ 'A4' => array( 595.276, 841.890), // = ( 210 x 297 ) mm = ( 8.27 x 11.69 ) in
+ 'A5' => array( 419.528, 595.276), // = ( 148 x 210 ) mm = ( 5.83 x 8.27 ) in
+ 'A6' => array( 297.638, 419.528), // = ( 105 x 148 ) mm = ( 4.13 x 5.83 ) in
+ 'A7' => array( 209.764, 297.638), // = ( 74 x 105 ) mm = ( 2.91 x 4.13 ) in
+ 'A8' => array( 147.402, 209.764), // = ( 52 x 74 ) mm = ( 2.05 x 2.91 ) in
+ 'A9' => array( 104.882, 147.402), // = ( 37 x 52 ) mm = ( 1.46 x 2.05 ) in
+ 'A10' => array( 73.701, 104.882), // = ( 26 x 37 ) mm = ( 1.02 x 1.46 ) in
+ 'A11' => array( 51.024, 73.701), // = ( 18 x 26 ) mm = ( 0.71 x 1.02 ) in
+ 'A12' => array( 36.850, 51.024), // = ( 13 x 18 ) mm = ( 0.51 x 0.71 ) in
+ // ISO 216 B Series + 2 SIS 014711 extensions
+ 'B0' => array( 2834.646, 4008.189), // = ( 1000 x 1414 ) mm = ( 39.37 x 55.67 ) in
+ 'B1' => array( 2004.094, 2834.646), // = ( 707 x 1000 ) mm = ( 27.83 x 39.37 ) in
+ 'B2' => array( 1417.323, 2004.094), // = ( 500 x 707 ) mm = ( 19.69 x 27.83 ) in
+ 'B3' => array( 1000.630, 1417.323), // = ( 353 x 500 ) mm = ( 13.90 x 19.69 ) in
+ 'B4' => array( 708.661, 1000.630), // = ( 250 x 353 ) mm = ( 9.84 x 13.90 ) in
+ 'B5' => array( 498.898, 708.661), // = ( 176 x 250 ) mm = ( 6.93 x 9.84 ) in
+ 'B6' => array( 354.331, 498.898), // = ( 125 x 176 ) mm = ( 4.92 x 6.93 ) in
+ 'B7' => array( 249.449, 354.331), // = ( 88 x 125 ) mm = ( 3.46 x 4.92 ) in
+ 'B8' => array( 175.748, 249.449), // = ( 62 x 88 ) mm = ( 2.44 x 3.46 ) in
+ 'B9' => array( 124.724, 175.748), // = ( 44 x 62 ) mm = ( 1.73 x 2.44 ) in
+ 'B10' => array( 87.874, 124.724), // = ( 31 x 44 ) mm = ( 1.22 x 1.73 ) in
+ 'B11' => array( 62.362, 87.874), // = ( 22 x 31 ) mm = ( 0.87 x 1.22 ) in
+ 'B12' => array( 42.520, 62.362), // = ( 15 x 22 ) mm = ( 0.59 x 0.87 ) in
+ // ISO 216 C Series + 2 SIS 014711 extensions + 5 EXTENSION
+ 'C0' => array( 2599.370, 3676.535), // = ( 917 x 1297 ) mm = ( 36.10 x 51.06 ) in
+ 'C1' => array( 1836.850, 2599.370), // = ( 648 x 917 ) mm = ( 25.51 x 36.10 ) in
+ 'C2' => array( 1298.268, 1836.850), // = ( 458 x 648 ) mm = ( 18.03 x 25.51 ) in
+ 'C3' => array( 918.425, 1298.268), // = ( 324 x 458 ) mm = ( 12.76 x 18.03 ) in
+ 'C4' => array( 649.134, 918.425), // = ( 229 x 324 ) mm = ( 9.02 x 12.76 ) in
+ 'C5' => array( 459.213, 649.134), // = ( 162 x 229 ) mm = ( 6.38 x 9.02 ) in
+ 'C6' => array( 323.150, 459.213), // = ( 114 x 162 ) mm = ( 4.49 x 6.38 ) in
+ 'C7' => array( 229.606, 323.150), // = ( 81 x 114 ) mm = ( 3.19 x 4.49 ) in
+ 'C8' => array( 161.575, 229.606), // = ( 57 x 81 ) mm = ( 2.24 x 3.19 ) in
+ 'C9' => array( 113.386, 161.575), // = ( 40 x 57 ) mm = ( 1.57 x 2.24 ) in
+ 'C10' => array( 79.370, 113.386), // = ( 28 x 40 ) mm = ( 1.10 x 1.57 ) in
+ 'C11' => array( 56.693, 79.370), // = ( 20 x 28 ) mm = ( 0.79 x 1.10 ) in
+ 'C12' => array( 39.685, 56.693), // = ( 14 x 20 ) mm = ( 0.55 x 0.79 ) in
+ 'C76' => array( 229.606, 459.213), // = ( 81 x 162 ) mm = ( 3.19 x 6.38 ) in
+ 'DL' => array( 311.811, 623.622), // = ( 110 x 220 ) mm = ( 4.33 x 8.66 ) in
+ 'DLE' => array( 323.150, 637.795), // = ( 114 x 225 ) mm = ( 4.49 x 8.86 ) in
+ 'DLX' => array( 340.158, 666.142), // = ( 120 x 235 ) mm = ( 4.72 x 9.25 ) in
+ 'DLP' => array( 280.630, 595.276), // = ( 99 x 210 ) mm = ( 3.90 x 8.27 ) in (1/3 A4)
+ // SIS 014711 E Series
+ 'E0' => array( 2491.654, 3517.795), // = ( 879 x 1241 ) mm = ( 34.61 x 48.86 ) in
+ 'E1' => array( 1757.480, 2491.654), // = ( 620 x 879 ) mm = ( 24.41 x 34.61 ) in
+ 'E2' => array( 1247.244, 1757.480), // = ( 440 x 620 ) mm = ( 17.32 x 24.41 ) in
+ 'E3' => array( 878.740, 1247.244), // = ( 310 x 440 ) mm = ( 12.20 x 17.32 ) in
+ 'E4' => array( 623.622, 878.740), // = ( 220 x 310 ) mm = ( 8.66 x 12.20 ) in
+ 'E5' => array( 439.370, 623.622), // = ( 155 x 220 ) mm = ( 6.10 x 8.66 ) in
+ 'E6' => array( 311.811, 439.370), // = ( 110 x 155 ) mm = ( 4.33 x 6.10 ) in
+ 'E7' => array( 221.102, 311.811), // = ( 78 x 110 ) mm = ( 3.07 x 4.33 ) in
+ 'E8' => array( 155.906, 221.102), // = ( 55 x 78 ) mm = ( 2.17 x 3.07 ) in
+ 'E9' => array( 110.551, 155.906), // = ( 39 x 55 ) mm = ( 1.54 x 2.17 ) in
+ 'E10' => array( 76.535, 110.551), // = ( 27 x 39 ) mm = ( 1.06 x 1.54 ) in
+ 'E11' => array( 53.858, 76.535), // = ( 19 x 27 ) mm = ( 0.75 x 1.06 ) in
+ 'E12' => array( 36.850, 53.858), // = ( 13 x 19 ) mm = ( 0.51 x 0.75 ) in
+ // SIS 014711 G Series
+ 'G0' => array( 2715.591, 3838.110), // = ( 958 x 1354 ) mm = ( 37.72 x 53.31 ) in
+ 'G1' => array( 1919.055, 2715.591), // = ( 677 x 958 ) mm = ( 26.65 x 37.72 ) in
+ 'G2' => array( 1357.795, 1919.055), // = ( 479 x 677 ) mm = ( 18.86 x 26.65 ) in
+ 'G3' => array( 958.110, 1357.795), // = ( 338 x 479 ) mm = ( 13.31 x 18.86 ) in
+ 'G4' => array( 677.480, 958.110), // = ( 239 x 338 ) mm = ( 9.41 x 13.31 ) in
+ 'G5' => array( 479.055, 677.480), // = ( 169 x 239 ) mm = ( 6.65 x 9.41 ) in
+ 'G6' => array( 337.323, 479.055), // = ( 119 x 169 ) mm = ( 4.69 x 6.65 ) in
+ 'G7' => array( 238.110, 337.323), // = ( 84 x 119 ) mm = ( 3.31 x 4.69 ) in
+ 'G8' => array( 167.244, 238.110), // = ( 59 x 84 ) mm = ( 2.32 x 3.31 ) in
+ 'G9' => array( 119.055, 167.244), // = ( 42 x 59 ) mm = ( 1.65 x 2.32 ) in
+ 'G10' => array( 82.205, 119.055), // = ( 29 x 42 ) mm = ( 1.14 x 1.65 ) in
+ 'G11' => array( 59.528, 82.205), // = ( 21 x 29 ) mm = ( 0.83 x 1.14 ) in
+ 'G12' => array( 39.685, 59.528), // = ( 14 x 21 ) mm = ( 0.55 x 0.83 ) in
+ // ISO Press
+ 'RA0' => array( 2437.795, 3458.268), // = ( 860 x 1220 ) mm = ( 33.86 x 48.03 ) in
+ 'RA1' => array( 1729.134, 2437.795), // = ( 610 x 860 ) mm = ( 24.02 x 33.86 ) in
+ 'RA2' => array( 1218.898, 1729.134), // = ( 430 x 610 ) mm = ( 16.93 x 24.02 ) in
+ 'RA3' => array( 864.567, 1218.898), // = ( 305 x 430 ) mm = ( 12.01 x 16.93 ) in
+ 'RA4' => array( 609.449, 864.567), // = ( 215 x 305 ) mm = ( 8.46 x 12.01 ) in
+ 'SRA0' => array( 2551.181, 3628.346), // = ( 900 x 1280 ) mm = ( 35.43 x 50.39 ) in
+ 'SRA1' => array( 1814.173, 2551.181), // = ( 640 x 900 ) mm = ( 25.20 x 35.43 ) in
+ 'SRA2' => array( 1275.591, 1814.173), // = ( 450 x 640 ) mm = ( 17.72 x 25.20 ) in
+ 'SRA3' => array( 907.087, 1275.591), // = ( 320 x 450 ) mm = ( 12.60 x 17.72 ) in
+ 'SRA4' => array( 637.795, 907.087), // = ( 225 x 320 ) mm = ( 8.86 x 12.60 ) in
+ // German DIN 476
+ '4A0' => array( 4767.874, 6740.787), // = ( 1682 x 2378 ) mm = ( 66.22 x 93.62 ) in
+ '2A0' => array( 3370.394, 4767.874), // = ( 1189 x 1682 ) mm = ( 46.81 x 66.22 ) in
+ // Variations on the ISO Standard
+ 'A2_EXTRA' => array( 1261.417, 1754.646), // = ( 445 x 619 ) mm = ( 17.52 x 24.37 ) in
+ 'A3+' => array( 932.598, 1369.134), // = ( 329 x 483 ) mm = ( 12.95 x 19.02 ) in
+ 'A3_EXTRA' => array( 912.756, 1261.417), // = ( 322 x 445 ) mm = ( 12.68 x 17.52 ) in
+ 'A3_SUPER' => array( 864.567, 1440.000), // = ( 305 x 508 ) mm = ( 12.01 x 20.00 ) in
+ 'SUPER_A3' => array( 864.567, 1380.472), // = ( 305 x 487 ) mm = ( 12.01 x 19.17 ) in
+ 'A4_EXTRA' => array( 666.142, 912.756), // = ( 235 x 322 ) mm = ( 9.25 x 12.68 ) in
+ 'A4_SUPER' => array( 649.134, 912.756), // = ( 229 x 322 ) mm = ( 9.02 x 12.68 ) in
+ 'SUPER_A4' => array( 643.465, 1009.134), // = ( 227 x 356 ) mm = ( 8.94 x 14.02 ) in
+ 'A4_LONG' => array( 595.276, 986.457), // = ( 210 x 348 ) mm = ( 8.27 x 13.70 ) in
+ 'F4' => array( 595.276, 935.433), // = ( 210 x 330 ) mm = ( 8.27 x 12.99 ) in
+ 'SO_B5_EXTRA' => array( 572.598, 782.362), // = ( 202 x 276 ) mm = ( 7.95 x 10.87 ) in
+ 'A5_EXTRA' => array( 490.394, 666.142), // = ( 173 x 235 ) mm = ( 6.81 x 9.25 ) in
+ // ANSI Series
+ 'ANSI_E' => array( 2448.000, 3168.000), // = ( 864 x 1118 ) mm = ( 34.00 x 44.00 ) in
+ 'ANSI_D' => array( 1584.000, 2448.000), // = ( 559 x 864 ) mm = ( 22.00 x 34.00 ) in
+ 'ANSI_C' => array( 1224.000, 1584.000), // = ( 432 x 559 ) mm = ( 17.00 x 22.00 ) in
+ 'ANSI_B' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in
+ 'ANSI_A' => array( 612.000, 792.000), // = ( 216 x 279 ) mm = ( 8.50 x 11.00 ) in
+ // Traditional 'Loose' North American Paper Sizes
+ 'USLEDGER' => array( 1224.000, 792.000), // = ( 432 x 279 ) mm = ( 17.00 x 11.00 ) in
+ 'LEDGER' => array( 1224.000, 792.000), // = ( 432 x 279 ) mm = ( 17.00 x 11.00 ) in
+ 'ORGANIZERK' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in
+ 'BIBLE' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in
+ 'USTABLOID' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in
+ 'TABLOID' => array( 792.000, 1224.000), // = ( 279 x 432 ) mm = ( 11.00 x 17.00 ) in
+ 'ORGANIZERM' => array( 612.000, 792.000), // = ( 216 x 279 ) mm = ( 8.50 x 11.00 ) in
+ 'USLETTER' => array( 612.000, 792.000), // = ( 216 x 279 ) mm = ( 8.50 x 11.00 ) in
+ 'LETTER' => array( 612.000, 792.000), // = ( 216 x 279 ) mm = ( 8.50 x 11.00 ) in
+ 'USLEGAL' => array( 612.000, 1008.000), // = ( 216 x 356 ) mm = ( 8.50 x 14.00 ) in
+ 'LEGAL' => array( 612.000, 1008.000), // = ( 216 x 356 ) mm = ( 8.50 x 14.00 ) in
+ 'GOVERNMENTLETTER' => array( 576.000, 756.000), // = ( 203 x 267 ) mm = ( 8.00 x 10.50 ) in
+ 'GLETTER' => array( 576.000, 756.000), // = ( 203 x 267 ) mm = ( 8.00 x 10.50 ) in
+ 'JUNIORLEGAL' => array( 576.000, 360.000), // = ( 203 x 127 ) mm = ( 8.00 x 5.00 ) in
+ 'JLEGAL' => array( 576.000, 360.000), // = ( 203 x 127 ) mm = ( 8.00 x 5.00 ) in
+ // Other North American Paper Sizes
+ 'QUADDEMY' => array( 2520.000, 3240.000), // = ( 889 x 1143 ) mm = ( 35.00 x 45.00 ) in
+ 'SUPER_B' => array( 936.000, 1368.000), // = ( 330 x 483 ) mm = ( 13.00 x 19.00 ) in
+ 'QUARTO' => array( 648.000, 792.000), // = ( 229 x 279 ) mm = ( 9.00 x 11.00 ) in
+ 'GOVERNMENTLEGAL' => array( 612.000, 936.000), // = ( 216 x 330 ) mm = ( 8.50 x 13.00 ) in
+ 'FOLIO' => array( 612.000, 936.000), // = ( 216 x 330 ) mm = ( 8.50 x 13.00 ) in
+ 'MONARCH' => array( 522.000, 756.000), // = ( 184 x 267 ) mm = ( 7.25 x 10.50 ) in
+ 'EXECUTIVE' => array( 522.000, 756.000), // = ( 184 x 267 ) mm = ( 7.25 x 10.50 ) in
+ 'ORGANIZERL' => array( 396.000, 612.000), // = ( 140 x 216 ) mm = ( 5.50 x 8.50 ) in
+ 'STATEMENT' => array( 396.000, 612.000), // = ( 140 x 216 ) mm = ( 5.50 x 8.50 ) in
+ 'MEMO' => array( 396.000, 612.000), // = ( 140 x 216 ) mm = ( 5.50 x 8.50 ) in
+ 'FOOLSCAP' => array( 595.440, 936.000), // = ( 210 x 330 ) mm = ( 8.27 x 13.00 ) in
+ 'COMPACT' => array( 306.000, 486.000), // = ( 108 x 171 ) mm = ( 4.25 x 6.75 ) in
+ 'ORGANIZERJ' => array( 198.000, 360.000), // = ( 70 x 127 ) mm = ( 2.75 x 5.00 ) in
+ // Canadian standard CAN 2-9.60M
+ 'P1' => array( 1587.402, 2437.795), // = ( 560 x 860 ) mm = ( 22.05 x 33.86 ) in
+ 'P2' => array( 1218.898, 1587.402), // = ( 430 x 560 ) mm = ( 16.93 x 22.05 ) in
+ 'P3' => array( 793.701, 1218.898), // = ( 280 x 430 ) mm = ( 11.02 x 16.93 ) in
+ 'P4' => array( 609.449, 793.701), // = ( 215 x 280 ) mm = ( 8.46 x 11.02 ) in
+ 'P5' => array( 396.850, 609.449), // = ( 140 x 215 ) mm = ( 5.51 x 8.46 ) in
+ 'P6' => array( 303.307, 396.850), // = ( 107 x 140 ) mm = ( 4.21 x 5.51 ) in
+ // North American Architectural Sizes
+ 'ARCH_E' => array( 2592.000, 3456.000), // = ( 914 x 1219 ) mm = ( 36.00 x 48.00 ) in
+ 'ARCH_E1' => array( 2160.000, 3024.000), // = ( 762 x 1067 ) mm = ( 30.00 x 42.00 ) in
+ 'ARCH_D' => array( 1728.000, 2592.000), // = ( 610 x 914 ) mm = ( 24.00 x 36.00 ) in
+ 'BROADSHEET' => array( 1296.000, 1728.000), // = ( 457 x 610 ) mm = ( 18.00 x 24.00 ) in
+ 'ARCH_C' => array( 1296.000, 1728.000), // = ( 457 x 610 ) mm = ( 18.00 x 24.00 ) in
+ 'ARCH_B' => array( 864.000, 1296.000), // = ( 305 x 457 ) mm = ( 12.00 x 18.00 ) in
+ 'ARCH_A' => array( 648.000, 864.000), // = ( 229 x 305 ) mm = ( 9.00 x 12.00 ) in
+ // -- North American Envelope Sizes
+ // - Announcement Envelopes
+ 'ANNENV_A2' => array( 314.640, 414.000), // = ( 111 x 146 ) mm = ( 4.37 x 5.75 ) in
+ 'ANNENV_A6' => array( 342.000, 468.000), // = ( 121 x 165 ) mm = ( 4.75 x 6.50 ) in
+ 'ANNENV_A7' => array( 378.000, 522.000), // = ( 133 x 184 ) mm = ( 5.25 x 7.25 ) in
+ 'ANNENV_A8' => array( 396.000, 584.640), // = ( 140 x 206 ) mm = ( 5.50 x 8.12 ) in
+ 'ANNENV_A10' => array( 450.000, 692.640), // = ( 159 x 244 ) mm = ( 6.25 x 9.62 ) in
+ 'ANNENV_SLIM' => array( 278.640, 638.640), // = ( 98 x 225 ) mm = ( 3.87 x 8.87 ) in
+ // - Commercial Envelopes
+ 'COMMENV_N6_1/4' => array( 252.000, 432.000), // = ( 89 x 152 ) mm = ( 3.50 x 6.00 ) in
+ 'COMMENV_N6_3/4' => array( 260.640, 468.000), // = ( 92 x 165 ) mm = ( 3.62 x 6.50 ) in
+ 'COMMENV_N8' => array( 278.640, 540.000), // = ( 98 x 191 ) mm = ( 3.87 x 7.50 ) in
+ 'COMMENV_N9' => array( 278.640, 638.640), // = ( 98 x 225 ) mm = ( 3.87 x 8.87 ) in
+ 'COMMENV_N10' => array( 296.640, 684.000), // = ( 105 x 241 ) mm = ( 4.12 x 9.50 ) in
+ 'COMMENV_N11' => array( 324.000, 746.640), // = ( 114 x 263 ) mm = ( 4.50 x 10.37 ) in
+ 'COMMENV_N12' => array( 342.000, 792.000), // = ( 121 x 279 ) mm = ( 4.75 x 11.00 ) in
+ 'COMMENV_N14' => array( 360.000, 828.000), // = ( 127 x 292 ) mm = ( 5.00 x 11.50 ) in
+ // - Catalogue Envelopes
+ 'CATENV_N1' => array( 432.000, 648.000), // = ( 152 x 229 ) mm = ( 6.00 x 9.00 ) in
+ 'CATENV_N1_3/4' => array( 468.000, 684.000), // = ( 165 x 241 ) mm = ( 6.50 x 9.50 ) in
+ 'CATENV_N2' => array( 468.000, 720.000), // = ( 165 x 254 ) mm = ( 6.50 x 10.00 ) in
+ 'CATENV_N3' => array( 504.000, 720.000), // = ( 178 x 254 ) mm = ( 7.00 x 10.00 ) in
+ 'CATENV_N6' => array( 540.000, 756.000), // = ( 191 x 267 ) mm = ( 7.50 x 10.50 ) in
+ 'CATENV_N7' => array( 576.000, 792.000), // = ( 203 x 279 ) mm = ( 8.00 x 11.00 ) in
+ 'CATENV_N8' => array( 594.000, 810.000), // = ( 210 x 286 ) mm = ( 8.25 x 11.25 ) in
+ 'CATENV_N9_1/2' => array( 612.000, 756.000), // = ( 216 x 267 ) mm = ( 8.50 x 10.50 ) in
+ 'CATENV_N9_3/4' => array( 630.000, 810.000), // = ( 222 x 286 ) mm = ( 8.75 x 11.25 ) in
+ 'CATENV_N10_1/2' => array( 648.000, 864.000), // = ( 229 x 305 ) mm = ( 9.00 x 12.00 ) in
+ 'CATENV_N12_1/2' => array( 684.000, 900.000), // = ( 241 x 318 ) mm = ( 9.50 x 12.50 ) in
+ 'CATENV_N13_1/2' => array( 720.000, 936.000), // = ( 254 x 330 ) mm = ( 10.00 x 13.00 ) in
+ 'CATENV_N14_1/4' => array( 810.000, 882.000), // = ( 286 x 311 ) mm = ( 11.25 x 12.25 ) in
+ 'CATENV_N14_1/2' => array( 828.000, 1044.000), // = ( 292 x 368 ) mm = ( 11.50 x 14.50 ) in
+ // Japanese (JIS P 0138-61) Standard B-Series
+ 'JIS_B0' => array( 2919.685, 4127.244), // = ( 1030 x 1456 ) mm = ( 40.55 x 57.32 ) in
+ 'JIS_B1' => array( 2063.622, 2919.685), // = ( 728 x 1030 ) mm = ( 28.66 x 40.55 ) in
+ 'JIS_B2' => array( 1459.843, 2063.622), // = ( 515 x 728 ) mm = ( 20.28 x 28.66 ) in
+ 'JIS_B3' => array( 1031.811, 1459.843), // = ( 364 x 515 ) mm = ( 14.33 x 20.28 ) in
+ 'JIS_B4' => array( 728.504, 1031.811), // = ( 257 x 364 ) mm = ( 10.12 x 14.33 ) in
+ 'JIS_B5' => array( 515.906, 728.504), // = ( 182 x 257 ) mm = ( 7.17 x 10.12 ) in
+ 'JIS_B6' => array( 362.835, 515.906), // = ( 128 x 182 ) mm = ( 5.04 x 7.17 ) in
+ 'JIS_B7' => array( 257.953, 362.835), // = ( 91 x 128 ) mm = ( 3.58 x 5.04 ) in
+ 'JIS_B8' => array( 181.417, 257.953), // = ( 64 x 91 ) mm = ( 2.52 x 3.58 ) in
+ 'JIS_B9' => array( 127.559, 181.417), // = ( 45 x 64 ) mm = ( 1.77 x 2.52 ) in
+ 'JIS_B10' => array( 90.709, 127.559), // = ( 32 x 45 ) mm = ( 1.26 x 1.77 ) in
+ 'JIS_B11' => array( 62.362, 90.709), // = ( 22 x 32 ) mm = ( 0.87 x 1.26 ) in
+ 'JIS_B12' => array( 45.354, 62.362), // = ( 16 x 22 ) mm = ( 0.63 x 0.87 ) in
+ // PA Series
+ 'PA0' => array( 2381.102, 3174.803), // = ( 840 x 1120 ) mm = ( 33.07 x 44.09 ) in
+ 'PA1' => array( 1587.402, 2381.102), // = ( 560 x 840 ) mm = ( 22.05 x 33.07 ) in
+ 'PA2' => array( 1190.551, 1587.402), // = ( 420 x 560 ) mm = ( 16.54 x 22.05 ) in
+ 'PA3' => array( 793.701, 1190.551), // = ( 280 x 420 ) mm = ( 11.02 x 16.54 ) in
+ 'PA4' => array( 595.276, 793.701), // = ( 210 x 280 ) mm = ( 8.27 x 11.02 ) in
+ 'PA5' => array( 396.850, 595.276), // = ( 140 x 210 ) mm = ( 5.51 x 8.27 ) in
+ 'PA6' => array( 297.638, 396.850), // = ( 105 x 140 ) mm = ( 4.13 x 5.51 ) in
+ 'PA7' => array( 198.425, 297.638), // = ( 70 x 105 ) mm = ( 2.76 x 4.13 ) in
+ 'PA8' => array( 147.402, 198.425), // = ( 52 x 70 ) mm = ( 2.05 x 2.76 ) in
+ 'PA9' => array( 99.213, 147.402), // = ( 35 x 52 ) mm = ( 1.38 x 2.05 ) in
+ 'PA10' => array( 73.701, 99.213), // = ( 26 x 35 ) mm = ( 1.02 x 1.38 ) in
+ // Standard Photographic Print Sizes
+ 'PASSPORT_PHOTO' => array( 99.213, 127.559), // = ( 35 x 45 ) mm = ( 1.38 x 1.77 ) in
+ 'E' => array( 233.858, 340.157), // = ( 82 x 120 ) mm = ( 3.25 x 4.72 ) in
+ 'L' => array( 252.283, 360.000), // = ( 89 x 127 ) mm = ( 3.50 x 5.00 ) in
+ '3R' => array( 252.283, 360.000), // = ( 89 x 127 ) mm = ( 3.50 x 5.00 ) in
+ 'KG' => array( 289.134, 430.866), // = ( 102 x 152 ) mm = ( 4.02 x 5.98 ) in
+ '4R' => array( 289.134, 430.866), // = ( 102 x 152 ) mm = ( 4.02 x 5.98 ) in
+ '4D' => array( 340.157, 430.866), // = ( 120 x 152 ) mm = ( 4.72 x 5.98 ) in
+ '2L' => array( 360.000, 504.567), // = ( 127 x 178 ) mm = ( 5.00 x 7.01 ) in
+ '5R' => array( 360.000, 504.567), // = ( 127 x 178 ) mm = ( 5.00 x 7.01 ) in
+ '8P' => array( 430.866, 575.433), // = ( 152 x 203 ) mm = ( 5.98 x 7.99 ) in
+ '6R' => array( 430.866, 575.433), // = ( 152 x 203 ) mm = ( 5.98 x 7.99 ) in
+ '6P' => array( 575.433, 720.000), // = ( 203 x 254 ) mm = ( 7.99 x 10.00 ) in
+ '8R' => array( 575.433, 720.000), // = ( 203 x 254 ) mm = ( 7.99 x 10.00 ) in
+ '6PW' => array( 575.433, 864.567), // = ( 203 x 305 ) mm = ( 7.99 x 12.01 ) in
+ 'S8R' => array( 575.433, 864.567), // = ( 203 x 305 ) mm = ( 7.99 x 12.01 ) in
+ '4P' => array( 720.000, 864.567), // = ( 254 x 305 ) mm = ( 10.00 x 12.01 ) in
+ '10R' => array( 720.000, 864.567), // = ( 254 x 305 ) mm = ( 10.00 x 12.01 ) in
+ '4PW' => array( 720.000, 1080.000), // = ( 254 x 381 ) mm = ( 10.00 x 15.00 ) in
+ 'S10R' => array( 720.000, 1080.000), // = ( 254 x 381 ) mm = ( 10.00 x 15.00 ) in
+ '11R' => array( 790.866, 1009.134), // = ( 279 x 356 ) mm = ( 10.98 x 14.02 ) in
+ 'S11R' => array( 790.866, 1224.567), // = ( 279 x 432 ) mm = ( 10.98 x 17.01 ) in
+ '12R' => array( 864.567, 1080.000), // = ( 305 x 381 ) mm = ( 12.01 x 15.00 ) in
+ 'S12R' => array( 864.567, 1292.598), // = ( 305 x 456 ) mm = ( 12.01 x 17.95 ) in
+ // Common Newspaper Sizes
+ 'NEWSPAPER_BROADSHEET' => array( 2125.984, 1700.787), // = ( 750 x 600 ) mm = ( 29.53 x 23.62 ) in
+ 'NEWSPAPER_BERLINER' => array( 1332.283, 892.913), // = ( 470 x 315 ) mm = ( 18.50 x 12.40 ) in
+ 'NEWSPAPER_TABLOID' => array( 1218.898, 793.701), // = ( 430 x 280 ) mm = ( 16.93 x 11.02 ) in
+ 'NEWSPAPER_COMPACT' => array( 1218.898, 793.701), // = ( 430 x 280 ) mm = ( 16.93 x 11.02 ) in
+ // Business Cards
+ 'CREDIT_CARD' => array( 153.014, 242.646), // = ( 54 x 86 ) mm = ( 2.13 x 3.37 ) in
+ 'BUSINESS_CARD' => array( 153.014, 242.646), // = ( 54 x 86 ) mm = ( 2.13 x 3.37 ) in
+ 'BUSINESS_CARD_ISO7810' => array( 153.014, 242.646), // = ( 54 x 86 ) mm = ( 2.13 x 3.37 ) in
+ 'BUSINESS_CARD_ISO216' => array( 147.402, 209.764), // = ( 52 x 74 ) mm = ( 2.05 x 2.91 ) in
+ 'BUSINESS_CARD_IT' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in
+ 'BUSINESS_CARD_UK' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in
+ 'BUSINESS_CARD_FR' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in
+ 'BUSINESS_CARD_DE' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in
+ 'BUSINESS_CARD_ES' => array( 155.906, 240.945), // = ( 55 x 85 ) mm = ( 2.17 x 3.35 ) in
+ 'BUSINESS_CARD_CA' => array( 144.567, 252.283), // = ( 51 x 89 ) mm = ( 2.01 x 3.50 ) in
+ 'BUSINESS_CARD_US' => array( 144.567, 252.283), // = ( 51 x 89 ) mm = ( 2.01 x 3.50 ) in
+ 'BUSINESS_CARD_JP' => array( 155.906, 257.953), // = ( 55 x 91 ) mm = ( 2.17 x 3.58 ) in
+ 'BUSINESS_CARD_HK' => array( 153.071, 255.118), // = ( 54 x 90 ) mm = ( 2.13 x 3.54 ) in
+ 'BUSINESS_CARD_AU' => array( 155.906, 255.118), // = ( 55 x 90 ) mm = ( 2.17 x 3.54 ) in
+ 'BUSINESS_CARD_DK' => array( 155.906, 255.118), // = ( 55 x 90 ) mm = ( 2.17 x 3.54 ) in
+ 'BUSINESS_CARD_SE' => array( 155.906, 255.118), // = ( 55 x 90 ) mm = ( 2.17 x 3.54 ) in
+ 'BUSINESS_CARD_RU' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in
+ 'BUSINESS_CARD_CZ' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in
+ 'BUSINESS_CARD_FI' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in
+ 'BUSINESS_CARD_HU' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in
+ 'BUSINESS_CARD_IL' => array( 141.732, 255.118), // = ( 50 x 90 ) mm = ( 1.97 x 3.54 ) in
+ // Billboards
+ '4SHEET' => array( 2880.000, 4320.000), // = ( 1016 x 1524 ) mm = ( 40.00 x 60.00 ) in
+ '6SHEET' => array( 3401.575, 5102.362), // = ( 1200 x 1800 ) mm = ( 47.24 x 70.87 ) in
+ '12SHEET' => array( 8640.000, 4320.000), // = ( 3048 x 1524 ) mm = (120.00 x 60.00 ) in
+ '16SHEET' => array( 5760.000, 8640.000), // = ( 2032 x 3048 ) mm = ( 80.00 x 120.00) in
+ '32SHEET' => array(11520.000, 8640.000), // = ( 4064 x 3048 ) mm = (160.00 x 120.00) in
+ '48SHEET' => array(17280.000, 8640.000), // = ( 6096 x 3048 ) mm = (240.00 x 120.00) in
+ '64SHEET' => array(23040.000, 8640.000), // = ( 8128 x 3048 ) mm = (320.00 x 120.00) in
+ '96SHEET' => array(34560.000, 8640.000), // = (12192 x 3048 ) mm = (480.00 x 120.00) in
+ // -- Old European Sizes
+ // - Old Imperial English Sizes
+ 'EN_EMPEROR' => array( 3456.000, 5184.000), // = ( 1219 x 1829 ) mm = ( 48.00 x 72.00 ) in
+ 'EN_ANTIQUARIAN' => array( 2232.000, 3816.000), // = ( 787 x 1346 ) mm = ( 31.00 x 53.00 ) in
+ 'EN_GRAND_EAGLE' => array( 2070.000, 3024.000), // = ( 730 x 1067 ) mm = ( 28.75 x 42.00 ) in
+ 'EN_DOUBLE_ELEPHANT' => array( 1926.000, 2880.000), // = ( 679 x 1016 ) mm = ( 26.75 x 40.00 ) in
+ 'EN_ATLAS' => array( 1872.000, 2448.000), // = ( 660 x 864 ) mm = ( 26.00 x 34.00 ) in
+ 'EN_COLOMBIER' => array( 1692.000, 2484.000), // = ( 597 x 876 ) mm = ( 23.50 x 34.50 ) in
+ 'EN_ELEPHANT' => array( 1656.000, 2016.000), // = ( 584 x 711 ) mm = ( 23.00 x 28.00 ) in
+ 'EN_DOUBLE_DEMY' => array( 1620.000, 2556.000), // = ( 572 x 902 ) mm = ( 22.50 x 35.50 ) in
+ 'EN_IMPERIAL' => array( 1584.000, 2160.000), // = ( 559 x 762 ) mm = ( 22.00 x 30.00 ) in
+ 'EN_PRINCESS' => array( 1548.000, 2016.000), // = ( 546 x 711 ) mm = ( 21.50 x 28.00 ) in
+ 'EN_CARTRIDGE' => array( 1512.000, 1872.000), // = ( 533 x 660 ) mm = ( 21.00 x 26.00 ) in
+ 'EN_DOUBLE_LARGE_POST' => array( 1512.000, 2376.000), // = ( 533 x 838 ) mm = ( 21.00 x 33.00 ) in
+ 'EN_ROYAL' => array( 1440.000, 1800.000), // = ( 508 x 635 ) mm = ( 20.00 x 25.00 ) in
+ 'EN_SHEET' => array( 1404.000, 1692.000), // = ( 495 x 597 ) mm = ( 19.50 x 23.50 ) in
+ 'EN_HALF_POST' => array( 1404.000, 1692.000), // = ( 495 x 597 ) mm = ( 19.50 x 23.50 ) in
+ 'EN_SUPER_ROYAL' => array( 1368.000, 1944.000), // = ( 483 x 686 ) mm = ( 19.00 x 27.00 ) in
+ 'EN_DOUBLE_POST' => array( 1368.000, 2196.000), // = ( 483 x 775 ) mm = ( 19.00 x 30.50 ) in
+ 'EN_MEDIUM' => array( 1260.000, 1656.000), // = ( 445 x 584 ) mm = ( 17.50 x 23.00 ) in
+ 'EN_DEMY' => array( 1260.000, 1620.000), // = ( 445 x 572 ) mm = ( 17.50 x 22.50 ) in
+ 'EN_LARGE_POST' => array( 1188.000, 1512.000), // = ( 419 x 533 ) mm = ( 16.50 x 21.00 ) in
+ 'EN_COPY_DRAUGHT' => array( 1152.000, 1440.000), // = ( 406 x 508 ) mm = ( 16.00 x 20.00 ) in
+ 'EN_POST' => array( 1116.000, 1386.000), // = ( 394 x 489 ) mm = ( 15.50 x 19.25 ) in
+ 'EN_CROWN' => array( 1080.000, 1440.000), // = ( 381 x 508 ) mm = ( 15.00 x 20.00 ) in
+ 'EN_PINCHED_POST' => array( 1062.000, 1332.000), // = ( 375 x 470 ) mm = ( 14.75 x 18.50 ) in
+ 'EN_BRIEF' => array( 972.000, 1152.000), // = ( 343 x 406 ) mm = ( 13.50 x 16.00 ) in
+ 'EN_FOOLSCAP' => array( 972.000, 1224.000), // = ( 343 x 432 ) mm = ( 13.50 x 17.00 ) in
+ 'EN_SMALL_FOOLSCAP' => array( 954.000, 1188.000), // = ( 337 x 419 ) mm = ( 13.25 x 16.50 ) in
+ 'EN_POTT' => array( 900.000, 1080.000), // = ( 318 x 381 ) mm = ( 12.50 x 15.00 ) in
+ // - Old Imperial Belgian Sizes
+ 'BE_GRAND_AIGLE' => array( 1984.252, 2948.031), // = ( 700 x 1040 ) mm = ( 27.56 x 40.94 ) in
+ 'BE_COLOMBIER' => array( 1757.480, 2409.449), // = ( 620 x 850 ) mm = ( 24.41 x 33.46 ) in
+ 'BE_DOUBLE_CARRE' => array( 1757.480, 2607.874), // = ( 620 x 920 ) mm = ( 24.41 x 36.22 ) in
+ 'BE_ELEPHANT' => array( 1746.142, 2182.677), // = ( 616 x 770 ) mm = ( 24.25 x 30.31 ) in
+ 'BE_PETIT_AIGLE' => array( 1700.787, 2381.102), // = ( 600 x 840 ) mm = ( 23.62 x 33.07 ) in
+ 'BE_GRAND_JESUS' => array( 1559.055, 2069.291), // = ( 550 x 730 ) mm = ( 21.65 x 28.74 ) in
+ 'BE_JESUS' => array( 1530.709, 2069.291), // = ( 540 x 730 ) mm = ( 21.26 x 28.74 ) in
+ 'BE_RAISIN' => array( 1417.323, 1842.520), // = ( 500 x 650 ) mm = ( 19.69 x 25.59 ) in
+ 'BE_GRAND_MEDIAN' => array( 1303.937, 1714.961), // = ( 460 x 605 ) mm = ( 18.11 x 23.82 ) in
+ 'BE_DOUBLE_POSTE' => array( 1233.071, 1601.575), // = ( 435 x 565 ) mm = ( 17.13 x 22.24 ) in
+ 'BE_COQUILLE' => array( 1218.898, 1587.402), // = ( 430 x 560 ) mm = ( 16.93 x 22.05 ) in
+ 'BE_PETIT_MEDIAN' => array( 1176.378, 1502.362), // = ( 415 x 530 ) mm = ( 16.34 x 20.87 ) in
+ 'BE_RUCHE' => array( 1020.472, 1303.937), // = ( 360 x 460 ) mm = ( 14.17 x 18.11 ) in
+ 'BE_PROPATRIA' => array( 977.953, 1218.898), // = ( 345 x 430 ) mm = ( 13.58 x 16.93 ) in
+ 'BE_LYS' => array( 898.583, 1125.354), // = ( 317 x 397 ) mm = ( 12.48 x 15.63 ) in
+ 'BE_POT' => array( 870.236, 1088.504), // = ( 307 x 384 ) mm = ( 12.09 x 15.12 ) in
+ 'BE_ROSETTE' => array( 765.354, 983.622), // = ( 270 x 347 ) mm = ( 10.63 x 13.66 ) in
+ // - Old Imperial French Sizes
+ 'FR_UNIVERS' => array( 2834.646, 3685.039), // = ( 1000 x 1300 ) mm = ( 39.37 x 51.18 ) in
+ 'FR_DOUBLE_COLOMBIER' => array( 2551.181, 3571.654), // = ( 900 x 1260 ) mm = ( 35.43 x 49.61 ) in
+ 'FR_GRANDE_MONDE' => array( 2551.181, 3571.654), // = ( 900 x 1260 ) mm = ( 35.43 x 49.61 ) in
+ 'FR_DOUBLE_SOLEIL' => array( 2267.717, 3401.575), // = ( 800 x 1200 ) mm = ( 31.50 x 47.24 ) in
+ 'FR_DOUBLE_JESUS' => array( 2154.331, 3174.803), // = ( 760 x 1120 ) mm = ( 29.92 x 44.09 ) in
+ 'FR_GRAND_AIGLE' => array( 2125.984, 3004.724), // = ( 750 x 1060 ) mm = ( 29.53 x 41.73 ) in
+ 'FR_PETIT_AIGLE' => array( 1984.252, 2664.567), // = ( 700 x 940 ) mm = ( 27.56 x 37.01 ) in
+ 'FR_DOUBLE_RAISIN' => array( 1842.520, 2834.646), // = ( 650 x 1000 ) mm = ( 25.59 x 39.37 ) in
+ 'FR_JOURNAL' => array( 1842.520, 2664.567), // = ( 650 x 940 ) mm = ( 25.59 x 37.01 ) in
+ 'FR_COLOMBIER_AFFICHE' => array( 1785.827, 2551.181), // = ( 630 x 900 ) mm = ( 24.80 x 35.43 ) in
+ 'FR_DOUBLE_CAVALIER' => array( 1757.480, 2607.874), // = ( 620 x 920 ) mm = ( 24.41 x 36.22 ) in
+ 'FR_CLOCHE' => array( 1700.787, 2267.717), // = ( 600 x 800 ) mm = ( 23.62 x 31.50 ) in
+ 'FR_SOLEIL' => array( 1700.787, 2267.717), // = ( 600 x 800 ) mm = ( 23.62 x 31.50 ) in
+ 'FR_DOUBLE_CARRE' => array( 1587.402, 2551.181), // = ( 560 x 900 ) mm = ( 22.05 x 35.43 ) in
+ 'FR_DOUBLE_COQUILLE' => array( 1587.402, 2494.488), // = ( 560 x 880 ) mm = ( 22.05 x 34.65 ) in
+ 'FR_JESUS' => array( 1587.402, 2154.331), // = ( 560 x 760 ) mm = ( 22.05 x 29.92 ) in
+ 'FR_RAISIN' => array( 1417.323, 1842.520), // = ( 500 x 650 ) mm = ( 19.69 x 25.59 ) in
+ 'FR_CAVALIER' => array( 1303.937, 1757.480), // = ( 460 x 620 ) mm = ( 18.11 x 24.41 ) in
+ 'FR_DOUBLE_COURONNE' => array( 1303.937, 2040.945), // = ( 460 x 720 ) mm = ( 18.11 x 28.35 ) in
+ 'FR_CARRE' => array( 1275.591, 1587.402), // = ( 450 x 560 ) mm = ( 17.72 x 22.05 ) in
+ 'FR_COQUILLE' => array( 1247.244, 1587.402), // = ( 440 x 560 ) mm = ( 17.32 x 22.05 ) in
+ 'FR_DOUBLE_TELLIERE' => array( 1247.244, 1927.559), // = ( 440 x 680 ) mm = ( 17.32 x 26.77 ) in
+ 'FR_DOUBLE_CLOCHE' => array( 1133.858, 1700.787), // = ( 400 x 600 ) mm = ( 15.75 x 23.62 ) in
+ 'FR_DOUBLE_POT' => array( 1133.858, 1757.480), // = ( 400 x 620 ) mm = ( 15.75 x 24.41 ) in
+ 'FR_ECU' => array( 1133.858, 1474.016), // = ( 400 x 520 ) mm = ( 15.75 x 20.47 ) in
+ 'FR_COURONNE' => array( 1020.472, 1303.937), // = ( 360 x 460 ) mm = ( 14.17 x 18.11 ) in
+ 'FR_TELLIERE' => array( 963.780, 1247.244), // = ( 340 x 440 ) mm = ( 13.39 x 17.32 ) in
+ 'FR_POT' => array( 878.740, 1133.858), // = ( 310 x 400 ) mm = ( 12.20 x 15.75 ) in
+ );
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -163,670 +519,16 @@ class TCPDF_STATIC {
/**
* Get page dimensions from format name.
- * @param $format (mixed) The format name. It can be:
- *
+ * @param $format (mixed) The format name @see self::$page_format
* @return array containing page width and height in points
* @since 5.0.010 (2010-05-17)
* @public static
*/
public static function getPageSizeFromFormat($format) {
- // Paper cordinates are calculated in this way: (inches * 72) where (1 inch = 25.4 mm)
- switch (strtoupper($format)) {
- // ISO 216 A Series + 2 SIS 014711 extensions
- case 'A0' : {$pf = array( 2383.937, 3370.394); break;}
- case 'A1' : {$pf = array( 1683.780, 2383.937); break;}
- case 'A2' : {$pf = array( 1190.551, 1683.780); break;}
- case 'A3' : {$pf = array( 841.890, 1190.551); break;}
- case 'A4' : {$pf = array( 595.276, 841.890); break;}
- case 'A5' : {$pf = array( 419.528, 595.276); break;}
- case 'A6' : {$pf = array( 297.638, 419.528); break;}
- case 'A7' : {$pf = array( 209.764, 297.638); break;}
- case 'A8' : {$pf = array( 147.402, 209.764); break;}
- case 'A9' : {$pf = array( 104.882, 147.402); break;}
- case 'A10': {$pf = array( 73.701, 104.882); break;}
- case 'A11': {$pf = array( 51.024, 73.701); break;}
- case 'A12': {$pf = array( 36.850, 51.024); break;}
- // ISO 216 B Series + 2 SIS 014711 extensions
- case 'B0' : {$pf = array( 2834.646, 4008.189); break;}
- case 'B1' : {$pf = array( 2004.094, 2834.646); break;}
- case 'B2' : {$pf = array( 1417.323, 2004.094); break;}
- case 'B3' : {$pf = array( 1000.630, 1417.323); break;}
- case 'B4' : {$pf = array( 708.661, 1000.630); break;}
- case 'B5' : {$pf = array( 498.898, 708.661); break;}
- case 'B6' : {$pf = array( 354.331, 498.898); break;}
- case 'B7' : {$pf = array( 249.449, 354.331); break;}
- case 'B8' : {$pf = array( 175.748, 249.449); break;}
- case 'B9' : {$pf = array( 124.724, 175.748); break;}
- case 'B10': {$pf = array( 87.874, 124.724); break;}
- case 'B11': {$pf = array( 62.362, 87.874); break;}
- case 'B12': {$pf = array( 42.520, 62.362); break;}
- // ISO 216 C Series + 2 SIS 014711 extensions + 2 EXTENSION
- case 'C0' : {$pf = array( 2599.370, 3676.535); break;}
- case 'C1' : {$pf = array( 1836.850, 2599.370); break;}
- case 'C2' : {$pf = array( 1298.268, 1836.850); break;}
- case 'C3' : {$pf = array( 918.425, 1298.268); break;}
- case 'C4' : {$pf = array( 649.134, 918.425); break;}
- case 'C5' : {$pf = array( 459.213, 649.134); break;}
- case 'C6' : {$pf = array( 323.150, 459.213); break;}
- case 'C7' : {$pf = array( 229.606, 323.150); break;}
- case 'C8' : {$pf = array( 161.575, 229.606); break;}
- case 'C9' : {$pf = array( 113.386, 161.575); break;}
- case 'C10': {$pf = array( 79.370, 113.386); break;}
- case 'C11': {$pf = array( 56.693, 79.370); break;}
- case 'C12': {$pf = array( 39.685, 56.693); break;}
- case 'C76': {$pf = array( 229.606, 459.213); break;}
- case 'DL' : {$pf = array( 311.811, 623.622); break;}
- // SIS 014711 E Series
- case 'E0' : {$pf = array( 2491.654, 3517.795); break;}
- case 'E1' : {$pf = array( 1757.480, 2491.654); break;}
- case 'E2' : {$pf = array( 1247.244, 1757.480); break;}
- case 'E3' : {$pf = array( 878.740, 1247.244); break;}
- case 'E4' : {$pf = array( 623.622, 878.740); break;}
- case 'E5' : {$pf = array( 439.370, 623.622); break;}
- case 'E6' : {$pf = array( 311.811, 439.370); break;}
- case 'E7' : {$pf = array( 221.102, 311.811); break;}
- case 'E8' : {$pf = array( 155.906, 221.102); break;}
- case 'E9' : {$pf = array( 110.551, 155.906); break;}
- case 'E10': {$pf = array( 76.535, 110.551); break;}
- case 'E11': {$pf = array( 53.858, 76.535); break;}
- case 'E12': {$pf = array( 36.850, 53.858); break;}
- // SIS 014711 G Series
- case 'G0' : {$pf = array( 2715.591, 3838.110); break;}
- case 'G1' : {$pf = array( 1919.055, 2715.591); break;}
- case 'G2' : {$pf = array( 1357.795, 1919.055); break;}
- case 'G3' : {$pf = array( 958.110, 1357.795); break;}
- case 'G4' : {$pf = array( 677.480, 958.110); break;}
- case 'G5' : {$pf = array( 479.055, 677.480); break;}
- case 'G6' : {$pf = array( 337.323, 479.055); break;}
- case 'G7' : {$pf = array( 238.110, 337.323); break;}
- case 'G8' : {$pf = array( 167.244, 238.110); break;}
- case 'G9' : {$pf = array( 119.055, 167.244); break;}
- case 'G10': {$pf = array( 82.205, 119.055); break;}
- case 'G11': {$pf = array( 59.528, 82.205); break;}
- case 'G12': {$pf = array( 39.685, 59.528); break;}
- // ISO Press
- case 'RA0': {$pf = array( 2437.795, 3458.268); break;}
- case 'RA1': {$pf = array( 1729.134, 2437.795); break;}
- case 'RA2': {$pf = array( 1218.898, 1729.134); break;}
- case 'RA3': {$pf = array( 864.567, 1218.898); break;}
- case 'RA4': {$pf = array( 609.449, 864.567); break;}
- case 'SRA0': {$pf = array( 2551.181, 3628.346); break;}
- case 'SRA1': {$pf = array( 1814.173, 2551.181); break;}
- case 'SRA2': {$pf = array( 1275.591, 1814.173); break;}
- case 'SRA3': {$pf = array( 907.087, 1275.591); break;}
- case 'SRA4': {$pf = array( 637.795, 907.087); break;}
- // German DIN 476
- case '4A0': {$pf = array( 4767.874, 6740.787); break;}
- case '2A0': {$pf = array( 3370.394, 4767.874); break;}
- // Variations on the ISO Standard
- case 'A2_EXTRA' : {$pf = array( 1261.417, 1754.646); break;}
- case 'A3+' : {$pf = array( 932.598, 1369.134); break;}
- case 'A3_EXTRA' : {$pf = array( 912.756, 1261.417); break;}
- case 'A3_SUPER' : {$pf = array( 864.567, 1440.000); break;}
- case 'SUPER_A3' : {$pf = array( 864.567, 1380.472); break;}
- case 'A4_EXTRA' : {$pf = array( 666.142, 912.756); break;}
- case 'A4_SUPER' : {$pf = array( 649.134, 912.756); break;}
- case 'SUPER_A4' : {$pf = array( 643.465, 1009.134); break;}
- case 'A4_LONG' : {$pf = array( 595.276, 986.457); break;}
- case 'F4' : {$pf = array( 595.276, 935.433); break;}
- case 'SO_B5_EXTRA': {$pf = array( 572.598, 782.362); break;}
- case 'A5_EXTRA' : {$pf = array( 490.394, 666.142); break;}
- // ANSI Series
- case 'ANSI_E': {$pf = array( 2448.000, 3168.000); break;}
- case 'ANSI_D': {$pf = array( 1584.000, 2448.000); break;}
- case 'ANSI_C': {$pf = array( 1224.000, 1584.000); break;}
- case 'ANSI_B': {$pf = array( 792.000, 1224.000); break;}
- case 'ANSI_A': {$pf = array( 612.000, 792.000); break;}
- // Traditional 'Loose' North American Paper Sizes
- case 'USLEDGER':
- case 'LEDGER' : {$pf = array( 1224.000, 792.000); break;}
- case 'ORGANIZERK':
- case 'BIBLE':
- case 'USTABLOID':
- case 'TABLOID': {$pf = array( 792.000, 1224.000); break;}
- case 'ORGANIZERM':
- case 'USLETTER':
- case 'LETTER' : {$pf = array( 612.000, 792.000); break;}
- case 'USLEGAL':
- case 'LEGAL' : {$pf = array( 612.000, 1008.000); break;}
- case 'GOVERNMENTLETTER':
- case 'GLETTER': {$pf = array( 576.000, 756.000); break;}
- case 'JUNIORLEGAL':
- case 'JLEGAL' : {$pf = array( 576.000, 360.000); break;}
- // Other North American Paper Sizes
- case 'QUADDEMY': {$pf = array( 2520.000, 3240.000); break;}
- case 'SUPER_B': {$pf = array( 936.000, 1368.000); break;}
- case 'QUARTO': {$pf = array( 648.000, 792.000); break;}
- case 'GOVERNMENTLEGAL':
- case 'FOLIO': {$pf = array( 612.000, 936.000); break;}
- case 'MONARCH':
- case 'EXECUTIVE': {$pf = array( 522.000, 756.000); break;}
- case 'ORGANIZERL':
- case 'STATEMENT':
- case 'MEMO': {$pf = array( 396.000, 612.000); break;}
- case 'FOOLSCAP': {$pf = array( 595.440, 936.000); break;}
- case 'COMPACT': {$pf = array( 306.000, 486.000); break;}
- case 'ORGANIZERJ': {$pf = array( 198.000, 360.000); break;}
- // Canadian standard CAN 2-9.60M
- case 'P1': {$pf = array( 1587.402, 2437.795); break;}
- case 'P2': {$pf = array( 1218.898, 1587.402); break;}
- case 'P3': {$pf = array( 793.701, 1218.898); break;}
- case 'P4': {$pf = array( 609.449, 793.701); break;}
- case 'P5': {$pf = array( 396.850, 609.449); break;}
- case 'P6': {$pf = array( 303.307, 396.850); break;}
- // North American Architectural Sizes
- case 'ARCH_E' : {$pf = array( 2592.000, 3456.000); break;}
- case 'ARCH_E1': {$pf = array( 2160.000, 3024.000); break;}
- case 'ARCH_D' : {$pf = array( 1728.000, 2592.000); break;}
- case 'BROADSHEET':
- case 'ARCH_C' : {$pf = array( 1296.000, 1728.000); break;}
- case 'ARCH_B' : {$pf = array( 864.000, 1296.000); break;}
- case 'ARCH_A' : {$pf = array( 648.000, 864.000); break;}
- // --- North American Envelope Sizes ---
- // - Announcement Envelopes
- case 'ANNENV_A2' : {$pf = array( 314.640, 414.000); break;}
- case 'ANNENV_A6' : {$pf = array( 342.000, 468.000); break;}
- case 'ANNENV_A7' : {$pf = array( 378.000, 522.000); break;}
- case 'ANNENV_A8' : {$pf = array( 396.000, 584.640); break;}
- case 'ANNENV_A10' : {$pf = array( 450.000, 692.640); break;}
- case 'ANNENV_SLIM': {$pf = array( 278.640, 638.640); break;}
- // - Commercial Envelopes
- case 'COMMENV_N6_1/4': {$pf = array( 252.000, 432.000); break;}
- case 'COMMENV_N6_3/4': {$pf = array( 260.640, 468.000); break;}
- case 'COMMENV_N8' : {$pf = array( 278.640, 540.000); break;}
- case 'COMMENV_N9' : {$pf = array( 278.640, 638.640); break;}
- case 'COMMENV_N10' : {$pf = array( 296.640, 684.000); break;}
- case 'COMMENV_N11' : {$pf = array( 324.000, 746.640); break;}
- case 'COMMENV_N12' : {$pf = array( 342.000, 792.000); break;}
- case 'COMMENV_N14' : {$pf = array( 360.000, 828.000); break;}
- // - Catalogue Envelopes
- case 'CATENV_N1' : {$pf = array( 432.000, 648.000); break;}
- case 'CATENV_N1_3/4' : {$pf = array( 468.000, 684.000); break;}
- case 'CATENV_N2' : {$pf = array( 468.000, 720.000); break;}
- case 'CATENV_N3' : {$pf = array( 504.000, 720.000); break;}
- case 'CATENV_N6' : {$pf = array( 540.000, 756.000); break;}
- case 'CATENV_N7' : {$pf = array( 576.000, 792.000); break;}
- case 'CATENV_N8' : {$pf = array( 594.000, 810.000); break;}
- case 'CATENV_N9_1/2' : {$pf = array( 612.000, 756.000); break;}
- case 'CATENV_N9_3/4' : {$pf = array( 630.000, 810.000); break;}
- case 'CATENV_N10_1/2': {$pf = array( 648.000, 864.000); break;}
- case 'CATENV_N12_1/2': {$pf = array( 684.000, 900.000); break;}
- case 'CATENV_N13_1/2': {$pf = array( 720.000, 936.000); break;}
- case 'CATENV_N14_1/4': {$pf = array( 810.000, 882.000); break;}
- case 'CATENV_N14_1/2': {$pf = array( 828.000, 1044.000); break;}
- // Japanese (JIS P 0138-61) Standard B-Series
- case 'JIS_B0' : {$pf = array( 2919.685, 4127.244); break;}
- case 'JIS_B1' : {$pf = array( 2063.622, 2919.685); break;}
- case 'JIS_B2' : {$pf = array( 1459.843, 2063.622); break;}
- case 'JIS_B3' : {$pf = array( 1031.811, 1459.843); break;}
- case 'JIS_B4' : {$pf = array( 728.504, 1031.811); break;}
- case 'JIS_B5' : {$pf = array( 515.906, 728.504); break;}
- case 'JIS_B6' : {$pf = array( 362.835, 515.906); break;}
- case 'JIS_B7' : {$pf = array( 257.953, 362.835); break;}
- case 'JIS_B8' : {$pf = array( 181.417, 257.953); break;}
- case 'JIS_B9' : {$pf = array( 127.559, 181.417); break;}
- case 'JIS_B10': {$pf = array( 90.709, 127.559); break;}
- case 'JIS_B11': {$pf = array( 62.362, 90.709); break;}
- case 'JIS_B12': {$pf = array( 45.354, 62.362); break;}
- // PA Series
- case 'PA0' : {$pf = array( 2381.102, 3174.803,); break;}
- case 'PA1' : {$pf = array( 1587.402, 2381.102); break;}
- case 'PA2' : {$pf = array( 1190.551, 1587.402); break;}
- case 'PA3' : {$pf = array( 793.701, 1190.551); break;}
- case 'PA4' : {$pf = array( 595.276, 793.701); break;}
- case 'PA5' : {$pf = array( 396.850, 595.276); break;}
- case 'PA6' : {$pf = array( 297.638, 396.850); break;}
- case 'PA7' : {$pf = array( 198.425, 297.638); break;}
- case 'PA8' : {$pf = array( 147.402, 198.425); break;}
- case 'PA9' : {$pf = array( 99.213, 147.402); break;}
- case 'PA10': {$pf = array( 73.701, 99.213); break;}
- // Standard Photographic Print Sizes
- case 'PASSPORT_PHOTO': {$pf = array( 99.213, 127.559); break;}
- case 'E' : {$pf = array( 233.858, 340.157); break;}
- case 'L':
- case '3R' : {$pf = array( 252.283, 360.000); break;}
- case 'KG':
- case '4R' : {$pf = array( 289.134, 430.866); break;}
- case '4D' : {$pf = array( 340.157, 430.866); break;}
- case '2L':
- case '5R' : {$pf = array( 360.000, 504.567); break;}
- case '8P':
- case '6R' : {$pf = array( 430.866, 575.433); break;}
- case '6P':
- case '8R' : {$pf = array( 575.433, 720.000); break;}
- case '6PW':
- case 'S8R' : {$pf = array( 575.433, 864.567); break;}
- case '4P':
- case '10R' : {$pf = array( 720.000, 864.567); break;}
- case '4PW':
- case 'S10R': {$pf = array( 720.000, 1080.000); break;}
- case '11R' : {$pf = array( 790.866, 1009.134); break;}
- case 'S11R': {$pf = array( 790.866, 1224.567); break;}
- case '12R' : {$pf = array( 864.567, 1080.000); break;}
- case 'S12R': {$pf = array( 864.567, 1292.598); break;}
- // Common Newspaper Sizes
- case 'NEWSPAPER_BROADSHEET': {$pf = array( 2125.984, 1700.787); break;}
- case 'NEWSPAPER_BERLINER' : {$pf = array( 1332.283, 892.913); break;}
- case 'NEWSPAPER_TABLOID':
- case 'NEWSPAPER_COMPACT' : {$pf = array( 1218.898, 793.701); break;}
- // Business Cards
- case 'CREDIT_CARD':
- case 'BUSINESS_CARD':
- case 'BUSINESS_CARD_ISO7810': {$pf = array( 153.014, 242.646); break;}
- case 'BUSINESS_CARD_ISO216' : {$pf = array( 147.402, 209.764); break;}
- case 'BUSINESS_CARD_IT':
- case 'BUSINESS_CARD_UK':
- case 'BUSINESS_CARD_FR':
- case 'BUSINESS_CARD_DE':
- case 'BUSINESS_CARD_ES' : {$pf = array( 155.906, 240.945); break;}
- case 'BUSINESS_CARD_CA':
- case 'BUSINESS_CARD_US' : {$pf = array( 144.567, 252.283); break;}
- case 'BUSINESS_CARD_JP' : {$pf = array( 155.906, 257.953); break;}
- case 'BUSINESS_CARD_HK' : {$pf = array( 153.071, 255.118); break;}
- case 'BUSINESS_CARD_AU':
- case 'BUSINESS_CARD_DK':
- case 'BUSINESS_CARD_SE' : {$pf = array( 155.906, 255.118); break;}
- case 'BUSINESS_CARD_RU':
- case 'BUSINESS_CARD_CZ':
- case 'BUSINESS_CARD_FI':
- case 'BUSINESS_CARD_HU':
- case 'BUSINESS_CARD_IL' : {$pf = array( 141.732, 255.118); break;}
- // Billboards
- case '4SHEET' : {$pf = array( 2880.000, 4320.000); break;}
- case '6SHEET' : {$pf = array( 3401.575, 5102.362); break;}
- case '12SHEET': {$pf = array( 8640.000, 4320.000); break;}
- case '16SHEET': {$pf = array( 5760.000, 8640.000); break;}
- case '32SHEET': {$pf = array(11520.000, 8640.000); break;}
- case '48SHEET': {$pf = array(17280.000, 8640.000); break;}
- case '64SHEET': {$pf = array(23040.000, 8640.000); break;}
- case '96SHEET': {$pf = array(34560.000, 8640.000); break;}
- // Old European Sizes
- // - Old Imperial English Sizes
- case 'EN_EMPEROR' : {$pf = array( 3456.000, 5184.000); break;}
- case 'EN_ANTIQUARIAN' : {$pf = array( 2232.000, 3816.000); break;}
- case 'EN_GRAND_EAGLE' : {$pf = array( 2070.000, 3024.000); break;}
- case 'EN_DOUBLE_ELEPHANT' : {$pf = array( 1926.000, 2880.000); break;}
- case 'EN_ATLAS' : {$pf = array( 1872.000, 2448.000); break;}
- case 'EN_COLOMBIER' : {$pf = array( 1692.000, 2484.000); break;}
- case 'EN_ELEPHANT' : {$pf = array( 1656.000, 2016.000); break;}
- case 'EN_DOUBLE_DEMY' : {$pf = array( 1620.000, 2556.000); break;}
- case 'EN_IMPERIAL' : {$pf = array( 1584.000, 2160.000); break;}
- case 'EN_PRINCESS' : {$pf = array( 1548.000, 2016.000); break;}
- case 'EN_CARTRIDGE' : {$pf = array( 1512.000, 1872.000); break;}
- case 'EN_DOUBLE_LARGE_POST': {$pf = array( 1512.000, 2376.000); break;}
- case 'EN_ROYAL' : {$pf = array( 1440.000, 1800.000); break;}
- case 'EN_SHEET':
- case 'EN_HALF_POST' : {$pf = array( 1404.000, 1692.000); break;}
- case 'EN_SUPER_ROYAL' : {$pf = array( 1368.000, 1944.000); break;}
- case 'EN_DOUBLE_POST' : {$pf = array( 1368.000, 2196.000); break;}
- case 'EN_MEDIUM' : {$pf = array( 1260.000, 1656.000); break;}
- case 'EN_DEMY' : {$pf = array( 1260.000, 1620.000); break;}
- case 'EN_LARGE_POST' : {$pf = array( 1188.000, 1512.000); break;}
- case 'EN_COPY_DRAUGHT' : {$pf = array( 1152.000, 1440.000); break;}
- case 'EN_POST' : {$pf = array( 1116.000, 1386.000); break;}
- case 'EN_CROWN' : {$pf = array( 1080.000, 1440.000); break;}
- case 'EN_PINCHED_POST' : {$pf = array( 1062.000, 1332.000); break;}
- case 'EN_BRIEF' : {$pf = array( 972.000, 1152.000); break;}
- case 'EN_FOOLSCAP' : {$pf = array( 972.000, 1224.000); break;}
- case 'EN_SMALL_FOOLSCAP' : {$pf = array( 954.000, 1188.000); break;}
- case 'EN_POTT' : {$pf = array( 900.000, 1080.000); break;}
- // - Old Imperial Belgian Sizes
- case 'BE_GRAND_AIGLE' : {$pf = array( 1984.252, 2948.031); break;}
- case 'BE_COLOMBIER' : {$pf = array( 1757.480, 2409.449); break;}
- case 'BE_DOUBLE_CARRE': {$pf = array( 1757.480, 2607.874); break;}
- case 'BE_ELEPHANT' : {$pf = array( 1746.142, 2182.677); break;}
- case 'BE_PETIT_AIGLE' : {$pf = array( 1700.787, 2381.102); break;}
- case 'BE_GRAND_JESUS' : {$pf = array( 1559.055, 2069.291); break;}
- case 'BE_JESUS' : {$pf = array( 1530.709, 2069.291); break;}
- case 'BE_RAISIN' : {$pf = array( 1417.323, 1842.520); break;}
- case 'BE_GRAND_MEDIAN': {$pf = array( 1303.937, 1714.961); break;}
- case 'BE_DOUBLE_POSTE': {$pf = array( 1233.071, 1601.575); break;}
- case 'BE_COQUILLE' : {$pf = array( 1218.898, 1587.402); break;}
- case 'BE_PETIT_MEDIAN': {$pf = array( 1176.378, 1502.362); break;}
- case 'BE_RUCHE' : {$pf = array( 1020.472, 1303.937); break;}
- case 'BE_PROPATRIA' : {$pf = array( 977.953, 1218.898); break;}
- case 'BE_LYS' : {$pf = array( 898.583, 1125.354); break;}
- case 'BE_POT' : {$pf = array( 870.236, 1088.504); break;}
- case 'BE_ROSETTE' : {$pf = array( 765.354, 983.622); break;}
- // - Old Imperial French Sizes
- case 'FR_UNIVERS' : {$pf = array( 2834.646, 3685.039); break;}
- case 'FR_DOUBLE_COLOMBIER' : {$pf = array( 2551.181, 3571.654); break;}
- case 'FR_GRANDE_MONDE' : {$pf = array( 2551.181, 3571.654); break;}
- case 'FR_DOUBLE_SOLEIL' : {$pf = array( 2267.717, 3401.575); break;}
- case 'FR_DOUBLE_JESUS' : {$pf = array( 2154.331, 3174.803); break;}
- case 'FR_GRAND_AIGLE' : {$pf = array( 2125.984, 3004.724); break;}
- case 'FR_PETIT_AIGLE' : {$pf = array( 1984.252, 2664.567); break;}
- case 'FR_DOUBLE_RAISIN' : {$pf = array( 1842.520, 2834.646); break;}
- case 'FR_JOURNAL' : {$pf = array( 1842.520, 2664.567); break;}
- case 'FR_COLOMBIER_AFFICHE': {$pf = array( 1785.827, 2551.181); break;}
- case 'FR_DOUBLE_CAVALIER' : {$pf = array( 1757.480, 2607.874); break;}
- case 'FR_CLOCHE' : {$pf = array( 1700.787, 2267.717); break;}
- case 'FR_SOLEIL' : {$pf = array( 1700.787, 2267.717); break;}
- case 'FR_DOUBLE_CARRE' : {$pf = array( 1587.402, 2551.181); break;}
- case 'FR_DOUBLE_COQUILLE' : {$pf = array( 1587.402, 2494.488); break;}
- case 'FR_JESUS' : {$pf = array( 1587.402, 2154.331); break;}
- case 'FR_RAISIN' : {$pf = array( 1417.323, 1842.520); break;}
- case 'FR_CAVALIER' : {$pf = array( 1303.937, 1757.480); break;}
- case 'FR_DOUBLE_COURONNE' : {$pf = array( 1303.937, 2040.945); break;}
- case 'FR_CARRE' : {$pf = array( 1275.591, 1587.402); break;}
- case 'FR_COQUILLE' : {$pf = array( 1247.244, 1587.402); break;}
- case 'FR_DOUBLE_TELLIERE' : {$pf = array( 1247.244, 1927.559); break;}
- case 'FR_DOUBLE_CLOCHE' : {$pf = array( 1133.858, 1700.787); break;}
- case 'FR_DOUBLE_POT' : {$pf = array( 1133.858, 1757.480); break;}
- case 'FR_ECU' : {$pf = array( 1133.858, 1474.016); break;}
- case 'FR_COURONNE' : {$pf = array( 1020.472, 1303.937); break;}
- case 'FR_TELLIERE' : {$pf = array( 963.780, 1247.244); break;}
- case 'FR_POT' : {$pf = array( 878.740, 1133.858); break;}
- // DEFAULT ISO A4
- default: {$pf = array( 595.276, 841.890); break;}
+ if (isset(self::$page_formats[$format])) {
+ return self::$page_formats[$format];
}
- return $pf;
+ return self::$page_formats['A4'];
}
/**
@@ -1093,12 +795,13 @@ class TCPDF_STATIC {
/**
* Returns a temporary filename for caching object on filesystem.
* @param $type (string) Type of file (name of the subdir on the tcpdf cache folder).
+ * @param $file_id (string) TCPDF file_id.
* @return string filename.
* @since 4.5.000 (2008-12-31)
* @public static
*/
- public static function getObjFilename($type='tmp') {
- return tempnam(K_PATH_CACHE, '__tcpdf_'.$type.'_'.md5(uniqid('', true).rand().microtime(true)).'_');
+ public static function getObjFilename($type='tmp', $file_id='') {
+ return tempnam(K_PATH_CACHE, '__tcpdf_'.$file_id.'_'.$type.'_'.md5(TCPDF_STATIC::getRandomSeed()).'_');
}
/**
@@ -1141,7 +844,7 @@ class TCPDF_STATIC {
}
/**
- * Ouput input data and compress it if possible.
+ * Output input data and compress it if possible.
* @param $data (string) Data to output.
* @param $length (int) Data length in bytes.
* @since 5.9.086
@@ -1347,40 +1050,19 @@ class TCPDF_STATIC {
* @public static
*/
public static function getRandomSeed($seed='') {
- $seed .= microtime();
+ $rnd = uniqid(rand().microtime(true), true);
+ if (function_exists('posix_getpid')) {
+ $rnd .= posix_getpid();
+ }
if (function_exists('openssl_random_pseudo_bytes') AND (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')) {
// this is not used on windows systems because it is very slow for a know bug
- $seed .= openssl_random_pseudo_bytes(512);
+ $rnd .= openssl_random_pseudo_bytes(512);
} else {
for ($i = 0; $i < 23; ++$i) {
- $seed .= uniqid('', true);
+ $rnd .= uniqid('', true);
}
}
- $seed .= uniqid('', true);
- $seed .= rand();
- $seed .= __FILE__;
- if (isset($_SERVER['REMOTE_ADDR'])) {
- $seed .= $_SERVER['REMOTE_ADDR'];
- }
- if (isset($_SERVER['HTTP_USER_AGENT'])) {
- $seed .= $_SERVER['HTTP_USER_AGENT'];
- }
- if (isset($_SERVER['HTTP_ACCEPT'])) {
- $seed .= $_SERVER['HTTP_ACCEPT'];
- }
- if (isset($_SERVER['HTTP_ACCEPT_ENCODING'])) {
- $seed .= $_SERVER['HTTP_ACCEPT_ENCODING'];
- }
- if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
- $seed .= $_SERVER['HTTP_ACCEPT_LANGUAGE'];
- }
- if (isset($_SERVER['HTTP_ACCEPT_CHARSET'])) {
- $seed .= $_SERVER['HTTP_ACCEPT_CHARSET'];
- }
- $seed .= rand();
- $seed .= uniqid('', true);
- $seed .= microtime();
- return $seed;
+ return $rnd.$seed.__FILE__.serialize($_SERVER).microtime(true);
}
/**
@@ -1463,7 +1145,7 @@ class TCPDF_STATIC {
}
/**
- * Return the premission code used on encryption (P value).
+ * Return the permission code used on encryption (P value).
* @param $permissions (Array) the set of permissions (specify the ones you want to block).
* @param $mode (int) encryption strength: 0 = RC4 40 bit; 1 = RC4 128 bit; 2 = AES 128 bit; 3 = AES 256 bit.
* @since 5.0.005 (2010-05-12)
@@ -2448,27 +2130,6 @@ class TCPDF_STATIC {
return ($pos === false)?false:($length - $pos - strlen($needle));
}
- /**
- * Serialize an array of parameters to be used with TCPDF tag in HTML code.
- * @param $data (array) parameters array
- * @return string containing serialized data
- * @since 4.9.006 (2010-04-02)
- * @public static
- */
- public static function serializeTCPDFtagParameters($data) {
- return urlencode(json_encode($data));
- }
-
- /**
- * Unserialize parameters to be used with TCPDF tag in HTML code.
- * @param $data (string) serialized data
- * @return array containing unserialized data
- * @public static
- */
- public static function unserializeTCPDFtagParameters($data) {
- return json_decode(urldecode($data), true);
- }
-
/**
* Returns an array of hyphenation patterns.
* @param $file (string) TEX file containing hypenation patterns. TEX pattrns can be downloaded from http://www.ctan.org/tex-archive/language/hyph-utf8/tex/generic/hyph-utf8/patterns/
@@ -2763,6 +2424,22 @@ class TCPDF_STATIC {
return $ret;
}
+ /**
+ * Wrapper to use fopen only with local files
+ * @param filename (string) Name of the file to open
+ * @param $mode (string)
+ * @return Returns a file pointer resource on success, or FALSE on error.
+ * @public static
+ */
+ public static function fopenLocal($filename, $mode) {
+ if (strpos($filename, '://') === false) {
+ $filename = 'file://'.$filename;
+ } elseif (strpos($filename, 'file://') !== 0) {
+ return false;
+ }
+ return fopen($filename, $mode);
+ }
+
/**
* Reads entire file into a string.
* The file can be also an URL.
@@ -2803,7 +2480,7 @@ class TCPDF_STATIC {
}
$urldata = @parse_url($url);
if (!isset($urldata['query']) OR (strlen($urldata['query']) <= 0)) {
- if (strpos($url, K_PATH_URL) === 0) {
+ if (K_PATH_URL AND (strpos($url, K_PATH_URL) === 0)) {
// convert URL to full server path
$tmp = str_replace(K_PATH_URL, K_PATH_MAIN, $url);
$tmp = htmlspecialchars_decode(urldecode($tmp));
diff --git a/lib/tcpdf/readme_moodle.txt b/lib/tcpdf/readme_moodle.txt
index cc79c1421b5..0a1a6412fb6 100644
--- a/lib/tcpdf/readme_moodle.txt
+++ b/lib/tcpdf/readme_moodle.txt
@@ -1,10 +1,15 @@
-Description of TCPDF library import 6.0.093
+Description of TCPDF library import 6.2.6
===========================================
* delete examples/, tools/ and tcpdf_import.php
* remove tcpdf_import.php from composer.json
* remove all fonts that were not already present
* visit http://127.0.0.1/lib/tests/other/pdflibtestpage.php and view the pdf
+2015/03/23
+----------
+Upgrade to tcpdf_php5 TCPDF 6.2.6 (MDL-49522)
+by Adrian Greeve