X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=reporting%2Fincludes%2Ftcpdf.php;h=139dea600bfc788c01f7d14f9fa65c7aec02a739;hb=d25e06f889d2c81871fcb6edb42e53e2ea316601;hp=35e69ddae362025a9eb374c063b3f493d68474c9;hpb=60e2b6dfc0b71af9fae2712058bdfaeacf2a9fee;p=fa-stable.git diff --git a/reporting/includes/tcpdf.php b/reporting/includes/tcpdf.php index 35e69dda..139dea60 100644 --- a/reporting/includes/tcpdf.php +++ b/reporting/includes/tcpdf.php @@ -141,12 +141,15 @@ * and * if (!defined("K_RE_PATTERN_ARABIC")) * 4. Parameter $unicode in constructor renamed to $uni. - * 4. Header function renamed to Header1 (due to conflict with FrontReport Header) + * 5. Header function renamed to Header1 (due to conflict with FrontReport Header) + * 6. Line 6190, SetLineWidth (cast of values to avoid problem in PHP 5.2.6 + * 7. Line 6261. ereg replaced by preg_match (with start and end delimiter) + * 8. Lines 8642,9256 and 9348. split replaced by preg_split. * ------------------------------------------------------------------------------- */ if (!defined("K_PATH_FONTS")) - define ("K_PATH_FONTS", '../reporting/fonts/'); -define ("K_PATH_CACHE", '../reporting/fonts/'); + define ("K_PATH_FONTS", dirname(__FILE__)."/../fonts/"); +define ("K_PATH_CACHE", dirname(__FILE__)."/../fonts/"); define("K_CELL_HEIGHT_RATIO", 1.25); //require_once(dirname(__FILE__).'/config/tcpdf_config.php'); @@ -1109,7 +1112,7 @@ if (!class_exists('TCPDF')) { * @param boolean $unicode TRUE means that the input text is unicode (default = true) * @param String $encoding charset encoding; default is UTF-8 */ - function TCPDF($orientation='P', $unit='mm', $format='A4', $uni=true, $encoding="UTF-8") { + function __construct($orientation='P', $unit='mm', $format='A4', $uni=true, $encoding="UTF-8") { if ($uni) // Fix for FrontAccounting { global $unicode, $unicode_mirror, $unicode_arlet, $laa_array, $diacritics; @@ -1756,7 +1759,8 @@ if (!class_exists('TCPDF')) { */ function Error($msg) { //Fatal error - die('TCPDF error: '.$msg); + display_error('TCPDF error: '.$msg); + exit; } /** @@ -2602,9 +2606,9 @@ if (!class_exists('TCPDF')) { if (isset($cw)) { unset($cw); } - include($this->_getfontpath().$file); + @include($this->_getfontpath().$file); if ((!isset($type)) OR (!isset($cw))) { - $this->Error('Could not include font definition file'); + $this->Error("Could not include font definition file: ".$file); } $i = count($this->fonts) + 1; // register CID font (all styles at once) @@ -3593,8 +3597,8 @@ if (!class_exists('TCPDF')) { if ($type == "jpg") { $type = "jpeg"; } - $mqr = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); + $mqr = ini_get('magic_quotes_runtime'); + ini_set('magic_quotes_runtime', 0); // Specific image handlers $mtd = '_parse'.$type; // GD image handler function @@ -3621,7 +3625,7 @@ if (!class_exists('TCPDF')) { //If false, we cannot process image return; } - set_magic_quotes_runtime($mqr); + ini_set('magic_quotes_runtime', $mqr); $info['i'] = count($this->images) + 1; // add image to document $this->images[$file] = $info; @@ -4501,8 +4505,8 @@ if (!class_exists('TCPDF')) { $this->_out('<>'); $this->_out('endobj'); } - $mqr = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); + $mqr = ini_get('magic_quotes_runtime'); + ini_set('magic_quotes_runtime', 0); foreach($this->FontFiles as $file => $info) { //Font file embedding $this->_newobj(); @@ -4532,7 +4536,7 @@ if (!class_exists('TCPDF')) { $this->_putstream($font); $this->_out('endobj'); } - set_magic_quotes_runtime($mqr); + ini_set('magic_quotes_runtime', $mqr); foreach($this->fonts as $k => $font) { //Font objects $this->fonts[$k]['n'] = $this->n + 1; @@ -5005,7 +5009,8 @@ if (!class_exists('TCPDF')) { * @access protected */ function _putheader() { - $this->_out('%PDF-'.$this->PDFVersion); + $this->buffer = '%PDF-'.$this->PDFVersion."\n".$this->buffer; +// $this->_out('%PDF-'.$this->PDFVersion); } /** @@ -5727,7 +5732,7 @@ if (!class_exists('TCPDF')) { */ function unhtmlentities($text_to_convert) { if (!$this->isunicode) { - return html_entity_decode($text_to_convert); + return html_entity_decode($text_to_convert, ENT_QUOTES); } return html_entity_decode_php4($text_to_convert); } @@ -6188,7 +6193,15 @@ if (!class_exists('TCPDF')) { function SetLineWidth($width) { //Set line width $this->LineWidth = $width; - $this->linestyleWidth = sprintf('%.2f w', ($width * $this->k)); + //$this->linestyleWidth = sprintf('%.2f w', ($width * $this->k)); + // FrontAccounting fix + // My PHP 5.2.6 environment gave an "Unsupported operand types" + // error for the multiplication on the next line some of the + // time when this method is called - I debugged and sometimes + // the $width parameter is some sort of weird array. I don't + // understand what's going on, but casting it to a (float) seems + // to "fix" the problem. -Jason Maas, 2009/09/25 + $this->linestyleWidth = sprintf('%.2f w', ((float) $width * (float) $this->k)); $this->_out($this->linestyleWidth); } @@ -6247,7 +6260,7 @@ if (!class_exists('TCPDF')) { if (isset($dash)) { $dash_string = ""; if ($dash) { - if (ereg("^.+,", $dash)) { + if (preg_match("/^.+,/", $dash)) { $tab = explode(",", $dash); } else { $tab = array($dash); @@ -8627,7 +8640,7 @@ if (!class_exists('TCPDF')) { $this->_out(sprintf('%.3F %.3F %.3F %.3F %.3F %.3F cm', $scale_x, 0, 0, $scale_y, $x1*(1-$scale_x), $y2*(1-$scale_y))); } // handle pc/unix/mac line endings - $lines = split("\r\n|[\r\n]", $data); + $lines = preg_split("/\r\n|[\r\n]/", $data); $u=0; $cnt = count($lines); for ($i=0; $i < $cnt; $i++) { @@ -9241,7 +9254,7 @@ if (!class_exists('TCPDF')) { if (isset($dom[$key]['style']['font-family'])) { // font family if (isset($dom[$key]['style']['font-family'])) { - $fontslist = split(",", strtolower($dom[$key]['style']['font-family'])); + $fontslist = preg_split("/,/", strtolower($dom[$key]['style']['font-family'])); foreach($fontslist as $font) { $font = trim(strtolower($font)); if (in_array($font, $this->fontlist)){ @@ -9333,7 +9346,7 @@ if (!class_exists('TCPDF')) { if ($dom[$key]['value'] == "font") { // font family if (isset($dom[$key]['attribute']['face'])) { - $fontslist = split(",", strtolower($dom[$key]['attribute']['face'])); + $fontslist = preg_split("/,/", strtolower($dom[$key]['attribute']['face'])); foreach($fontslist as $font) { $font = trim(strtolower($font)); if (in_array($font, $this->fontlist)){ @@ -10417,4 +10430,3 @@ if (!class_exists('TCPDF')) { //============================================================+ // END OF FILE //============================================================+ -?>