32
1
mirror of https://github.com/vdm-io/tcpdf.git synced 2024-11-25 22:07:33 +00:00
This commit is contained in:
nicolaasuni 2010-03-20 14:26:55 +01:00
parent 30da5c5b38
commit 4d90b09091
17 changed files with 964 additions and 923 deletions

View File

@ -1,3 +1,7 @@
4.8.039 (2010-03-20)
- Problems related to custom locale settings were fixed.
- Problems related to HTML on Header and Footer were fixed.
4.8.038 (2010-03-13)
- Various bugs related to page-break in HTML mode were fixed.
- Bug item #2968974 "Another <thead> pagebreak problem" was fixed.

View File

@ -8,8 +8,8 @@ http://sourceforge.net/donate/index.php?group_id=128076
------------------------------------------------------------
Name: TCPDF
Version: 4.8.038
Release date: 2010-03-13
Version: 4.8.039
Release date: 2010-03-20
Author: Nicola Asuni
Copyright (c) 2001-2010:

View File

@ -45,7 +45,7 @@
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:53 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:41 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

File diff suppressed because it is too large Load Diff

View File

@ -1368,7 +1368,7 @@ $type)</code>
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:53 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:41 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -96,7 +96,7 @@ PHP class to creates array representations for common 1D barcodes to be used wit
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:53 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:41 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -507,7 +507,7 @@ Configuration file for TCPDF.<br /><br /><br /><br />
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:56 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:44 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -88,7 +88,7 @@ Array of WEB safe colors.<br /><br /><br /><br />
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:53 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:41 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -73,7 +73,7 @@ This is a PHP class for generating PDF documents without requiring external exte
<td><b>author:</b>&nbsp;&nbsp;</td><td>Nicola Asuni</td>
</tr>
<tr>
<td><b>version:</b>&nbsp;&nbsp;</td><td>4.8.038</td>
<td><b>version:</b>&nbsp;&nbsp;</td><td>4.8.039</td>
</tr>
<tr>
<td><b>copyright:</b>&nbsp;&nbsp;</td><td>2002-2010 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com</td>
@ -104,7 +104,7 @@ unicode data<br /><br /></div>
<div class="tags">
<table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
<table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
<code>PDF_PRODUCER = 'TCPDF 4.8.038 (http://www.tcpdf.org)'</code>
<code>PDF_PRODUCER = 'TCPDF 4.8.039 (http://www.tcpdf.org)'</code>
</td></tr></table>
</td></tr></table>
@ -115,7 +115,7 @@ unicode data<br /><br /></div>
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:53 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:42 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -237,7 +237,7 @@ Unicode Include file for TCPDF.<br /><br /><br /><br />
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:56 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:44 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -458,7 +458,7 @@
<dt><b>GetNumChars</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodGetNumChars">TCPDF::GetNumChars()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Returns the numbero of characters in a string.</dd>
<dt><b>getNumLines</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetNumLines">TCPDF::getNumLines()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;This method returns the estimated number of lines required to print the text.</dd>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetNumLines">TCPDF::getNumLines()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;This method returns the estimated number of lines required to print the text (not the real number just a quick estimation).</dd>
<dt><b>getNumPages</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetNumPages">TCPDF::getNumPages()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Get the total number of insered pages.</dd>
<dt><b>getObjFilename</b></dt>
@ -1458,7 +1458,7 @@
<a href="elementindex.html#top">top</a><br>
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:53 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:41 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -619,7 +619,7 @@
<dt><b>GetNumChars</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodGetNumChars">TCPDF::GetNumChars()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Returns the numbero of characters in a string.</dd>
<dt><b>getNumLines</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetNumLines">TCPDF::getNumLines()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;This method returns the estimated number of lines required to print the text.</dd>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetNumLines">TCPDF::getNumLines()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;This method returns the estimated number of lines required to print the text (not the real number just a quick estimation).</dd>
<dt><b>getNumPages</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetNumPages">TCPDF::getNumPages()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Get the total number of insered pages.</dd>
<dt><b>getObjFilename</b></dt>
@ -1481,7 +1481,7 @@
<a href="elementindex_com-tecnick-tcpdf.html#top">top</a><br>
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:53 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:41 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -35,7 +35,7 @@
<a href="#Post-parsing">Post-parsing</a><br>
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:56 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:44 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -58,7 +58,7 @@
This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.3</a><br />
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:53 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:41 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -58,7 +58,7 @@
This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.3</a><br />
<div class="credit">
<hr />
Documentation generated on Sat, 13 Mar 2010 20:48:53 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sat, 20 Mar 2010 14:26:41 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -2,8 +2,8 @@
//============================================================+
// File name : makefont.php
// Begin : 2004-12-31
// Last Update : 2010-02-17
// Version : 1.2.005
// Last Update : 2010-03-19
// Version : 1.2.006
// License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
// ----------------------------------------------------------------------------
// Copyright (C) 2008 Nicola Asuni - Tecnick.com S.r.l.
@ -270,7 +270,7 @@ function ReadUFM($file, &$cidtogidmap) {
$cidtogidmap{(($cc * 2) + 1)} = chr($glyph & 0xFF);
}
}
if(($gn == '.notdef') AND (!isset($fm['MissingWidth']))) {
if((isset($gn) AND ($gn == '.notdef')) AND (!isset($fm['MissingWidth']))) {
$fm['MissingWidth'] = $w;
}
} elseif($code == 'FontName') {

View File

@ -2,9 +2,9 @@
//============================================================+
// File name : tcpdf.php
// Begin : 2002-08-03
// Last Update : 2010-03-13
// Last Update : 2010-03-20
// Author : Nicola Asuni - info@tecnick.com - http://www.tcpdf.org
// Version : 4.8.038
// Version : 4.8.039
// License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
// ----------------------------------------------------------------------------
// Copyright (C) 2002-2010 Nicola Asuni - Tecnick.com S.r.l.
@ -128,7 +128,7 @@
* @copyright 2002-2010 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
* @link http://www.tcpdf.org
* @license http://www.gnu.org/copyleft/lesser.html LGPL
* @version 4.8.038
* @version 4.8.039
*/
/**
@ -152,14 +152,14 @@ if (!class_exists('TCPDF', false)) {
/**
* define default PDF document producer
*/
define('PDF_PRODUCER', 'TCPDF 4.8.038 (http://www.tcpdf.org)');
define('PDF_PRODUCER', 'TCPDF 4.8.039 (http://www.tcpdf.org)');
/**
* This is a PHP class for generating PDF documents without requiring external extensions.<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>
* @name TCPDF
* @package com.tecnick.tcpdf
* @version 4.8.038
* @version 4.8.039
* @author Nicola Asuni - info@tecnick.com
* @link http://www.tcpdf.org
* @license http://www.gnu.org/copyleft/lesser.html LGPL
@ -3871,7 +3871,7 @@ if (!class_exists('TCPDF', false)) {
// calculate average space width
$spacewidth = -1000 * ($w - $width - (2 * $this->cMargin)) / ($ns?$ns:1) / $this->FontSize;
// set word position to be used with TJ operator
$txt2 = str_replace(chr(0).' ', ') '.($spacewidth).' (', $txt2);
$txt2 = str_replace(chr(0).' ', ') '.sprintf('%.3F', $spacewidth).' (', $txt2);
} else {
// get string width
$width = $txwidth;
@ -4227,7 +4227,16 @@ if (!class_exists('TCPDF', false)) {
}
/**
* This method returns the estimated number of lines required to print the text.
* This method returns the estimated number of lines required to print the text (not the real number just a quick estimation).
* If you want o know the exact number of lines you have to use the following technique:
* <pre>
* // store current object
* $pdf->startTransaction();
* // get the number of lines for multicell
* $lines = $pdf->MultiCell($w, 0, $txt, 0, 'L', 0, 0, '', '', true, 0, false, true, 0);
* // restore previous object
* $pdf = $pdf->rollbackTransaction();
* </pre>
* @param string $txt text to print
* @param float $w width of cell. If 0, they extend up to the right margin of the page.
* @return int Return the estimated number of lines.
@ -6197,7 +6206,7 @@ if (!class_exists('TCPDF', false)) {
foreach($pl['opt']['mk']['bc'] AS $col) {
$col = intval($col);
$color = $col <= 0 ? 0 : ($col >= 255 ? 1 : $col / 255);
$annots .= ' '.$color;
$annots .= sprintf(' %.2F', $color);
}
$annots .= ']';
}
@ -6206,7 +6215,7 @@ if (!class_exists('TCPDF', false)) {
foreach($pl['opt']['mk']['bg'] AS $col) {
$col = intval($col);
$color = $col <= 0 ? 0 : ($col >= 255 ? 1 : $col / 255);
$annots .= ' '.$color;
$annots .= sprintf(' %.2F', $color);
}
$annots .= ']';
}
@ -6248,7 +6257,7 @@ if (!class_exists('TCPDF', false)) {
$annots .= ' /S /'.$pl['opt']['mk']['if']['s'];
}
if (isset($pl['opt']['mk']['if']['a']) AND (is_array($pl['opt']['mk']['if']['a'])) AND !empty($pl['opt']['mk']['if']['a'])) {
$annots .= ' /A ['.$pl['opt']['mk']['if']['a'][0].' '.$pl['opt']['mk']['if']['a'][1].']';
$annots .= sprintf(' /A [%.2F %.2F]', $pl['opt']['mk']['if']['a'][0], $pl['opt']['mk']['if']['a'][1]);
}
if (isset($pl['opt']['mk']['if']['fb']) AND ($pl['opt']['mk']['if']['fb'])) {
$annots .= ' /FB true';
@ -6256,7 +6265,7 @@ if (!class_exists('TCPDF', false)) {
$annots .= '>>';
}
if (isset($pl['opt']['mk']['tp']) AND ($pl['opt']['mk']['tp'] >= 0) AND ($pl['opt']['mk']['tp'] <= 6)) {
$annots .= ' /TP '.$pl['opt']['mk']['tp'];
$annots .= ' /TP '.intval($pl['opt']['mk']['tp']);
} else {
$annots .= ' /TP 0';
}
@ -6295,26 +6304,35 @@ if (!class_exists('TCPDF', false)) {
$annots .= ' /V';
if (is_array($pl['opt']['v'])) {
foreach ($pl['opt']['v'] AS $optval) {
if (is_float($optval)) {
$optval = sprintf('%.2F', $optval);
}
$annots .= ' '.$optval;
}
} else {
$annots .= ' '.$this->_textstring($pl['opt']['v']);
}
}
if (isset($pl['opt']['dv']) AND is_string($pl['opt']['dv'])) {
if (isset($pl['opt']['dv'])) {
$annots .= ' /DV';
if (is_array($pl['opt']['dv'])) {
foreach ($pl['opt']['dv'] AS $optval) {
if (is_float($optval)) {
$optval = sprintf('%.2F', $optval);
}
$annots .= ' '.$optval;
}
} else {
$annots .= ' '.$this->_textstring($pl['opt']['dv']);
}
}
if (isset($pl['opt']['rv']) AND is_string($pl['opt']['rv'])) {
if (isset($pl['opt']['rv'])) {
$annots .= ' /RV';
if (is_array($pl['opt']['rv'])) {
foreach ($pl['opt']['rv'] AS $optval) {
if (is_float($optval)) {
$optval = sprintf('%.2F', $optval);
}
$annots .= ' '.$optval;
}
} else {
@ -6535,6 +6553,9 @@ if (!class_exists('TCPDF', false)) {
$this->_newobj();
$s = '<</Type /FontDescriptor /FontName /'.$name;
foreach ($font['desc'] as $fdk => $fdv) {
if(is_float($fdv)) {
$fdv = sprintf('%.3F', $fdv);
}
$s .= ' /'.$fdk.' '.$fdv.'';
}
if (!$this->empty_string($font['file'])) {
@ -6698,7 +6719,10 @@ if (!class_exists('TCPDF', false)) {
$this->_out('<</Type /FontDescriptor');
$this->_out('/FontName /'.$font['name']);
foreach ($font['desc'] as $key => $value) {
$this->_out('/'.$key.' '.$value);
if(is_float($value)) {
$value = sprintf('%.3F', $value);
}
$this->_out('/'.$key.' '.$value.'');
}
$fontdir = '';
if (!$this->empty_string($font['file'])) {
@ -6804,6 +6828,9 @@ if (!class_exists('TCPDF', false)) {
$s = '<</Type /FontDescriptor /FontName /'.$name;
foreach ($font['desc'] as $k => $v) {
if ($k != 'Style') {
if(is_float($v)) {
$v = sprintf('%.3F', $v);
}
$s .= ' /'.$k.' '.$v.'';
}
}
@ -11542,6 +11569,9 @@ if (!class_exists('TCPDF', false)) {
$this->extgstates[$i]['n'] = $this->n;
$this->_out('<</Type /ExtGState');
foreach ($this->extgstates[$i]['parms'] as $k => $v) {
if (is_float($v)) {
$v = sprintf('%.2F', $v);
}
$this->_out('/'.$k.' '.$v);
}
$this->_out('>>');
@ -13296,12 +13326,16 @@ if (!class_exists('TCPDF', false)) {
} else {
$pask = 0;
}
if (!$this->InFooter) {
if (isset($this->footerlen[$this->page])) {
$this->footerpos[$this->page] = $this->pagelen[$this->page] - $this->footerlen[$this->page];
} else {
$this->footerpos[$this->page] = $this->pagelen[$this->page];
}
$startlinepos = $this->footerpos[$this->page];
} else {
$startlinepos = $this->pagelen[$this->page];
}
$lalign = $align;
$plalign = $align;
if ($this->rtl) {
@ -13421,8 +13455,7 @@ if (!class_exists('TCPDF', false)) {
$dom[$key]['align'] = ($this->rtl) ? 'R' : 'L';
}
// vertically align image in line
if ((!$this->newline) AND ($dom[$key]['value'] == 'img')
AND (isset($dom[$key]['attribute']['height'])) AND ($dom[$key]['attribute']['height'] > 0)) {
if ((!$this->newline) AND ($dom[$key]['value'] == 'img') AND (isset($dom[$key]['attribute']['height'])) AND ($dom[$key]['attribute']['height'] > 0)) {
// get image height
$imgh = $this->getHTMLUnitToUnits($dom[$key]['attribute']['height'], $this->lasth, 'px');
// check for automatic line break
@ -13782,6 +13815,7 @@ if (!class_exists('TCPDF', false)) {
// justify block
preg_match('/([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]('.$strpiece[1][0].')[\s](re)([\s]*)/x', $pmid, $xmatches);
$currentxpos = $xmatches[1];
global $x_diff, $w_diff;
$x_diff = 0;
$w_diff = 0;
if ($this->isRTLTextDir()) { // RTL
@ -13810,9 +13844,9 @@ if (!class_exists('TCPDF', false)) {
}
}
$pmid = preg_replace_callback('/('.$xmatches[1].')[\s]('.$xmatches[2].')[\s]('.$xmatches[3].')[\s]('.$strpiece[1][0].')[\s](re)([\s]*)/x',
create_function('$matches', '
$newx = sprintf("%.2F",(floatval($matches[1]) + '.$x_diff.'));
$neww = sprintf("%.2F",(floatval($matches[3]) + '.$w_diff.'));
create_function('$matches', 'global $x_diff, $w_diff;
$newx = sprintf("%.2F",(floatval($matches[1]) + $x_diff));
$neww = sprintf("%.2F",(floatval($matches[3]) + $w_diff));
return "".$newx." ".$matches[2]." ".$neww." ".$matches[4]." x*#!#*x".$matches[5].$matches[6];'), $pmid, 1);
break;
}
@ -13900,12 +13934,16 @@ if (!class_exists('TCPDF', false)) {
if (isset($endlinepos) AND (!$pbrk)) {
$startlinepos = $endlinepos;
} else {
if (!$this->InFooter) {
if (isset($this->footerlen[$this->page])) {
$this->footerpos[$this->page] = $this->pagelen[$this->page] - $this->footerlen[$this->page];
} else {
$this->footerpos[$this->page] = $this->pagelen[$this->page];
}
$startlinepos = $this->footerpos[$this->page];
} else {
$startlinepos = $this->pagelen[$this->page];
}
}
unset($endlinepos);
$plalign = $lalign;
@ -14056,13 +14094,7 @@ if (!class_exists('TCPDF', false)) {
}
// add rowspan information to table element
if ($rowspan > 1) {
if (isset($this->footerlen[$this->page])) {
$this->footerpos[$this->page] = $this->pagelen[$this->page] - $this->footerlen[$this->page];
} else {
$this->footerpos[$this->page] = $this->pagelen[$this->page];
}
$trintmrkpos = $this->footerpos[$this->page];
$trsid = array_push($dom[$table_el]['rowspans'], array('trid' => $trid, 'rowspan' => $rowspan, 'mrowspan' => $rowspan, 'colspan' => $colspan, 'startpage' => $this->page, 'startx' => $this->x, 'starty' => $this->y, 'intmrkpos' => $trintmrkpos));
$trsid = array_push($dom[$table_el]['rowspans'], array('trid' => $trid, 'rowspan' => $rowspan, 'mrowspan' => $rowspan, 'colspan' => $colspan, 'startpage' => $this->page, 'startx' => $this->x, 'starty' => $this->y));
}
$cellid = array_push($dom[$trid]['cellpos'], array('startx' => $this->x));
if ($rowspan > 1) {