30
1
mirror of https://github.com/vdm-io/tcpdf.git synced 2024-06-06 15:50:47 +00:00

6.0.029 (2013-09-15)

- Constants K_TCPDF_PARSER_THROW_EXCEPTION_ERROR and K_TCPDF_PARSER_IGNORE_DECODING_ERRORS where removed in favor of a new configuration array in the TCPDF_PARSER class.
- The TCPDF_PARSER class can now be configured using the new  parameter.
This commit is contained in:
nicolaasuni 2013-09-15 11:12:43 +01:00
parent 0dd315280d
commit 987c4af522
7 changed files with 52 additions and 19 deletions

View File

@ -1,7 +1,12 @@
6.0.029 (2013-09-15)
- Constants K_TCPDF_PARSER_THROW_EXCEPTION_ERROR and K_TCPDF_PARSER_IGNORE_DECODING_ERRORS where removed in favor of a new configuration array in the TCPDF_PARSER class.
- The TCPDF_PARSER class can now be configured using the new $cfg parameter.
6.0.028 (2013-09-15) 6.0.028 (2013-09-15)
- A debug print_r was removed form tcpdf_parser.php. - A debug print_r was removed form tcpdf_parser.php.
- TCPDF_FILTERS now throws an exception in case of error. - TCPDF_FILTERS class now throws an exception in case of error.
- TCPDF_PARSER now throws an exception in case of error unless you define the constant K_TCPDF_PARSER_THROW_EXCEPTION_ERROR to false. - TCPDF_PARSER class now throws an exception in case of error unless you define the constant K_TCPDF_PARSER_THROW_EXCEPTION_ERROR to false.
- The constant K_TCPDF_PARSER_IGNORE_DECODING_ERRORS can be set to tru eto ignore decoding errors on TCPDF_PARSER.
6.0.027 (2013-09-14) 6.0.027 (2013-09-14)
- A bug in tcpdf_parser wen parsing hexadecimal strings was fixed. - A bug in tcpdf_parser wen parsing hexadecimal strings was fixed.

View File

@ -8,7 +8,7 @@ http://sourceforge.net/donate/index.php?group_id=128076
------------------------------------------------------------ ------------------------------------------------------------
Name: TCPDF Name: TCPDF
Version: 6.0.028 Version: 6.0.029
Release date: 2013-09-15 Release date: 2013-09-15
Author: Nicola Asuni Author: Nicola Asuni

View File

@ -1,6 +1,6 @@
{ {
"name": "tecnick.com/tcpdf", "name": "tecnick.com/tcpdf",
"version": "6.0.028", "version": "6.0.029",
"homepage": "http://www.tcpdf.org/", "homepage": "http://www.tcpdf.org/",
"type": "library", "type": "library",
"description": "TCPDF is a PHP class for generating PDF documents.", "description": "TCPDF is a PHP class for generating PDF documents.",

View File

@ -406,7 +406,7 @@ class TCPDF_FILTERS {
* @public static * @public static
*/ */
public static function decodeFilterCCITTFaxDecode($data) { public static function decodeFilterCCITTFaxDecode($data) {
self::Error('decodeFilterCCITTFaxDecode: this method has not been yet implemented'); self::Error('~decodeFilterCCITTFaxDecode: this method has not been yet implemented');
//return $data; //return $data;
} }
@ -419,7 +419,7 @@ class TCPDF_FILTERS {
* @public static * @public static
*/ */
public static function decodeFilterJBIG2Decode($data) { public static function decodeFilterJBIG2Decode($data) {
self::Error('decodeFilterJBIG2Decode: this method has not been yet implemented'); self::Error('~decodeFilterJBIG2Decode: this method has not been yet implemented');
//return $data; //return $data;
} }
@ -432,7 +432,7 @@ class TCPDF_FILTERS {
* @public static * @public static
*/ */
public static function decodeFilterDCTDecode($data) { public static function decodeFilterDCTDecode($data) {
self::Error('decodeFilterDCTDecode: this method has not been yet implemented'); self::Error('~decodeFilterDCTDecode: this method has not been yet implemented');
//return $data; //return $data;
} }
@ -445,7 +445,7 @@ class TCPDF_FILTERS {
* @public static * @public static
*/ */
public static function decodeFilterJPXDecode($data) { public static function decodeFilterJPXDecode($data) {
self::Error('decodeFilterJPXDecode: this method has not been yet implemented'); self::Error('~decodeFilterJPXDecode: this method has not been yet implemented');
//return $data; //return $data;
} }
@ -458,7 +458,7 @@ class TCPDF_FILTERS {
* @public static * @public static
*/ */
public static function decodeFilterCrypt($data) { public static function decodeFilterCrypt($data) {
self::Error('decodeFilterCrypt: this method has not been yet implemented'); self::Error('~decodeFilterCrypt: this method has not been yet implemented');
//return $data; //return $data;
} }

View File

@ -55,7 +55,7 @@ class TCPDF_STATIC {
* Current TCPDF version. * Current TCPDF version.
* @private static * @private static
*/ */
private static $tcpdf_version = '6.0.028'; private static $tcpdf_version = '6.0.029';
/** /**
* String alias for total number of pages. * String alias for total number of pages.

View File

@ -1,7 +1,7 @@
<?php <?php
//============================================================+ //============================================================+
// File name : tcpdf.php // File name : tcpdf.php
// Version : 6.0.028 // Version : 6.0.029
// Begin : 2002-08-03 // Begin : 2002-08-03
// Last Update : 2013-09-15 // Last Update : 2013-09-15
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
@ -139,7 +139,7 @@
* Tools to encode your unicode fonts are on fonts/utils directory.</p> * Tools to encode your unicode fonts are on fonts/utils directory.</p>
* @package com.tecnick.tcpdf * @package com.tecnick.tcpdf
* @author Nicola Asuni * @author Nicola Asuni
* @version 6.0.028 * @version 6.0.029
*/ */
// TCPDF configuration // TCPDF configuration
@ -163,7 +163,7 @@ require_once(dirname(__FILE__).'/include/tcpdf_static.php');
* 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> * 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 * @package com.tecnick.tcpdf
* @brief PHP class for generating PDF documents without requiring external extensions. * @brief PHP class for generating PDF documents without requiring external extensions.
* @version 6.0.028 * @version 6.0.029
* @author Nicola Asuni - info@tecnick.com * @author Nicola Asuni - info@tecnick.com
*/ */
class TCPDF { class TCPDF {

View File

@ -1,7 +1,7 @@
<?php <?php
//============================================================+ //============================================================+
// File name : tcpdf_parser.php // File name : tcpdf_parser.php
// Version : 1.0.006 // Version : 1.0.007
// Begin : 2011-05-23 // Begin : 2011-05-23
// Last Update : 2013-09-15 // Last Update : 2013-09-15
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
@ -37,7 +37,7 @@
* This is a PHP class for parsing PDF documents.<br> * This is a PHP class for parsing PDF documents.<br>
* @package com.tecnick.tcpdf * @package com.tecnick.tcpdf
* @author Nicola Asuni * @author Nicola Asuni
* @version 1.0.006 * @version 1.0.007
*/ */
// include class for decoding filters // include class for decoding filters
@ -77,18 +77,43 @@ class TCPDF_PARSER {
*/ */
private $FilterDecoders; private $FilterDecoders;
/**
* Array of configuration parameters.
* @private
*/
private $cfg = array(
'die_for_errors' => false,
'ignore_filter_decoding_errors' => true,
'ignore_missing_filter_decoders' => true,
);
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
/** /**
* Parse a PDF document an return an array of objects. * Parse a PDF document an return an array of objects.
* @param $data (string) PDF data to parse. * @param $data (string) PDF data to parse.
* @param $cfg (array) Array of configuration parameters:
* 'die_for_errors' : if true termitate the program execution in case of error, otherwise thows an exception;
* 'ignore_filter_decoding_errors' : if true ignore filter decoding errors;
* 'ignore_missing_filter_decoders' : if true ignore missing filter decoding errors.
* @public * @public
* @since 1.0.000 (2011-05-24) * @since 1.0.000 (2011-05-24)
*/ */
public function __construct($data) { public function __construct($data, $cfg=array()) {
if (empty($data)) { if (empty($data)) {
$this->Error('Empty PDF data.'); $this->Error('Empty PDF data.');
} }
// set configuration parameters
if (isset($cfg['die_for_errors'])) {
$this->cfg['die_for_errors'] = !!$cfg['die_for_errors'];
}
if (isset($cfg['ignore_filter_decoding_errors'])) {
$this->cfg['ignore_filter_decoding_errors'] = !!$cfg['ignore_filter_decoding_errors'];
}
if (isset($cfg['ignore_missing_filter_decoders'])) {
$this->cfg['ignore_missing_filter_decoders'] = !!$cfg['ignore_missing_filter_decoders'];
}
// get PDF content string
$this->pdfdata = $data; $this->pdfdata = $data;
// get length // get length
$pdflen = strlen($this->pdfdata); $pdflen = strlen($this->pdfdata);
@ -210,7 +235,6 @@ class TCPDF_PARSER {
} }
if (preg_match('/Encrypt[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { if (preg_match('/Encrypt[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) {
$xref['trailer']['encrypt'] = intval($matches[1]).'_'.intval($matches[2]); $xref['trailer']['encrypt'] = intval($matches[1]).'_'.intval($matches[2]);
$this->Error('Encrypted documents are not supported!');
} }
if (preg_match('/Info[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) { if (preg_match('/Info[\s]+([0-9]+)[\s]+([0-9]+)[\s]+R/i', $trailer_data, $matches) > 0) {
$xref['trailer']['info'] = intval($matches[1]).'_'.intval($matches[2]); $xref['trailer']['info'] = intval($matches[1]).'_'.intval($matches[2]);
@ -724,7 +748,11 @@ class TCPDF_PARSER {
try { try {
$stream = $this->FilterDecoders->decodeFilter($filter, $stream); $stream = $this->FilterDecoders->decodeFilter($filter, $stream);
} catch (Exception $e) { } catch (Exception $e) {
$this->Error($e->getMessage()); $emsg = $e->getMessage();
if ((($emsg[0] == '~') AND !$this->cfg['ignore_missing_filter_decoders'])
OR (($emsg[0] != '~') AND !$this->cfg['ignore_filter_decoding_errors'])) {
$this->Error($e->getMessage());
}
} }
} else { } else {
// add missing filter to array // add missing filter to array
@ -741,7 +769,7 @@ class TCPDF_PARSER {
* @since 1.0.000 (2011-05-23) * @since 1.0.000 (2011-05-23)
*/ */
public function Error($msg) { public function Error($msg) {
if (defined('K_TCPDF_PARSER_THROW_EXCEPTION_ERROR') AND !K_TCPDF_PARSER_THROW_EXCEPTION_ERROR) { if ($this->cfg['die_for_errors']) {
die('<strong>TCPDF_PARSER ERROR: </strong>'.$msg); die('<strong>TCPDF_PARSER ERROR: </strong>'.$msg);
} else { } else {
throw new Exception('TCPDF_PARSER ERROR: '.$msg); throw new Exception('TCPDF_PARSER ERROR: '.$msg);