30
1
mirror of https://github.com/vdm-io/tcpdf.git synced 2024-06-13 19:02:20 +00:00
This commit is contained in:
nicolaasuni 2011-02-11 11:14:34 +01:00
parent 307fd09ad6
commit df894a851f
4 changed files with 129 additions and 95 deletions

View File

@ -1,3 +1,6 @@
5.9.050 (2011-02-11)
- Bug #3177606 "SVG Bar chart error" was fixed.
5.9.049 (2011-02-03)
- Bug #3170777 "TCPDF creates a new page after a single line in writeHTML" was fixed.

View File

@ -8,8 +8,8 @@ http://sourceforge.net/donate/index.php?group_id=128076
------------------------------------------------------------
Name: TCPDF
Version: 5.9.049
Release date: 2011-02-03
Version: 5.9.050
Release date: 2011-02-11
Author: Nicola Asuni
Copyright (c) 2002-2011:

View File

@ -2,7 +2,7 @@
//============================================================+
// File name : makeallttffonts.php
// Begin : 2008-12-07
// Last Update : 2010-12-03
// Last Update : 2011-02-04
//
// Description : Process all TTF files on current directory to
// build TCPDF compatible font files.
@ -40,26 +40,36 @@
//============================================================+
/**
* @file
* Process all TTF files on current directory to build TCPDF compatible font files.
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @copyright Copyright © 2004-2009, Nicola Asuni - Tecnick.com S.r.l. - ITALY - www.tecnick.com - info@tecnick.com
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @link www.tecnick.com
* @since 2008-12-07
*/
// read directory for files (only TTF files).
// read directory for files (only TTF and OTF files).
$handle = opendir('.');
while ($file = readdir($handle)) {
$path_parts = pathinfo($file);
if (isset($path_parts['extension']) AND (strtoupper($path_parts['extension']) === 'TTF')) {
if (isset($path_parts['extension'])) {
$fontfile = $path_parts['basename'];
$filename = $path_parts['filename'];
$extension = strtolower($path_parts['extension']);
if (($extension === 'ttf') OR ($extension === 'otf')) {
if (!file_exists($filename.'.ufm')) {
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
// windows
exec('ttf2ufm.exe -a -F '.$path_parts['basename']);
passthru('ttf2ufm.exe -a -F '.$fontfile);
} else {
// linux
exec('./ttf2ufm -a -F '.$path_parts['basename']);
passthru('./ttf2ufm -a -F '.$fontfile);
}
}
$cmd = 'php -q makefont.php '.$fontfile.' '.$filename.'.ufm'; // unicode file
passthru($cmd);
}
exec('php -q makefont.php '.$path_parts['basename'].' '.$path_parts['filename'].'.ufm');
}
}
closedir($handle);

View File

@ -1,9 +1,9 @@
<?php
//============================================================+
// File name : tcpdf.php
// Version : 5.9.049
// Version : 5.9.050
// Begin : 2002-08-03
// Last Update : 2011-02-03
// Last Update : 2011-02-11
// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
// License : http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT GNU-LGPLv3 + YOU CAN'T REMOVE ANY TCPDF COPYRIGHT NOTICE OR LINK FROM THE GENERATED PDF DOCUMENTS.
// -------------------------------------------------------------------
@ -134,7 +134,7 @@
* Tools to encode your unicode fonts are on fonts/utils directory.</p>
* @package com.tecnick.tcpdf
* @author Nicola Asuni
* @version 5.9.049
* @version 5.9.050
*/
// Main configuration file. Define the K_TCPDF_EXTERNAL_CONFIG constant to skip this file.
@ -146,7 +146,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.<br>
* @package com.tecnick.tcpdf
* @brief PHP class for generating PDF documents without requiring external extensions.
* @version 5.9.049
* @version 5.9.050
* @author Nicola Asuni - info@tecnick.com
*/
class TCPDF {
@ -157,7 +157,7 @@ class TCPDF {
* Current TCPDF version.
* @private
*/
private $tcpdf_version = '5.9.049';
private $tcpdf_version = '5.9.050';
// Protected properties
@ -9215,8 +9215,9 @@ class TCPDF {
/**
* Returns a subset of the TrueType font data without the unused glyphs.
* @param $font (string) TrueType font data
* @param $subsetchars (array) array of used characters (the glyphs to keep)
* @param $font (string) TrueType font data.
* @param $subsetchars (array) Array of used characters (the glyphs to keep).
* @param $cmap (boolean) If true add a CMAP table on font description.
* @return string a subset of TrueType font data without the unused glyphs
* @author Nicola Asuni
* @protected
@ -9468,7 +9469,7 @@ class TCPDF {
}
}
// array of table names to preserve (loca and glyf tables will be added later)
//$table_names = array ('cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'OS/2', 'post', 'cvt ', 'fpgm', 'prep');
// additional maps includes: 'cmap', 'head', 'name', 'OS/2', 'post';
// the cmap table is not needed and shall not be present, since the mapping from character codes to glyph descriptions is provided separately
$table_names = array ('head', 'hhea', 'hmtx', 'maxp', 'cvt ', 'fpgm', 'prep'); // minimum required table names
// get the tables to preserve
@ -25012,6 +25013,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
*/
protected function setSVGStyles($svgstyle, $prevsvgstyle, $x=0, $y=0, $w=1, $h=1, $clip_function='', $clip_params=array()) {
$objstyle = '';
$minlen = (0.01 / $this->k); // minimum acceptable lenght (3 point)
if(!isset($svgstyle['opacity'])) {
return $objstyle;
}
@ -25107,11 +25109,11 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
$gradient['coords'][2] += $x;
$gradient['coords'][3] += $y;
}
if ($w <= 0) {
$w = 1;
if ($w <= $minlen) {
$w = $minlen;
}
if ($h <= 0) {
$h = 1;
if ($h <= $minlen) {
$h = $minlen;
}
// calculate percentages
$gradient['coords'][0] = ($gradient['coords'][0] - $x) / $w;
@ -25310,6 +25312,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
$ymin = 2147483647;
$ymax = 0;
$relcoord = false;
$minlen = (0.01 / $this->k); // minimum acceptable lenght (3 point)
// draw curve pieces
foreach ($paths as $key => $val) {
// get curve type
@ -25331,8 +25334,15 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
$params = array();
foreach ($rawparams as $ck => $cp) {
$params[$ck] = $this->getHTMLUnitToUnits($cp, 0, $this->svgunit, false);
if (abs($params[$ck]) < $minlen) {
// aproximate little values to zero
$params[$ck] = 0;
}
}
}
// store current origin point
$x0 = $x;
$y0 = $y;
switch (strtoupper($cmd)) {
case 'M': { // moveto
foreach ($params as $ck => $cp) {
@ -25340,11 +25350,13 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
$x = $cp + $xoffset;
} else {
$y = $cp + $yoffset;
if ((abs($x0 - $x) >= $minlen) OR (abs($y0 - $y) >= $minlen)) {
if ($ck == 1) {
$this->_outPoint($x, $y);
} else {
$this->_outLine($x, $y);
}
}
$xmin = min($xmin, $x);
$ymin = min($ymin, $y);
$xmax = max($xmax, $x);
@ -25363,7 +25375,9 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
$x = $cp + $xoffset;
} else {
$y = $cp + $yoffset;
if ((abs($x0 - $x) >= $minlen) OR (abs($y0 - $y) >= $minlen)) {
$this->_outLine($x, $y);
}
$xmin = min($xmin, $x);
$ymin = min($ymin, $y);
$xmax = max($xmax, $x);
@ -25379,7 +25393,9 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
case 'H': { // horizontal lineto
foreach ($params as $ck => $cp) {
$x = $cp + $xoffset;
if ((abs($x0 - $x) >= $minlen) OR (abs($y0 - $y) >= $minlen)) {
$this->_outLine($x, $y);
}
$xmin = min($xmin, $x);
$xmax = max($xmax, $x);
if ($relcoord) {
@ -25391,7 +25407,9 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
case 'V': { // vertical lineto
foreach ($params as $ck => $cp) {
$y = $cp + $yoffset;
if ((abs($x0 - $x) >= $minlen) OR (abs($y0 - $y) >= $minlen)) {
$this->_outLine($x, $y);
}
$ymin = min($ymin, $y);
$ymax = max($ymax, $y);
if ($relcoord) {
@ -25522,11 +25540,13 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
$fs = $rawparams[($ck - 2)]; // sweep-flag
$x = $params[($ck - 1)] + $xoffset;
$y = $params[$ck] + $yoffset;
$minlen = (0.01 / $this->k); // 3 point
if ((abs($x0 - $x) < $minlen) AND (abs($x0 - $x) < $minlen)) {
if ((abs($x0 - $x) < $minlen) AND (abs($y0 - $y) < $minlen)) {
// endpoints are almost identical
break;
}
$xmin = min($xmin, $x);
$ymin = min($ymin, $y);
$xmax = max($xmax, $x);
$ymax = max($ymax, $y);
} else {
$cos_ang = cos($angle);
$sin_ang = sin($angle);
$a = (($x0 - $x) / 2);
@ -25589,6 +25609,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
$ymin = min($ymin, $y, $aymin);
$xmax = max($xmax, $x, $axmax);
$ymax = max($ymax, $y, $aymax);
}
if ($relcoord) {
$xoffset = $x;
$yoffset = $y;