From 14e93b77c56f3161db1341f20e6eb6e731dd21b0 Mon Sep 17 00:00:00 2001 From: nick Date: Mon, 25 Jun 2012 17:54:29 +0100 Subject: [PATCH] 5.9.169 (2012-06-25) - Some SVG rendering problems were fixed. --- CHANGELOG.TXT | 3 +++ README.TXT | 4 ++-- tcpdf.php | 39 ++++++++++++++++++++++++--------------- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT index 202cad5..98ca3ae 100755 --- a/CHANGELOG.TXT +++ b/CHANGELOG.TXT @@ -1,3 +1,6 @@ +5.9.169 (2012-06-25) + - Some SVG rendering problems were fixed. + 5.9.168 (2012-06-22) - Thai language rendering was fixed. diff --git a/README.TXT b/README.TXT index 5b953d1..1d4fb63 100755 --- a/README.TXT +++ b/README.TXT @@ -8,8 +8,8 @@ http://sourceforge.net/donate/index.php?group_id=128076 ------------------------------------------------------------ Name: TCPDF -Version: 5.9.168 -Release date: 2012-06-22 +Version: 5.9.169 +Release date: 2012-06-25 Author: Nicola Asuni Copyright (c) 2002-2012: diff --git a/tcpdf.php b/tcpdf.php index d5eaa0b..dc03587 100755 --- a/tcpdf.php +++ b/tcpdf.php @@ -1,9 +1,9 @@ * @package com.tecnick.tcpdf * @author Nicola Asuni - * @version 5.9.168 + * @version 5.9.169 */ // Main configuration file. Define the K_TCPDF_EXTERNAL_CONFIG constant to skip this file. @@ -149,7 +149,7 @@ require_once(dirname(__FILE__).'/config/tcpdf_config.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.
* @package com.tecnick.tcpdf * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 5.9.168 + * @version 5.9.169 * @author Nicola Asuni - info@tecnick.com */ class TCPDF { @@ -160,7 +160,7 @@ class TCPDF { * Current TCPDF version. * @private */ - private $tcpdf_version = '5.9.168'; + private $tcpdf_version = '5.9.169'; // Protected properties @@ -28817,6 +28817,10 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: // get styling properties $prev_svgstyle = $this->svgstyles[(count($this->svgstyles) - 1)]; // previous style $svgstyle = $this->svgstyles[0]; // set default style + if (($name == 'polyline') AND !isset($attribs['fill']) AND (!isset($attribs['style']) OR (!preg_match('/[;\"\s]{1}fill[\s]*:[\s]*([^;\"]*)/si', $attribs['style'], $attrval)))) { + // default fill attribute for polyline + $attribs['fill'] = 'none'; + } if (isset($attribs['style']) AND !$this->empty_string($attribs['style'])) { // fix style for regular expression $attribs['style'] = ';'.$attribs['style']; @@ -29145,7 +29149,9 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: $this->StartTransform(); $this->SVGTransform($tm); $obstyle = $this->setSVGStyles($svgstyle, $prev_svgstyle, $x, $y, $w, $h, 'PolyLine', array($p, 'CNZ')); - $this->PolyLine($p, 'D', array(), array()); + if (!empty($obstyle)) { + $this->PolyLine($p, $obstyle, array(), array()); + } $this->StopTransform(); } else { // polygon if ($clipping) { @@ -29264,16 +29270,19 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: } // use case 'use': { - if (isset($attribs['xlink:href'])) { - $use = $this->svgdefs[substr($attribs['xlink:href'], 1)]; - if (isset($attribs['xlink:href'])) { - unset($attribs['xlink:href']); + if (isset($attribs['xlink:href']) AND !empty($attribs['xlink:href'])) { + $svgdefid = substr($attribs['xlink:href'], 1); + if (isset($this->svgdefs[$svgdefid])) { + $use = $this->svgdefs[$svgdefid]; + if (isset($attribs['xlink:href'])) { + unset($attribs['xlink:href']); + } + if (isset($attribs['id'])) { + unset($attribs['id']); + } + $attribs = array_merge($attribs, $use['attribs']); + $this->startSVGElementHandler($parser, $use['name'], $attribs); } - if (isset($attribs['id'])) { - unset($attribs['id']); - } - $attribs = array_merge($attribs, $use['attribs']); - $this->startSVGElementHandler($parser, $use['name'], $attribs); } break; }