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 2009-09-23 19:10:28 +02:00
parent fc98ce157e
commit 6a3fdfa636
16 changed files with 525 additions and 348 deletions

View File

@ -1,3 +1,9 @@
4.8.006 (2009-09-23)
- Bug item #2864522 "No images if DOCUMENT_ROOT=='/'" was fixed.
- Support for text-indent CSS attribute was added.
- Method rollbackTransaction() was changed to support self-reassigment of previous object (check source code documentation).
- Support for the HTML "nobr" attribute was added to avoid splitting a table or a table row on two pages (i.e.: <tr nobr="true">...</tr>).
4.8.005 (2009-09-17) 4.8.005 (2009-09-17)
- A bug relative to multiple transformations and annotations was fixed. - A bug relative to multiple transformations and annotations was fixed.

View File

@ -8,8 +8,8 @@ http://sourceforge.net/donate/index.php?group_id=128076
------------------------------------------------------------ ------------------------------------------------------------
Name: TCPDF Name: TCPDF
Version: 4.8.005 Version: 4.8.006
Release date: 2009-09-17 Release date: 2009-09-23
Author: Nicola Asuni Author: Nicola Asuni
Copyright (c) 2001-2009: Copyright (c) 2001-2009:

View File

@ -45,7 +45,7 @@
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:29 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

File diff suppressed because it is too large Load Diff

View File

@ -1368,7 +1368,7 @@ $type)</code>
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:29 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

View File

@ -96,7 +96,7 @@ PHP class to creates array representations for common 1D barcodes to be used wit
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:29 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

View File

@ -507,7 +507,7 @@ Configuration file for TCPDF.<br /><br /><br /><br />
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:36 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:20 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

View File

@ -88,7 +88,7 @@ Array of WEB safe colors.<br /><br /><br /><br />
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:29 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </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> <td><b>author:</b>&nbsp;&nbsp;</td><td>Nicola Asuni</td>
</tr> </tr>
<tr> <tr>
<td><b>version:</b>&nbsp;&nbsp;</td><td>4.8.005</td> <td><b>version:</b>&nbsp;&nbsp;</td><td>4.8.006</td>
</tr> </tr>
<tr> <tr>
<td><b>copyright:</b>&nbsp;&nbsp;</td><td>2002-2009 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> <td><b>copyright:</b>&nbsp;&nbsp;</td><td>2002-2009 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"> <div class="tags">
<table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border"> <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"> <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
<code>PDF_PRODUCER = 'TCPDF 4.8.005 (http://www.tcpdf.org)'</code> <code>PDF_PRODUCER = 'TCPDF 4.8.006 (http://www.tcpdf.org)'</code>
</td></tr></table> </td></tr></table>
</td></tr></table> </td></tr></table>
@ -115,7 +115,7 @@ unicode data<br /><br /></div>
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:30 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:15 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

View File

@ -237,7 +237,7 @@ Unicode Include file for TCPDF.<br /><br /><br /><br />
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:36 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:20 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

View File

@ -943,6 +943,8 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$sig_obj_id">TCPDF::$sig_obj_id</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Signature object ID</dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$sig_obj_id">TCPDF::$sig_obj_id</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Signature object ID</dd>
<dt><b>$spot_colors</b></dt> <dt><b>$spot_colors</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$spot_colors">TCPDF::$spot_colors</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Array of Spot colors</dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$spot_colors">TCPDF::$spot_colors</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Array of Spot colors</dd>
<dt><b>$start_transaction_page</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$start_transaction_page">TCPDF::$start_transaction_page</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Store page number when startTransaction() is called.</dd>
<dt><b>$state</b></dt> <dt><b>$state</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$state">TCPDF::$state</a></dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$state">TCPDF::$state</a></dd>
<dt><b>$subject</b></dt> <dt><b>$subject</b></dt>
@ -962,9 +964,9 @@
<dt><b>SetAutoPageBreak</b></dt> <dt><b>SetAutoPageBreak</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetAutoPageBreak">TCPDF::SetAutoPageBreak()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables or disables the automatic page breaking mode. When enabling, the second parameter is the distance from the bottom of the page that defines the triggering limit. By default, the mode is on and the margin is 2 cm.</dd> <dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetAutoPageBreak">TCPDF::SetAutoPageBreak()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables or disables the automatic page breaking mode. When enabling, the second parameter is the distance from the bottom of the page that defines the triggering limit. By default, the mode is on and the margin is 2 cm.</dd>
<dt><b>setBarcode</b></dt> <dt><b>setBarcode</b></dt>
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodsetBarcode">TCPDFBarcode::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the barcode.</dd>
<dt><b>setBarcode</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetBarcode">TCPDF::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set document barcode.</dd> <dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetBarcode">TCPDF::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set document barcode.</dd>
<dt><b>setBarcode</b></dt>
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodsetBarcode">TCPDFBarcode::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the barcode.</dd>
<dt><b>SetBooklet</b></dt> <dt><b>SetBooklet</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetBooklet">TCPDF::SetBooklet()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the booklet mode for double-sided pages.</dd> <dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetBooklet">TCPDF::SetBooklet()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the booklet mode for double-sided pages.</dd>
<dt><b>setBuffer</b></dt> <dt><b>setBuffer</b></dt>
@ -1151,6 +1153,8 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$tempfontsize">TCPDF::$tempfontsize</a></dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$tempfontsize">TCPDF::$tempfontsize</a></dd>
<dt><b>$TextColor</b></dt> <dt><b>$TextColor</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$TextColor">TCPDF::$TextColor</a></dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$TextColor">TCPDF::$TextColor</a></dd>
<dt><b>$textindent</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$textindent">TCPDF::$textindent</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Text indentation value (used for text-indent CSS attribute)</dd>
<dt><b>$thead</b></dt> <dt><b>$thead</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$thead">TCPDF::$thead</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Table header content to be repeated on each new page</dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$thead">TCPDF::$thead</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Table header content to be repeated on each new page</dd>
<dt><b>$theadMargins</b></dt> <dt><b>$theadMargins</b></dt>
@ -1436,7 +1440,7 @@
<a href="elementindex.html#top">top</a><br> <a href="elementindex.html#top">top</a><br>
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:29 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

View File

@ -1098,6 +1098,8 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$sig_obj_id">TCPDF::$sig_obj_id</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Signature object ID</dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$sig_obj_id">TCPDF::$sig_obj_id</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Signature object ID</dd>
<dt><b>$spot_colors</b></dt> <dt><b>$spot_colors</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$spot_colors">TCPDF::$spot_colors</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Array of Spot colors</dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$spot_colors">TCPDF::$spot_colors</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Array of Spot colors</dd>
<dt><b>$start_transaction_page</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$start_transaction_page">TCPDF::$start_transaction_page</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Store page number when startTransaction() is called.</dd>
<dt><b>$state</b></dt> <dt><b>$state</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$state">TCPDF::$state</a></dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$state">TCPDF::$state</a></dd>
<dt><b>$subject</b></dt> <dt><b>$subject</b></dt>
@ -1117,9 +1119,9 @@
<dt><b>SetAutoPageBreak</b></dt> <dt><b>SetAutoPageBreak</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetAutoPageBreak">TCPDF::SetAutoPageBreak()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables or disables the automatic page breaking mode. When enabling, the second parameter is the distance from the bottom of the page that defines the triggering limit. By default, the mode is on and the margin is 2 cm.</dd> <dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetAutoPageBreak">TCPDF::SetAutoPageBreak()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Enables or disables the automatic page breaking mode. When enabling, the second parameter is the distance from the bottom of the page that defines the triggering limit. By default, the mode is on and the margin is 2 cm.</dd>
<dt><b>setBarcode</b></dt> <dt><b>setBarcode</b></dt>
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodsetBarcode">TCPDFBarcode::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the barcode.</dd>
<dt><b>setBarcode</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetBarcode">TCPDF::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set document barcode.</dd> <dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetBarcode">TCPDF::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set document barcode.</dd>
<dt><b>setBarcode</b></dt>
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodsetBarcode">TCPDFBarcode::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the barcode.</dd>
<dt><b>SetBooklet</b></dt> <dt><b>SetBooklet</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetBooklet">TCPDF::SetBooklet()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the booklet mode for double-sided pages.</dd> <dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetBooklet">TCPDF::SetBooklet()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the booklet mode for double-sided pages.</dd>
<dt><b>setBuffer</b></dt> <dt><b>setBuffer</b></dt>
@ -1306,6 +1308,8 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$tempfontsize">TCPDF::$tempfontsize</a></dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$tempfontsize">TCPDF::$tempfontsize</a></dd>
<dt><b>$TextColor</b></dt> <dt><b>$TextColor</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$TextColor">TCPDF::$TextColor</a></dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$TextColor">TCPDF::$TextColor</a></dd>
<dt><b>$textindent</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$textindent">TCPDF::$textindent</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Text indentation value (used for text-indent CSS attribute)</dd>
<dt><b>$thead</b></dt> <dt><b>$thead</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$thead">TCPDF::$thead</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Table header content to be repeated on each new page</dd> <dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$thead">TCPDF::$thead</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Table header content to be repeated on each new page</dd>
<dt><b>$theadMargins</b></dt> <dt><b>$theadMargins</b></dt>
@ -1459,7 +1463,7 @@
<a href="elementindex_com-tecnick-tcpdf.html#top">top</a><br> <a href="elementindex_com-tecnick-tcpdf.html#top">top</a><br>
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:28 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

View File

@ -35,7 +35,7 @@
<a href="#Post-parsing">Post-parsing</a><br> <a href="#Post-parsing">Post-parsing</a><br>
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:36 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:20 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

View File

@ -58,7 +58,7 @@
This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.1</a><br /> This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.1</a><br />
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:29 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

View File

@ -58,7 +58,7 @@
This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.1</a><br /> This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.1</a><br />
<div class="credit"> <div class="credit">
<hr /> <hr />
Documentation generated on Thu, 17 Sep 2009 22:37:29 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a> Documentation generated on Wed, 23 Sep 2009 19:10:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
</div> </div>
</td></tr></table> </td></tr></table>
</td> </td>

118
tcpdf.php
View File

@ -2,9 +2,9 @@
//============================================================+ //============================================================+
// File name : tcpdf.php // File name : tcpdf.php
// Begin : 2002-08-03 // Begin : 2002-08-03
// Last Update : 2009-09-17 // Last Update : 2009-09-23
// Author : Nicola Asuni - info@tecnick.com - http://www.tcpdf.org // Author : Nicola Asuni - info@tecnick.com - http://www.tcpdf.org
// Version : 4.8.005 // Version : 4.8.006
// License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html) // License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Copyright (C) 2002-2009 Nicola Asuni - Tecnick.com S.r.l. // Copyright (C) 2002-2009 Nicola Asuni - Tecnick.com S.r.l.
@ -128,7 +128,7 @@
* @copyright 2002-2009 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com * @copyright 2002-2009 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 * @link http://www.tcpdf.org
* @license http://www.gnu.org/copyleft/lesser.html LGPL * @license http://www.gnu.org/copyleft/lesser.html LGPL
* @version 4.8.005 * @version 4.8.006
*/ */
/** /**
@ -152,14 +152,14 @@ if (!class_exists('TCPDF', false)) {
/** /**
* define default PDF document producer * define default PDF document producer
*/ */
define('PDF_PRODUCER', 'TCPDF 4.8.005 (http://www.tcpdf.org)'); define('PDF_PRODUCER', 'TCPDF 4.8.006 (http://www.tcpdf.org)');
/** /**
* This is a PHP class for generating PDF documents without requiring external extensions.<br> * 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> * 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 * @name TCPDF
* @package com.tecnick.tcpdf * @package com.tecnick.tcpdf
* @version 4.8.005 * @version 4.8.006
* @author Nicola Asuni - info@tecnick.com * @author Nicola Asuni - info@tecnick.com
* @link http://www.tcpdf.org * @link http://www.tcpdf.org
* @license http://www.gnu.org/copyleft/lesser.html LGPL * @license http://www.gnu.org/copyleft/lesser.html LGPL
@ -1465,6 +1465,20 @@ if (!class_exists('TCPDF', false)) {
*/ */
protected $radio_groups = array(); protected $radio_groups = array();
/**
* Text indentation value (used for text-indent CSS attribute)
* @access protected
* @since 4.8.006 (2009-09-23)
*/
protected $textindent = 0;
/**
* Store page number when startTransaction() is called.
* @access protected
* @since 4.8.006 (2009-09-23)
*/
protected $start_transaction_page = 0;
//------------------------------------------------------------ //------------------------------------------------------------
// METHODS // METHODS
//------------------------------------------------------------ //------------------------------------------------------------
@ -12600,6 +12614,7 @@ if (!class_exists('TCPDF', false)) {
$dom[$key]['fgcolor'] = $this->fgcolor; $dom[$key]['fgcolor'] = $this->fgcolor;
$dom[$key]['align'] = ''; $dom[$key]['align'] = '';
$dom[$key]['listtype'] = ''; $dom[$key]['listtype'] = '';
$dom[$key]['text-indent'] = 0;
$thead = false; // true when we are inside the THEAD tag $thead = false; // true when we are inside the THEAD tag
++$key; ++$key;
$level = array(); $level = array();
@ -12652,7 +12667,7 @@ if (!class_exists('TCPDF', false)) {
$key = $i; $key = $i;
} }
// store header rows on a new table // store header rows on a new table
if (($dom[$key]['value'] == 'tr') AND ($dom[($dom[$key]['parent'])]['thead'] == true)) { if (($dom[$key]['value'] == 'tr') AND ($dom[($dom[$key]['parent'])]['thead'] === true)) {
if ($this->empty_string($dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'])) { if ($this->empty_string($dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'])) {
$dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'] = $a[$dom[($dom[($dom[$key]['parent'])]['parent'])]['elkey']]; $dom[($dom[($dom[$key]['parent'])]['parent'])]['thead'] = $a[$dom[($dom[($dom[$key]['parent'])]['parent'])]['elkey']];
} }
@ -12685,6 +12700,7 @@ if (!class_exists('TCPDF', false)) {
$dom[$key]['fgcolor'] = $dom[$parentkey]['fgcolor']; $dom[$key]['fgcolor'] = $dom[$parentkey]['fgcolor'];
$dom[$key]['align'] = $dom[$parentkey]['align']; $dom[$key]['align'] = $dom[$parentkey]['align'];
$dom[$key]['listtype'] = $dom[$parentkey]['listtype']; $dom[$key]['listtype'] = $dom[$parentkey]['listtype'];
$dom[$key]['text-indent'] = $dom[$parentkey]['text-indent'];
} }
// get attributes // get attributes
preg_match_all('/([^=\s]*)=["]?([^"]*)["]?/', $element, $attr_array, PREG_PATTERN_ORDER); preg_match_all('/([^=\s]*)=["]?([^"]*)["]?/', $element, $attr_array, PREG_PATTERN_ORDER);
@ -12721,6 +12737,13 @@ if (!class_exists('TCPDF', false)) {
$dom[$key]['listtype'] = $dom[$parentkey]['listtype']; $dom[$key]['listtype'] = $dom[$parentkey]['listtype'];
} }
} }
// text-indent
if (isset($dom[$key]['style']['text-indent'])) {
$dom[$key]['text-indent'] = $this->getHTMLUnitToUnits($dom[$key]['style']['text-indent']);
if ($dom[$key]['text-indent'] == 'inherit') {
$dom[$key]['text-indent'] = $dom[$parentkey]['text-indent'];
}
}
// font size // font size
if (isset($dom[$key]['style']['font-size'])) { if (isset($dom[$key]['style']['font-size'])) {
$fsize = trim($dom[$key]['style']['font-size']); $fsize = trim($dom[$key]['style']['font-size']);
@ -12955,12 +12978,15 @@ if (!class_exists('TCPDF', false)) {
$curfontstyle = $this->FontStyle; $curfontstyle = $this->FontStyle;
$curfontsize = $this->FontSizePt; $curfontsize = $this->FontSizePt;
$this->newline = true; $this->newline = true;
$minstartliney = $this->y;
$yshift = 0;
$startlinepage = $this->page; $startlinepage = $this->page;
$minstartliney = $this->y;
$startlinex = $this->x;
$startliney = $this->y;
$yshift = 0;
$newline = true; $newline = true;
$loop = 0; $loop = 0;
$curpos = 0; $curpos = 0;
$this_method_vars = array();
$blocktags = array('blockquote','br','dd','div','dt','h1','h2','h3','h4','h5','h6','hr','li','ol','p','ul','tcpdf'); $blocktags = array('blockquote','br','dd','div','dt','h1','h2','h3','h4','h5','h6','hr','li','ol','p','ul','tcpdf');
$this->premode = false; $this->premode = false;
if (isset($this->PageAnnots[$this->page])) { if (isset($this->PageAnnots[$this->page])) {
@ -12994,7 +13020,7 @@ if (!class_exists('TCPDF', false)) {
} else { } else {
$this->listindent = $this->GetStringWidth('0000'); $this->listindent = $this->GetStringWidth('0000');
} }
// save previous list state // save previous states
$prev_listnum = $this->listnum; $prev_listnum = $this->listnum;
$prev_listordered = $this->listordered; $prev_listordered = $this->listordered;
$prev_listcount = $this->listcount; $prev_listcount = $this->listcount;
@ -13011,6 +13037,47 @@ if (!class_exists('TCPDF', false)) {
$maxel = count($dom); $maxel = count($dom);
$key = 0; $key = 0;
while ($key < $maxel) { while ($key < $maxel) {
if ($dom[$key]['tag'] AND $dom[$key]['opening'] AND isset($dom[$key]['attribute']['nobr']) AND ($dom[$key]['attribute']['nobr'] == 'true')) {
if (isset($dom[($dom[$key]['parent'])]['attribute']['nobr']) AND ($dom[($dom[$key]['parent'])]['attribute']['nobr'] == 'true')) {
$dom[$key]['attribute']['nobr'] = false;
} else {
// store current object
$this->startTransaction();
// save this method vars
$this_method_vars['html'] = $html;
$this_method_vars['ln'] = $ln;
$this_method_vars['fill'] = $fill;
$this_method_vars['reseth'] = $reseth;
$this_method_vars['cell'] = $cell;
$this_method_vars['align'] = $align;
$this_method_vars['gvars'] = $gvars;
$this_method_vars['prevPage'] = $prevPage;
$this_method_vars['prevlMargin'] = $prevlMargin;
$this_method_vars['prevrMargin'] = $prevrMargin;
$this_method_vars['curfontname'] = $curfontname;
$this_method_vars['curfontstyle'] = $curfontstyle;
$this_method_vars['curfontsize'] = $curfontsize;
$this_method_vars['minstartliney'] = $minstartliney;
$this_method_vars['yshift'] = $yshift;
$this_method_vars['startlinepage'] = $startlinepage;
$this_method_vars['startlinepos'] = $startlinepos;
$this_method_vars['startlinex'] = $startlinex;
$this_method_vars['startliney'] = $startliney;
$this_method_vars['newline'] = $newline;
$this_method_vars['loop'] = $loop;
$this_method_vars['curpos'] = $curpos;
$this_method_vars['pask'] = $pask;
$this_method_vars['lalign'] = $lalign;
$this_method_vars['plalign'] = $plalign;
$this_method_vars['w'] = $w;
$this_method_vars['prev_listnum'] = $prev_listnum;
$this_method_vars['prev_listordered'] = $prev_listordered;
$this_method_vars['prev_listcount'] = $prev_listcount;
$this_method_vars['prev_lispacer'] = $prev_lispacer;
$this_method_vars['key'] = $key;
$this_method_vars['dom'] = $dom;
}
}
if ($dom[$key]['tag'] OR ($key == 0)) { if ($dom[$key]['tag'] OR ($key == 0)) {
if ((($dom[$key]['value'] == 'table') OR ($dom[$key]['value'] == 'tr')) AND (isset($dom[$key]['align']))) { if ((($dom[$key]['value'] == 'table') OR ($dom[$key]['value'] == 'tr')) AND (isset($dom[$key]['align']))) {
$dom[$key]['align'] = ($this->rtl) ? 'R' : 'L'; $dom[$key]['align'] = ($this->rtl) ? 'R' : 'L';
@ -13432,6 +13499,10 @@ if (!class_exists('TCPDF', false)) {
} }
if ($dom[$key]['tag']) { if ($dom[$key]['tag']) {
if ($dom[$key]['opening']) { if ($dom[$key]['opening']) {
// get text indentation (if any)
if (isset($dom[$key]['text-indent']) AND in_array($dom[$key]['value'], array('blockquote','dd','div','dt','h1','h2','h3','h4','h5','h6','li','ol','p','ul','table','tr','td'))) {
$this->textindent = $dom[$key]['text-indent'];
}
if ($dom[$key]['value'] == 'table') { if ($dom[$key]['value'] == 'table') {
if ($this->rtl) { if ($this->rtl) {
$wtmp = $this->x - $this->lMargin; $wtmp = $this->x - $this->lMargin;
@ -13687,8 +13758,14 @@ if (!class_exists('TCPDF', false)) {
} else { } else {
$ctmpmargin = $this->cMargin; $ctmpmargin = $this->cMargin;
$this->cMargin = 0; $this->cMargin = 0;
if ($this->rtl) {
$this->x -= $this->textindent;
} else {
$this->x += $this->textindent;
}
// ****** write only until the end of the line and get the rest ****** // ****** write only until the end of the line and get the rest ******
$strrest = $this->Write($this->lasth, $dom[$key]['value'], '', $wfill, '', false, 0, true, $firstblock); $strrest = $this->Write($this->lasth, $dom[$key]['value'], '', $wfill, '', false, 0, true, $firstblock);
$this->textindent = 0;
$this->cMargin = $ctmpmargin; $this->cMargin = $ctmpmargin;
} }
if (strlen($strrest) > 0) { if (strlen($strrest) > 0) {
@ -13716,6 +13793,16 @@ if (!class_exists('TCPDF', false)) {
} }
} }
++$key; ++$key;
if (isset($dom[$key]['tag']) AND $dom[$key]['tag'] AND (!isset($dom[$key]['opening']) OR !$dom[$key]['opening']) AND isset($dom[($dom[$key]['parent'])]['attribute']['nobr']) AND ($dom[($dom[$key]['parent'])]['attribute']['nobr'] == 'true') AND ($this->start_transaction_page < $this->numpages)) {
// restore previous object
$this->rollbackTransaction(true);
// restore previous values
foreach ($this_method_vars as $vkey => $vval) {
$$vkey = $vval;
}
// add a page
$this->AddPage();
}
} // end for each $key } // end for each $key
// align the last line // align the last line
if (isset($startlinex)) { if (isset($startlinex)) {
@ -13905,7 +13992,7 @@ if (!class_exists('TCPDF', false)) {
case 'img': { case 'img': {
if (isset($tag['attribute']['src'])) { if (isset($tag['attribute']['src'])) {
// replace relative path with real server path // replace relative path with real server path
if ($tag['attribute']['src'][0] == '/') { if (($tag['attribute']['src'][0] == '/') AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
$tag['attribute']['src'] = $_SERVER['DOCUMENT_ROOT'].$tag['attribute']['src']; $tag['attribute']['src'] = $_SERVER['DOCUMENT_ROOT'].$tag['attribute']['src'];
} }
$tag['attribute']['src'] = urldecode($tag['attribute']['src']); $tag['attribute']['src'] = urldecode($tag['attribute']['src']);
@ -15855,6 +15942,8 @@ if (!class_exists('TCPDF', false)) {
// remove previous copy // remove previous copy
$this->commitTransaction(); $this->commitTransaction();
} }
// record current page number
$this->start_transaction_page = $this->page;
// clone current object // clone current object
$this->objcopy = $this->objclone($this); $this->objcopy = $this->objclone($this);
} }
@ -15873,11 +15962,12 @@ if (!class_exists('TCPDF', false)) {
/** /**
* This method allows to undo the latest transaction by returning the latest saved TCPDF object with startTransaction(). * This method allows to undo the latest transaction by returning the latest saved TCPDF object with startTransaction().
* @param boolean $self if true restores current class object to previous state without the need of reassignment via the returned value.
* @return TCPDF object. * @return TCPDF object.
* @access public * @access public
* @since 4.5.029 (2009-03-19) * @since 4.5.029 (2009-03-19)
*/ */
public function rollbackTransaction() { public function rollbackTransaction($self=false) {
if (isset($this->objcopy)) { if (isset($this->objcopy)) {
if (isset($this->objcopy->diskcache) AND $this->objcopy->diskcache) { if (isset($this->objcopy->diskcache) AND $this->objcopy->diskcache) {
// truncate files to previous values // truncate files to previous values
@ -15888,6 +15978,12 @@ if (!class_exists('TCPDF', false)) {
} }
} }
$this->_destroy(true, true); $this->_destroy(true, true);
if ($self) {
$objvars = get_object_vars($this->objcopy);
foreach ($objvars as $key => $value) {
$this->$key = $value;
}
}
return $this->objcopy; return $this->objcopy;
} }
return $this; return $this;