32
1
mirror of https://github.com/vdm-io/tcpdf.git synced 2024-12-23 08:58:55 +00:00
This commit is contained in:
nicolaasuni 2010-03-28 22:22:54 +02:00
parent 83e7c1d879
commit 034b5e8922
22 changed files with 924 additions and 516 deletions

View File

@ -1,3 +1,9 @@
4.9.001 (2010-03-28)
- QR Code minor bug was fixed.
- Multicolumn mode was added (see the new example n. 10).
- The following methods were added: setEqualColumns(), setColumnsArray(), selectColumn().
- Thai diacritics support were changed (note that this is incompatible with html justification).
4.9.000 (2010-03-27)
- QR Code (2D barcode) support was added (see example n. 50).
- The following methods were added to print crop and registration marks (see example n. 56): colorRegistrationBar(), cropMark(), registrationMark().

View File

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

View File

@ -55,7 +55,7 @@
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:43 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:39 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -5548,7 +5548,7 @@ $frame)</code>
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:44 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:40 +0200 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

@ -296,7 +296,7 @@ $type)</code>
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:43 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:39 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -1374,7 +1374,7 @@ $type)</code>
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:43 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:39 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -102,7 +102,7 @@ PHP class to creates array representations for 2D barcodes to be used with TCPDF
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:43 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:39 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -102,7 +102,7 @@ PHP class to creates array representations for common 1D barcodes to be used wit
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:43 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:39 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -513,7 +513,7 @@ Configuration file for TCPDF.<br /><br /><br /><br />
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:46 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:43 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -94,7 +94,7 @@ Array of WEB safe colors.<br /><br /><br /><br />
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:44 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:40 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -477,7 +477,7 @@ string $string, [int $split_length = 1])</code>
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:44 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:40 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -79,7 +79,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.9.000</td>
<td><b>version:</b>&nbsp;&nbsp;</td><td>4.9.001</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>
@ -110,7 +110,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.9.000 (http://www.tcpdf.org)'</code>
<code>PDF_PRODUCER = 'TCPDF 4.9.001 (http://www.tcpdf.org)'</code>
</td></tr></table>
</td></tr></table>
@ -121,7 +121,7 @@ unicode data<br /><br /></div>
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:44 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:40 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -243,7 +243,7 @@ Unicode Include file for TCPDF.<br /><br /><br /><br />
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:46 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:43 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -243,6 +243,10 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$cntmrk">TCPDF::$cntmrk</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Array used to store content positions inside the pages buffer.</dd>
<dt><b>$ColorFlag</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$ColorFlag">TCPDF::$ColorFlag</a></dd>
<dt><b>$columns</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$columns">TCPDF::$columns</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Array of column measures (width, space, starting Y position)</dd>
<dt><b>$column_start_page</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$column_start_page">TCPDF::$column_start_page</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Starting page for columns</dd>
<dt><b>$compress</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$compress">TCPDF::$compress</a></dd>
<dt><b>$CoreFonts</b></dt>
@ -255,6 +259,8 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$CurOrientation">TCPDF::$CurOrientation</a></dd>
<dt><b>$CurrentFont</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$CurrentFont">TCPDF::$CurrentFont</a></dd>
<dt><b>$current_column</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$current_column">TCPDF::$current_column</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Current column number</dd>
<dt><b>$currpagegroup</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$currpagegroup">TCPDF::$currpagegroup</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Contains the alias of the current page group</dd>
<dt><b>$curr_annot_obj_id</b></dt>
@ -973,6 +979,8 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$numimages">TCPDF::$numimages</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Counts the number of pages.</dd>
<dt><b>$numpages</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$numpages">TCPDF::$numpages</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Counts the number of pages.</dd>
<dt><b>$num_columns</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$num_columns">TCPDF::$num_columns</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Number of colums</dd>
<dt><b>$n_js</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$n_js">TCPDF::$n_js</a><br>&nbsp;&nbsp;&nbsp;&nbsp;javascript counter</dd>
<dt><b>$n_ocg_print</b></dt>
@ -1279,6 +1287,8 @@
<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>$start_transaction_y</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$start_transaction_y">TCPDF::$start_transaction_y</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Store Y position when startTransaction() is called.</dd>
<dt><b>$state</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$state">TCPDF::$state</a></dd>
<dt><b>$structured</b></dt>
@ -1293,6 +1303,8 @@
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodScaleXY">TCPDF::ScaleXY()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Vertical and horizontal proportional Scaling.</dd>
<dt><b>ScaleY</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodScaleY">TCPDF::ScaleY()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Vertical Scaling.</dd>
<dt><b>selectColumn</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodselectColumn">TCPDF::selectColumn()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set position at a given column</dd>
<dt><b>setAlpha</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetAlpha">TCPDF::setAlpha()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set alpha for stroking (CA) and non-stroking (ca) operations.</dd>
<dt><b>SetAuthor</b></dt>
@ -1300,11 +1312,11 @@
<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>
<dt><b>setBarcode</b></dt>
<dd>in file 2dbarcodes.php, method <a href="com-tecnick-tcpdf/TCPDF2DBarcode.html#methodsetBarcode">TCPDF2DBarcode::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the 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>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 2dbarcodes.php, method <a href="com-tecnick-tcpdf/TCPDF2DBarcode.html#methodsetBarcode">TCPDF2DBarcode::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the barcode.</dd>
<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>
<dt><b>setBuffer</b></dt>
@ -1313,6 +1325,8 @@
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetCellHeightRatio">TCPDF::setCellHeightRatio()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the height of the cell (line height) respect the font height.</dd>
<dt><b>SetCellPadding</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetCellPadding">TCPDF::SetCellPadding()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the internal Cell padding.</dd>
<dt><b>setColumnsArray</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetColumnsArray">TCPDF::setColumnsArray()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set columns array.</dd>
<dt><b>SetCompression</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetCompression">TCPDF::SetCompression()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Activates or deactivates page compression. When activated, the internal representation of each page is compressed, which leads to a compression ratio of about 2 for the resulting document. Compression is on by default.</dd>
<dt><b>setContentMark</b></dt>
@ -1331,6 +1345,8 @@
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetDrawColorArray">TCPDF::SetDrawColorArray()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Defines the color used for all drawing operations (lines, rectangles and cell borders).</dd>
<dt><b>SetDrawSpotColor</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetDrawSpotColor">TCPDF::SetDrawSpotColor()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Defines the spot color used for all drawing operations (lines, rectangles and cell borders).</dd>
<dt><b>setEqualColumns</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetEqualColumns">TCPDF::setEqualColumns()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set multiple columns of the same size</dd>
<dt><b>setExtGState</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetExtGState">TCPDF::setExtGState()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Add an extgstate</dd>
<dt><b>SetFillColor</b></dt>
@ -1816,7 +1832,7 @@
<a href="elementindex.html#top">top</a><br>
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:43 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:39 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -404,6 +404,10 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$cntmrk">TCPDF::$cntmrk</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Array used to store content positions inside the pages buffer.</dd>
<dt><b>$ColorFlag</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$ColorFlag">TCPDF::$ColorFlag</a></dd>
<dt><b>$columns</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$columns">TCPDF::$columns</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Array of column measures (width, space, starting Y position)</dd>
<dt><b>$column_start_page</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$column_start_page">TCPDF::$column_start_page</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Starting page for columns</dd>
<dt><b>$compress</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$compress">TCPDF::$compress</a></dd>
<dt><b>$CoreFonts</b></dt>
@ -416,6 +420,8 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$CurOrientation">TCPDF::$CurOrientation</a></dd>
<dt><b>$CurrentFont</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$CurrentFont">TCPDF::$CurrentFont</a></dd>
<dt><b>$current_column</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$current_column">TCPDF::$current_column</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Current column number</dd>
<dt><b>$currpagegroup</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$currpagegroup">TCPDF::$currpagegroup</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Contains the alias of the current page group</dd>
<dt><b>$curr_annot_obj_id</b></dt>
@ -1134,6 +1140,8 @@
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$numimages">TCPDF::$numimages</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Counts the number of pages.</dd>
<dt><b>$numpages</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$numpages">TCPDF::$numpages</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Counts the number of pages.</dd>
<dt><b>$num_columns</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$num_columns">TCPDF::$num_columns</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Number of colums</dd>
<dt><b>$n_js</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$n_js">TCPDF::$n_js</a><br>&nbsp;&nbsp;&nbsp;&nbsp;javascript counter</dd>
<dt><b>$n_ocg_print</b></dt>
@ -1440,6 +1448,8 @@
<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>$start_transaction_y</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$start_transaction_y">TCPDF::$start_transaction_y</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Store Y position when startTransaction() is called.</dd>
<dt><b>$state</b></dt>
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$state">TCPDF::$state</a></dd>
<dt><b>$structured</b></dt>
@ -1454,6 +1464,8 @@
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodScaleXY">TCPDF::ScaleXY()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Vertical and horizontal proportional Scaling.</dd>
<dt><b>ScaleY</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodScaleY">TCPDF::ScaleY()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Vertical Scaling.</dd>
<dt><b>selectColumn</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodselectColumn">TCPDF::selectColumn()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set position at a given column</dd>
<dt><b>setAlpha</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetAlpha">TCPDF::setAlpha()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set alpha for stroking (CA) and non-stroking (ca) operations.</dd>
<dt><b>SetAuthor</b></dt>
@ -1461,11 +1473,11 @@
<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>
<dt><b>setBarcode</b></dt>
<dd>in file 2dbarcodes.php, method <a href="com-tecnick-tcpdf/TCPDF2DBarcode.html#methodsetBarcode">TCPDF2DBarcode::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the 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>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 2dbarcodes.php, method <a href="com-tecnick-tcpdf/TCPDF2DBarcode.html#methodsetBarcode">TCPDF2DBarcode::setBarcode()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the barcode.</dd>
<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>
<dt><b>setBuffer</b></dt>
@ -1474,6 +1486,8 @@
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetCellHeightRatio">TCPDF::setCellHeightRatio()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the height of the cell (line height) respect the font height.</dd>
<dt><b>SetCellPadding</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetCellPadding">TCPDF::SetCellPadding()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set the internal Cell padding.</dd>
<dt><b>setColumnsArray</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetColumnsArray">TCPDF::setColumnsArray()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set columns array.</dd>
<dt><b>SetCompression</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetCompression">TCPDF::SetCompression()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Activates or deactivates page compression. When activated, the internal representation of each page is compressed, which leads to a compression ratio of about 2 for the resulting document. Compression is on by default.</dd>
<dt><b>setContentMark</b></dt>
@ -1492,6 +1506,8 @@
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetDrawColorArray">TCPDF::SetDrawColorArray()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Defines the color used for all drawing operations (lines, rectangles and cell borders).</dd>
<dt><b>SetDrawSpotColor</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetDrawSpotColor">TCPDF::SetDrawSpotColor()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Defines the spot color used for all drawing operations (lines, rectangles and cell borders).</dd>
<dt><b>setEqualColumns</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetEqualColumns">TCPDF::setEqualColumns()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Set multiple columns of the same size</dd>
<dt><b>setExtGState</b></dt>
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetExtGState">TCPDF::setExtGState()</a><br>&nbsp;&nbsp;&nbsp;&nbsp;Add an extgstate</dd>
<dt><b>SetFillColor</b></dt>
@ -1845,7 +1861,7 @@
<a href="elementindex_com-tecnick-tcpdf.html#top">top</a><br>
<div class="credit">
<hr />
Documentation generated on Sat, 27 Mar 2010 19:29:43 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:39 +0200 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, 27 Mar 2010 19:29:46 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:43 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -64,7 +64,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, 27 Mar 2010 19:29:43 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:39 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -64,7 +64,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, 27 Mar 2010 19:29:43 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
Documentation generated on Sun, 28 Mar 2010 22:22:39 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
</div>
</td></tr></table>
</td>

View File

@ -2,13 +2,13 @@
//============================================================+
// File name : example_010.php
// Begin : 2008-03-04
// Last Update : 2010-02-24
//
// Last Update : 2010-03-28
//
// Description : Example 010 for TCPDF class
// Text on multiple columns
//
//
// Author: Nicola Asuni
//
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com s.r.l.
@ -35,84 +35,31 @@ require_once('../tcpdf.php');
/**
* Extend TCPDF to work with multiple columns
*/
* Extend TCPDF to work with multiple columns
*/
class MC_TCPDF extends TCPDF {
/**
* @var number of colums
* @access protected
*/
protected $ncols = 3;
/**
* @var columns width
* @access protected
*/
protected $colwidth = 57;
/**
* @var current column
* @access protected
*/
protected $col = 0;
/**
* @var y position of the beginning of column
* @access protected
*/
protected $col_start_y;
/**
* Set position at a given column
* @param $col column number (from 0 to $ncols-1)
* Print chapter
* @param int $num chapter number
* @param string $title chapter title
* @param string $file name of the file containing the chapter body
* @param boolean $mode if true the chapter body is in HTML, otherwise in simple text.
* @access public
*/
public function SetCol($col) {
$this->col = $col;
// set space between columns
if ($this->ncols > 1) {
$column_space = round((float)($this->w - $this->original_lMargin - $this->original_rMargin - ($this->ncols * $this->colwidth)) / ($this->ncols - 1));
} else {
$column_space = 0;
}
// set X position of the current column by case
if ($this->rtl) {
$x = $this->w - $this->original_rMargin - ($col * ($this->colwidth + $column_space));
$this->SetRightMargin($this->w - $x);
$this->SetLeftMargin($x - $this->colwidth);
} else {
$x = $this->original_lMargin + ($col * ($this->colwidth + $column_space));
$this->SetLeftMargin($x);
$this->SetRightMargin($this->w - $x - $this->colwidth);
}
$this->x = $x;
if ($col > 0) {
// set Y position for the column
$this->y = $this->col_start_y;
}
// fix for HTML mode
$this->newline = true;
public function PrintChapter($num, $title, $file, $mode=false) {
// disable existing columns
$this->setEqualColumns();
// add a new page
$this->AddPage();
// print chapter title
$this->ChapterTitle($num, $title);
// set columns
$this->setEqualColumns(3, 57);
// print chapter body
$this->ChapterBody($file, $mode);
}
/**
* Overwrites the AcceptPageBreak() method to switch between columns
* @return boolean false
* @access public
*/
public function AcceptPageBreak() {
if($this->col < ($this->ncols - 1)) {
// go to next column
$this->SetCol($this->col + 1);
} else {
// go back to first column on the new page
$this->AddPage();
$this->SetCol(0);
}
// avoid page breaking from checkPageBreak()
return false;
}
/**
* Set chapter title
* @param int $num chapter number
@ -124,10 +71,8 @@ class MC_TCPDF extends TCPDF {
$this->SetFillColor(200, 220, 255);
$this->Cell(0, 6, 'Chapter '.$num.' : '.$title, 0, 1, '', 1);
$this->Ln(4);
// save current Y position
$this->col_start_y = $this->GetY();
}
/**
* Print chapter body
* @param string $file name of the file containing the chapter body
@ -135,44 +80,23 @@ class MC_TCPDF extends TCPDF {
* @access public
*/
public function ChapterBody($file, $mode=false) {
// store current margin values
$lMargin = $this->lMargin;
$rMargin = $this->rMargin;
$this->selectColumn();
// get esternal file content
$txt = file_get_contents($file, false);
$content = file_get_contents($file, false);
// set font
$this->SetFont('times', '', 9);
// set first column
$this->SetCol(0);
$this->SetTextColor(50, 50, 50);
// print content
if ($mode) {
// ------ HTML MODE ------
$this->writeHTML($txt, true, false, true, false, 'J');
$this->writeHTML($content, true, false, true, false, 'J');
} else {
// ------ TEXT MODE ------
$this->Write(0, $txt, '', 0, 'J', true, 0, false, false, 0);
$this->Write(0, $content, '', 0, 'J', true, 0, false, false, 0);
}
$this->Ln();
// Go back to first column
$this->SetCol(0);
// restore previous margin values
$this->SetLeftMargin($lMargin);
$this->SetRightMargin($rMargin);
}
/**
* Print chapter
* @param int $num chapter number
* @param string $title chapter title
* @param string $file name of the file containing the chapter body
* @param boolean $mode if true the chapter body is in HTML, otherwise in simple text.
* @access public
*/
public function PrintChapter($num, $title, $file, $mode=false) {
$this->AddPage();
$this->ChapterTitle($num, $title);
$this->ChapterBody($file, $mode);
}
}
} // end of extended class
// ---------------------------------------------------------
// EXAMPLE
@ -206,10 +130,10 @@ $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//set some language-dependent strings
$pdf->setLanguageArray($l);
$pdf->setLanguageArray($l);
// ---------------------------------------------------------
@ -225,6 +149,6 @@ $pdf->PrintChapter(2, 'THE PROS AND CONS', '../cache/chapter_demo_2.txt', true);
$pdf->Output('example_010.pdf', 'I');
//============================================================+
// END OF FILE
// END OF FILE
//============================================================+
?>

View File

@ -2,8 +2,8 @@
//============================================================+
// File name : qrcode.php
// Begin : 2010-03-22
// Last Update : 2010-03-27
// Version : 1.0.000
// Last Update : 2010-03-28
// Version : 1.0.001
// License : GNU LGPL v.3 (http://www.gnu.org/copyleft/lesser.html)
// ----------------------------------------------------------------------------
//
@ -42,7 +42,7 @@
// ---------------------------------------------------------
// "PHP QR Code encoder"
// License: GNU-LGPLv3
// Copyright (C) 2010 by Dominik Dzienia <deltalab at poczta dot f>
// Copyright (C) 2010 by Dominik Dzienia <deltalab at poczta dot fm>
// http://phpqrcode.sourceforge.net/
// https://sourceforge.net/projects/phpqrcode/
//
@ -1805,7 +1805,7 @@ if (!class_exists('QRcode', false)) {
*/
protected function checkModeAn($size, $data) {
for ($i=0; $i<$size; ++$i) {
if ($this->lookAnTable(ord($data[$i])) == false) {
if ($this->lookAnTable(ord($data[$i])) == -1) {
return false;
}
}

270
tcpdf.php
View File

@ -2,9 +2,9 @@
//============================================================+
// File name : tcpdf.php
// Begin : 2002-08-03
// Last Update : 2010-03-27
// Last Update : 2010-03-28
// Author : Nicola Asuni - info@tecnick.com - http://www.tcpdf.org
// Version : 4.9.000
// Version : 4.9.001
// License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
// ----------------------------------------------------------------------------
// Copyright (C) 2002-2010 Nicola Asuni - Tecnick.com S.r.l.
@ -129,7 +129,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.9.000
* @version 4.9.001
*/
/**
@ -153,14 +153,14 @@ if (!class_exists('TCPDF', false)) {
/**
* define default PDF document producer
*/
define('PDF_PRODUCER', 'TCPDF 4.9.000 (http://www.tcpdf.org)');
define('PDF_PRODUCER', 'TCPDF 4.9.001 (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.9.000
* @version 4.9.001
* @author Nicola Asuni - info@tecnick.com
* @link http://www.tcpdf.org
* @license http://www.gnu.org/copyleft/lesser.html LGPL
@ -1480,6 +1480,13 @@ if (!class_exists('TCPDF', false)) {
*/
protected $start_transaction_page = 0;
/**
* Store Y position when startTransaction() is called.
* @access protected
* @since 4.9.001 (2010-03-28)
*/
protected $start_transaction_y = 0;
/**
* True when we are printing the thead section on a new page
* @access protected
@ -1487,6 +1494,34 @@ if (!class_exists('TCPDF', false)) {
*/
protected $inthead = false;
/**
* Array of column measures (width, space, starting Y position)
* @access protected
* @since 4.9.001 (2010-03-28)
*/
protected $columns = array();
/**
* Number of colums
* @access protected
* @since 4.9.001 (2010-03-28)
*/
protected $num_columns = 0;
/**
* Current column number
* @access protected
* @since 4.9.001 (2010-03-28)
*/
protected $current_column = 0;
/**
* Starting page for columns
* @access protected
* @since 4.9.001 (2010-03-28)
*/
protected $column_start_page = 0;
//------------------------------------------------------------
// METHODS
//------------------------------------------------------------
@ -3643,6 +3678,20 @@ if (!class_exists('TCPDF', false)) {
* @see SetAutoPageBreak()
*/
public function AcceptPageBreak() {
if ($this->num_columns > 0) {
// multi column mode
if($this->current_column < ($this->num_columns - 1)) {
// go to next column
$this->selectColumn($this->current_column + 1);
} else {
// add a new page
$this->AddPage();
// set first column
$this->selectColumn(0);
}
// avoid page breaking from checkPageBreak()
return false;
}
return $this->AutoPageBreak;
}
@ -3832,47 +3881,39 @@ if (!class_exists('TCPDF', false)) {
if ($this->isunicode) {
if (($this->CurrentFont['type'] == 'core') OR ($this->CurrentFont['type'] == 'TrueType') OR ($this->CurrentFont['type'] == 'Type1')) {
$txt2 = $this->UTF8ToLatin1($txt2);
$txt2 = $this->_escape($txt2);
} else {
$unicode = $this->UTF8StringToArray($txt); // array of UTF-8 unicode values
//Convert string to UTF-16BE and reverse RTL language
$txt2 = $this->utf8StrArrRev($unicode, '', false, $this->tmprtl);
$txt2 = $this->_escape($txt2);
$unicode = $this->utf8Bidi($unicode, '', $this->tmprtl);
// ---- Fix for bug #2977340 "Incorrect Thai characters position arrangement" ----
// NOTE: this doesn't work with HTML justification
// Symbols that could overlap on the font top (only works in LTR)
$topchar = array(3611, 3613, 3615, 3650, 3651, 3652); // chars that extends on top
$btmchar = array(); // chars that extends on bottom
$topsym = array(3633, 3636, 3637, 3638, 3639, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662); // symbols with top position
$btmsym = array(); // symbols with bottom position
$uniblock = array();
$numchars = count($unicode); // number of chars
$shift = 0;
$vh = (0.2 * $this->FontSize * $this->k); // vertical shift to avoid overlapping
$unik = 0;
$uniblock = array();
$uniblock[$unik] = array();
$uniblock[$unik][] = $unicode[0];
// resolve overlapping conflicts by splitting the string in several parts
for ($i = 1; $i < $numchars; ++$i) {
$uniblock[] = $unicode[$i];
// check if symbols overlaps at top
if (in_array($unicode[$i], $topsym) AND (in_array($unicode[($i - 1)], $topsym) OR in_array($unicode[($i - 1)], $topchar))) {
// get postion on string
$overpos = strlen($this->_escape($this->arrUTF8ToUTF16BE($uniblock, false)));
$txt2 = substr($txt2, 0, ($overpos + $shift)).') Tj '.sprintf('%05.2F', $vh).' Ts ('.substr($txt2, ($overpos + $shift), 2).') Tj 0 Ts ('.substr($txt2, ($overpos + $shift + 2));
$shift += ($overpos + 26);
$uniblock = array();
}
// check if symbols overlaps at bottom
if (in_array($unicode[$i], $btmsym) AND (in_array($unicode[($i - 1)], $btmsym) OR in_array($unicode[($i - 1)], $btmchar))) {
// get postion on string
$overpos = strlen($this->_escape($this->arrUTF8ToUTF16BE($uniblock, false)));
$txt2 = substr($txt2, 0, ($overpos + $shift)).') Tj -'.sprintf('%05.2F', $vh).' Ts ('.substr($txt2, ($overpos + $shift), 2).') Tj 0 Ts ('.substr($txt2, ($overpos + $shift + 2));
$shift += ($overpos + 27);
$uniblock = array();
// move symbols to another array
++$unik;
$uniblock[$unik] = array();
$uniblock[$unik][] = $unicode[$i];
++$unik;
$uniblock[$unik] = array();
$unicode[$i] = 8203; // Unicode Character 'ZERO WIDTH SPACE' (U+200B)
} else {
$uniblock[$unik][] = $unicode[$i];
}
}
// ---- END OF Fix for bug #2977340 "Incorrect Thai characters position arrangement" ----
// ---- END OF Fix for bug #2977340
$txt2 = $this->arrUTF8ToUTF16BE($unicode, false);
}
} else {
$txt2 = $this->_escape($txt2);
}
$txt2 = $this->_escape($txt2);
// text length
$txwidth = $this->GetStringWidth($txt);
$width = $txwidth;
@ -3908,14 +3949,16 @@ if (!class_exists('TCPDF', false)) {
// count number of spaces
$ns = substr_count($txt, ' ');
// Justification
$spacewidth = 0;
if (($align == 'J') AND ($ns > 0)) {
if (($this->CurrentFont['type'] == 'TrueTypeUnicode') OR ($this->CurrentFont['type'] == 'cidfont0')) {
// get string width without spaces
$width = $this->GetStringWidth(str_replace(' ', '', $txt));
// 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).' ', ') '.sprintf('%.3F', $spacewidth).' (', $txt2);
// get string width without spaces
$width = $this->GetStringWidth(str_replace(' ', '', $txt));
// 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).chr(32), ') '.sprintf('%.3F', $spacewidth).' (', $txt2);
$unicode_justification = true;
} else {
// get string width
$width = $txwidth;
@ -3925,6 +3968,8 @@ if (!class_exists('TCPDF', false)) {
}
$width = $w - (2 * $this->cMargin);
}
// replace carriage return characters
$txt2 = str_replace("\r", ' ', $txt2);
switch ($align) {
case 'C': {
$dx = ($w - $width) / 2;
@ -3962,6 +4007,27 @@ if (!class_exists('TCPDF', false)) {
$basefonty = $this->y + (($h + $this->FontAscent - $this->FontDescent) / 2);
// print text
$s .= sprintf('BT %.2F %.2F Td [(%s)] TJ ET', $xdk, (($this->h - $basefonty) * $k), $txt2);
if (isset($uniblock)) {
// print overlapping characters as separate string
$xshift = 0; // horizontal shift
$ty = (($this->h - $basefonty + (0.2 * $this->FontSize)) * $k);
$spw = (($w - $txwidth - (2 * $this->cMargin)) / ($ns?$ns:1));
foreach ($uniblock as $uk => $uniarr) {
if (($uk % 2) == 0) {
// x space to skip
if ($spacewidth != 0) {
// justification shift
$xshift += (count(array_keys($uniarr, 32)) * $spw);
}
$xshift += $this->GetArrStringWidth($uniarr); // + shift justification
} else {
// character to print
$topchr = $this->arrUTF8ToUTF16BE($uniarr, false);
$topchr = $this->_escape($topchr);
$s .= sprintf(' BT %.2F %.2F Td [(%s)] TJ ET', ($xdk + ($xshift * $k)), $ty, $topchr);
}
}
}
if ($this->underline) {
$s .= ' '.$this->_dounderlinew($xdx, $basefonty, $width);
}
@ -5317,7 +5383,10 @@ if (!class_exists('TCPDF', false)) {
* @see Cell()
*/
public function Ln($h='', $cell=false) {
//Line feed; default value is last cell height
if (($this->num_columns > 0) AND ($this->y == $this->columns[$this->current_column]['y'])) {
// revove vertical space from the top of the column
return;
}
if ($cell) {
$cellmargin = $this->cMargin;
} else {
@ -13733,7 +13802,7 @@ if (!class_exists('TCPDF', false)) {
$this->inthead = true;
// print table header (thead)
$this->writeHTML($this->thead, false, false, false, false, '');
if (($this->start_transaction_page == ($this->numpages - 1)) OR ($this->checkPageBreak($this->lasth, '', false))) {
if (($this->start_transaction_page == ($this->numpages - 1)) OR ($this->y < $this->start_transaction_y) OR ($this->checkPageBreak($this->lasth, '', false))) {
// restore previous object
$this->rollbackTransaction(true);
// restore previous values
@ -13741,8 +13810,13 @@ if (!class_exists('TCPDF', false)) {
$$vkey = $vval;
}
// add a page (or trig AcceptPageBreak() for multicolumn mode)
$this->checkPageBreak($this->PageBreakTrigger + 1);
$pre_y = $this->y;
if ((!$this->checkPageBreak($this->PageBreakTrigger + 1)) AND ($this->y < $pre_y)) {
// fix for multicolumn mode
$startliney = $this->y;
}
$this->start_transaction_page = $this->page;
$this->start_transaction_y = $this-y;
}
}
// move $key index forward to skip THEAD block
@ -14035,7 +14109,11 @@ if (!class_exists('TCPDF', false)) {
}
// calculate additional space to add to each space
$spacelen = $one_space_width;
$spacewidth = ((($tw - $linew) + (($no - $ns) * $spacelen)) / ($ns?$ns:1)) * $this->k;
if ($this->isRTLTextDir()) {
$spacewidth = ((($tw - $linew) + (($no - $ns + 1) * $spacelen)) / ($ns?$ns:1)) * $this->k;
} else {
$spacewidth = ((($tw - $linew) + (($no - $ns) * $spacelen)) / ($ns?$ns:1)) * $this->k;
}
$spacewidthu = -1000 * (($tw - $linew) + ($no * $spacelen)) / ($ns?$ns:1) / $this->FontSize;
$nsmax = $ns;
$ns = 0;
@ -14573,7 +14651,7 @@ if (!class_exists('TCPDF', false)) {
}
++$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')) {
if ((!$undo) AND ($this->start_transaction_page == ($this->numpages - 1))) {
if ( (!$undo) AND (($this->start_transaction_page == ($this->numpages - 1)) OR ($this->y < $this->start_transaction_y))) {
// restore previous object
$this->rollbackTransaction(true);
// restore previous values
@ -14581,7 +14659,10 @@ if (!class_exists('TCPDF', false)) {
$$vkey = $vval;
}
// add a page (or trig AcceptPageBreak() for multicolumn mode)
$this->checkPageBreak($this->PageBreakTrigger + 1);
$pre_y = $this->y;
if ((!$this->checkPageBreak($this->PageBreakTrigger + 1)) AND ($this->y < $pre_y)) {
$startliney = $this->y;
}
$undo = true; // avoid infinite loop
} else {
$undo = false;
@ -14616,7 +14697,7 @@ if (!class_exists('TCPDF', false)) {
$pmid = substr($this->getPageBuffer($startlinepage), $startlinepos);
$pend = '';
}
if ((isset($plalign) AND ((($plalign == 'C') OR ($plalign == 'J') OR (($plalign == 'R') AND (!$this->rtl)) OR (($plalign == 'L') AND ($this->rtl))))) OR ($yshift < 0)) {
if ((isset($plalign) AND ((($plalign == 'C') OR (($plalign == 'R') AND (!$this->rtl)) OR (($plalign == 'L') AND ($this->rtl))))) OR ($yshift < 0)) {
// calculate shifting amount
$tw = $w;
if ($this->lMargin != $prevlMargin) {
@ -14737,7 +14818,8 @@ if (!class_exists('TCPDF', false)) {
}
if ($this->checkPageBreak(((2 * $cp) + (2 * $cs) + $this->lasth), '', false)) {
$this->inthead = true;
$this->AddPage();
// add a page (or trig AcceptPageBreak() for multicolumn mode)
$this->checkPageBreak($this->PageBreakTrigger + 1);
}
break;
}
@ -15589,11 +15671,13 @@ if (!class_exists('TCPDF', false)) {
$pba = $dom[($dom[$key]['parent'])]['attribute']['pagebreakafter'];
// check for pagebreak
if (($pba == 'true') OR ($pba == 'left') OR ($pba == 'right')) {
$this->AddPage();
// add a page (or trig AcceptPageBreak() for multicolumn mode)
$this->checkPageBreak($this->PageBreakTrigger + 1);
}
if ((($pba == 'left') AND (((!$this->rtl) AND (($this->page % 2) == 0)) OR (($this->rtl) AND (($this->page % 2) != 0))))
OR (($pba == 'right') AND (((!$this->rtl) AND (($this->page % 2) != 0)) OR (($this->rtl) AND (($this->page % 2) == 0))))) {
$this->AddPage();
// add a page (or trig AcceptPageBreak() for multicolumn mode)
$this->checkPageBreak($this->PageBreakTrigger + 1);
}
}
$this->tmprtl = false;
@ -16779,8 +16863,9 @@ if (!class_exists('TCPDF', false)) {
// remove previous copy
$this->commitTransaction();
}
// record current page number
// record current page number and Y position
$this->start_transaction_page = $this->page;
$this->start_transaction_y = $this->y;
// clone current object
$this->objcopy = $this->objclone($this);
}
@ -16864,6 +16949,95 @@ if (!class_exists('TCPDF', false)) {
return ($pos === false)?false:($length - $pos - strlen($needle));
}
// --- MULTI COLUMNS METHODS -----------------------
/**
* Set multiple columns of the same size
* @param int $numcols number of columns (set to zero to disable columns mode)
* @param int $width column width
* @param int $y column starting Y position (leave empty for current Y position)
* @access public
* @since 4.9.001 (2010-03-28)
*/
public function setEqualColumns($numcols=0, $width=0, $y='') {
$this->columns = array();
if ($numcols < 2) {
$numcols = 0;
} else {
// maximum column width
$maxwidth = ($this->w - $this->original_lMargin - $this->original_rMargin) / $numcols;
if ($width > $maxwidth) {
$width = $maxwidth;
}
if ($this->empty_string($y)) {
$y = $this->y;
}
// space between columns
$space = (($this->w - $this->original_lMargin - $this->original_rMargin - ($numcols * $width)) / ($numcols - 1));
// fill the columns array (with, space, starting Y position)
for ($i = 0; $i < $numcols; ++$i) {
$this->columns[$i] = array('w' => $width, 's' => $space, 'y' => $y);
}
}
$this->num_columns = $numcols;
$this->current_column = 0;
$this->column_start_page = $this->page;
}
/**
* Set columns array.
* Each column is represented by and array with the following keys: (w = width, s = space between columns, y = column top position).
* @param array $columns
* @access public
* @since 4.9.001 (2010-03-28)
*/
public function setColumnsArray($columns) {
$this->columns = $columns;
$this->num_columns = count($columns);
$this->current_column = 0;
$this->column_start_page = $this->page;
}
/**
* Set position at a given column
* @param int $col column number (from 0 to getNumberOfColumns()-1); empty string = current column.
* @access public
* @since 4.9.001 (2010-03-28)
*/
public function selectColumn($col='') {
if (is_string($col)) {
$col = $this->current_column;
}
if ($col != $this->current_column) {
// move pointer at column top
if ($this->column_start_page == $this->page) {
$this->y = $this->columns[$col]['y'];
} else {
$this->y = $this->tMargin;
}
}
// set space between columns
if ($this->num_columns > 1) {
$column_space = $this->columns[$col]['s'];
} else {
$column_space = 0;
}
// set X position of the current column by case
if ($this->rtl) {
$x = $this->w - $this->original_rMargin - ($col * ($this->columns[$col]['w'] + $column_space));
$this->SetRightMargin($this->w - $x);
$this->SetLeftMargin($x - $this->column_width);
} else {
$x = $this->original_lMargin + ($col * ($this->columns[$col]['w'] + $column_space));
$this->SetLeftMargin($x);
$this->SetRightMargin($this->w - $x - $this->columns[$col]['w']);
}
$this->x = $x;
$this->current_column = $col;
// fix for HTML mode
$this->newline = true;
}
} // END OF TCPDF CLASS
}
//============================================================+