mirror of
https://github.com/vdm-io/tcpdf.git
synced 2024-11-22 21:05:10 +00:00
4.6.005
This commit is contained in:
parent
6ab6c9fb0d
commit
48f009ea40
@ -1,3 +1,8 @@
|
|||||||
|
4.6.005 (2009-04-25)
|
||||||
|
- Points (pt) conversion in getHTMLUnitToUnits() was fixed.
|
||||||
|
- Default tcpdf.pem certificate file was added.
|
||||||
|
- Experimental support for signing document was added but it is not yet completed (some help is needed - I think that the calculation of the ByteRange is OK and the problem is on the signature calculation).
|
||||||
|
|
||||||
4.6.004 (2009-04-23)
|
4.6.004 (2009-04-23)
|
||||||
- Method deletePage() was added to delete pages (see example n. 44).
|
- Method deletePage() was added to delete pages (see example n. 44).
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@ http://sourceforge.net/donate/index.php?group_id=128076
|
|||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
|
|
||||||
Name: TCPDF
|
Name: TCPDF
|
||||||
Version: 4.6.004
|
Version: 4.6.005
|
||||||
Release date: 2009-04-23
|
Release date: 2009-04-25
|
||||||
Author: Nicola Asuni
|
Author: Nicola Asuni
|
||||||
|
|
||||||
Copyright (c) 2001-2009:
|
Copyright (c) 2001-2009:
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
<div class="credit">
|
<div class="credit">
|
||||||
<hr />
|
<hr />
|
||||||
Documentation generated on Thu, 23 Apr 2009 10:53:11 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:47 +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
@ -1368,7 +1368,7 @@ $type)</code>
|
|||||||
|
|
||||||
<div class="credit">
|
<div class="credit">
|
||||||
<hr />
|
<hr />
|
||||||
Documentation generated on Thu, 23 Apr 2009 10:53:11 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:47 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -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, 23 Apr 2009 10:53:11 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:47 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -507,7 +507,7 @@ Configuration file for TCPDF.<br /><br /><br /><br />
|
|||||||
|
|
||||||
<div class="credit">
|
<div class="credit">
|
||||||
<hr />
|
<hr />
|
||||||
Documentation generated on Thu, 23 Apr 2009 10:53:17 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:53 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -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, 23 Apr 2009 10:53:12 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:48 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -65,7 +65,7 @@ Source Location: /tcpdf.php<br /><br />
|
|||||||
</div><br /><br />
|
</div><br /><br />
|
||||||
|
|
||||||
<h2>Page Details:</h2>
|
<h2>Page Details:</h2>
|
||||||
This is a PHP class for generating PDF documents without requiring external extensions.<br /><br /><br /><p>TCPDF project (http://www.tcpdf.org) was originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br /> <h3>TCPDF main features are:</h3> <ul><li>no external libraries are required for the basic functions;</li><li>supports all ISO page formats;</li><li>supports UTF-8 Unicode and Right-To-Left languages;</li><li>supports document encryption;</li><li>includes methods to publish some XHTML code;</li><li>includes graphic (geometric) and transformation methods;</li><li>includes bookmarks;</li><li>includes Javascript and forms support;</li><li>includes a method to print various barcode formats;</li><li>supports TrueTypeUnicode, TrueType, Type1 and CID-0 fonts;</li><li>supports custom page formats, margins and units of measure;</li><li>includes methods for page header and footer management;</li><li>supports automatic page break;</li><li>supports automatic page numbering and page groups;</li><li>supports automatic line break and text justification;</li><li>supports JPEG and PNG images whitout GD library and all images supported by GD: GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM;</li><li>supports stroke and clipping mode for text;</li><li>supports clipping masks;</li><li>supports Grayscale, RGB and CMYK colors and transparency;</li><li>supports links and annotations;</li><li>supports page compression (requires zlib extension);</li><li>supports PDF user's rights.</li></ul> Tools to encode your unicode fonts are on fonts/utils directory.</p></p><br /><br /><br />
|
This is a PHP class for generating PDF documents without requiring external extensions.<br /><br /><br /><p>TCPDF project (http://www.tcpdf.org) was originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br /> <h3>TCPDF main features are:</h3> <ul><li>no external libraries are required for the basic functions;</li><li>supports all ISO page formats;</li><li>supports custom page formats, margins and units of measure;</li><li>supports UTF-8 Unicode and Right-To-Left languages;</li><li>supports TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts;</li><li>supports document encryption;</li><li>includes methods to publish some XHTML code;</li><li>includes graphic (geometric) and transformation methods;</li><li>includes Javascript and forms support;</li><li>includes a method to print various barcode formats: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS;</li><li>includes methods to set Bookmarks and print a Table of Content;</li><li>includes methods to move and delete pages;</li><li>includes methods for automatic page header and footer management;</li><li>supports automatic page break;</li><li>supports automatic page numbering and page groups;</li><li>supports automatic line break and text justification;</li><li>supports JPEG and PNG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/www/formats.html)</li><li>supports stroke and clipping mode for text;</li><li>supports clipping masks;</li><li>supports Grayscale, RGB, CMYK, Spot Colors and Transparencies;</li><li>supports several annotations, including links, text and file attachments;</li><li>supports page compression (requires zlib extension);</li><li>supports text hyphenation.</li><li>supports transactions to UNDO commands.</li></ul> Tools to encode your unicode fonts are on fonts/utils directory.</p></p><br /><br /><br />
|
||||||
<h4>Tags:</h4>
|
<h4>Tags:</h4>
|
||||||
<div class="tags">
|
<div class="tags">
|
||||||
<table border="0" cellspacing="0" cellpadding="0">
|
<table border="0" cellspacing="0" cellpadding="0">
|
||||||
@ -73,7 +73,7 @@ This is a PHP class for generating PDF documents without requiring external exte
|
|||||||
<td><b>author:</b> </td><td>Nicola Asuni</td>
|
<td><b>author:</b> </td><td>Nicola Asuni</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>version:</b> </td><td>4.6.004</td>
|
<td><b>version:</b> </td><td>4.6.005</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>copyright:</b> </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> </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>
|
||||||
@ -92,19 +92,19 @@ This is a PHP class for generating PDF documents without requiring external exte
|
|||||||
<br /><br />
|
<br /><br />
|
||||||
<h4>Includes:</h4>
|
<h4>Includes:</h4>
|
||||||
<div class="tags">
|
<div class="tags">
|
||||||
require_once(dirname(__FILE__).'/config/tcpdf_config.php') [line 131]<br />
|
require_once(dirname(__FILE__).'/config/tcpdf_config.php') [line 135]<br />
|
||||||
main configuration file<br /><br />require_once(dirname(__FILE__).'/htmlcolors.php') [line 143]<br />
|
main configuration file<br /><br />require_once(dirname(__FILE__).'/htmlcolors.php') [line 147]<br />
|
||||||
html colors table<br /><br />require_once(dirname(__FILE__).'/unicode_data.php') [line 138]<br />
|
html colors table<br /><br />require_once(dirname(__FILE__).'/unicode_data.php') [line 142]<br />
|
||||||
unicode data<br /><br /></div>
|
unicode data<br /><br /></div>
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<hr />
|
<hr />
|
||||||
<a name="definePDF_PRODUCER"></a>
|
<a name="definePDF_PRODUCER"></a>
|
||||||
<h3>PDF_PRODUCER <span class="smalllinenumber">[line 149]</span></h3>
|
<h3>PDF_PRODUCER <span class="smalllinenumber">[line 153]</span></h3>
|
||||||
<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.6.004 (http://www.tcpdf.org)'</code>
|
<code>PDF_PRODUCER = 'TCPDF 4.6.005 (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, 23 Apr 2009 10:53:12 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:48 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -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, 23 Apr 2009 10:53:17 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:53 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -875,6 +875,12 @@
|
|||||||
<div>
|
<div>
|
||||||
<h2>s</h2>
|
<h2>s</h2>
|
||||||
<dl>
|
<dl>
|
||||||
|
<dt><b>$sign</b></dt>
|
||||||
|
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$sign">TCPDF::$sign</a><br> If true enables document signing</dd>
|
||||||
|
<dt><b>$signature_data</b></dt>
|
||||||
|
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$signature_data">TCPDF::$signature_data</a><br> Signature data</dd>
|
||||||
|
<dt><b>$signature_max_lenght</b></dt>
|
||||||
|
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$signature_max_lenght">TCPDF::$signature_max_lenght</a><br> Signature max lenght</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> 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> Array of Spot colors</dd>
|
||||||
<dt><b>$state</b></dt>
|
<dt><b>$state</b></dt>
|
||||||
@ -896,9 +902,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> 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> 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 tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetBarcode">TCPDF::setBarcode()</a><br> 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> Set the barcode.</dd>
|
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodsetBarcode">TCPDFBarcode::setBarcode()</a><br> 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> Set document 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> 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> Set the booklet mode for double-sided pages.</dd>
|
||||||
<dt><b>setBuffer</b></dt>
|
<dt><b>setBuffer</b></dt>
|
||||||
@ -1013,6 +1019,8 @@
|
|||||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetRightMargin">TCPDF::SetRightMargin()</a><br> Defines the right margin. The method can be called before creating the first page.</dd>
|
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetRightMargin">TCPDF::SetRightMargin()</a><br> Defines the right margin. The method can be called before creating the first page.</dd>
|
||||||
<dt><b>setRTL</b></dt>
|
<dt><b>setRTL</b></dt>
|
||||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetRTL">TCPDF::setRTL()</a><br> Enable or disable Right-To-Left language mode</dd>
|
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetRTL">TCPDF::setRTL()</a><br> Enable or disable Right-To-Left language mode</dd>
|
||||||
|
<dt><b>setSignature</b></dt>
|
||||||
|
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetSignature">TCPDF::setSignature()</a></dd>
|
||||||
<dt><b>SetSubject</b></dt>
|
<dt><b>SetSubject</b></dt>
|
||||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetSubject">TCPDF::SetSubject()</a><br> Defines the subject of the document.</dd>
|
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetSubject">TCPDF::SetSubject()</a><br> Defines the subject of the document.</dd>
|
||||||
<dt><b>setTableHeader</b></dt>
|
<dt><b>setTableHeader</b></dt>
|
||||||
@ -1352,7 +1360,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, 23 Apr 2009 10:53:11 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:47 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -1024,6 +1024,12 @@
|
|||||||
<div>
|
<div>
|
||||||
<h2>s</h2>
|
<h2>s</h2>
|
||||||
<dl>
|
<dl>
|
||||||
|
<dt><b>$sign</b></dt>
|
||||||
|
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$sign">TCPDF::$sign</a><br> If true enables document signing</dd>
|
||||||
|
<dt><b>$signature_data</b></dt>
|
||||||
|
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$signature_data">TCPDF::$signature_data</a><br> Signature data</dd>
|
||||||
|
<dt><b>$signature_max_lenght</b></dt>
|
||||||
|
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$signature_max_lenght">TCPDF::$signature_max_lenght</a><br> Signature max lenght</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> 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> Array of Spot colors</dd>
|
||||||
<dt><b>$state</b></dt>
|
<dt><b>$state</b></dt>
|
||||||
@ -1045,9 +1051,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> 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> 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 tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetBarcode">TCPDF::setBarcode()</a><br> 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> Set the barcode.</dd>
|
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodsetBarcode">TCPDFBarcode::setBarcode()</a><br> 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> Set document 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> 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> Set the booklet mode for double-sided pages.</dd>
|
||||||
<dt><b>setBuffer</b></dt>
|
<dt><b>setBuffer</b></dt>
|
||||||
@ -1162,6 +1168,8 @@
|
|||||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetRightMargin">TCPDF::SetRightMargin()</a><br> Defines the right margin. The method can be called before creating the first page.</dd>
|
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetRightMargin">TCPDF::SetRightMargin()</a><br> Defines the right margin. The method can be called before creating the first page.</dd>
|
||||||
<dt><b>setRTL</b></dt>
|
<dt><b>setRTL</b></dt>
|
||||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetRTL">TCPDF::setRTL()</a><br> Enable or disable Right-To-Left language mode</dd>
|
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetRTL">TCPDF::setRTL()</a><br> Enable or disable Right-To-Left language mode</dd>
|
||||||
|
<dt><b>setSignature</b></dt>
|
||||||
|
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetSignature">TCPDF::setSignature()</a></dd>
|
||||||
<dt><b>SetSubject</b></dt>
|
<dt><b>SetSubject</b></dt>
|
||||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetSubject">TCPDF::SetSubject()</a><br> Defines the subject of the document.</dd>
|
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetSubject">TCPDF::SetSubject()</a><br> Defines the subject of the document.</dd>
|
||||||
<dt><b>setTableHeader</b></dt>
|
<dt><b>setTableHeader</b></dt>
|
||||||
@ -1375,7 +1383,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, 23 Apr 2009 10:53:11 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:47 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -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, 23 Apr 2009 10:53:17 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:53 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -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, 23 Apr 2009 10:53:11 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:47 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
@ -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, 23 Apr 2009 10:53:11 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
Documentation generated on Sat, 25 Apr 2009 10:53:47 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.1</a>
|
||||||
</div>
|
</div>
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
</td>
|
</td>
|
||||||
|
294
tcpdf.php
294
tcpdf.php
@ -2,9 +2,9 @@
|
|||||||
//============================================================+
|
//============================================================+
|
||||||
// File name : tcpdf.php
|
// File name : tcpdf.php
|
||||||
// Begin : 2002-08-03
|
// Begin : 2002-08-03
|
||||||
// Last Update : 2009-04-23
|
// Last Update : 2009-04-25
|
||||||
// Author : Nicola Asuni - info@tecnick.com - http://www.tcpdf.org
|
// Author : Nicola Asuni - info@tecnick.com - http://www.tcpdf.org
|
||||||
// Version : 4.6.004
|
// Version : 4.6.005
|
||||||
// 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.
|
||||||
@ -35,27 +35,29 @@
|
|||||||
//
|
//
|
||||||
// Main features:
|
// Main features:
|
||||||
// * no external libraries are required for the basic functions;
|
// * no external libraries are required for the basic functions;
|
||||||
// * supports all ISO page formats;
|
// * supports all ISO page formats;
|
||||||
// * supports UTF-8 Unicode and Right-To-Left languages;
|
// * supports custom page formats, margins and units of measure;
|
||||||
|
// * supports UTF-8 Unicode and Right-To-Left languages;
|
||||||
|
// * supports TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts;
|
||||||
// * supports document encryption;
|
// * supports document encryption;
|
||||||
// * includes methods to publish some XHTML code;
|
// * includes methods to publish some XHTML code;
|
||||||
// * includes graphic (geometric) and transformation methods;
|
// * includes graphic (geometric) and transformation methods;
|
||||||
// * includes bookmarks;
|
|
||||||
// * includes Javascript and forms support;
|
// * includes Javascript and forms support;
|
||||||
// * includes a method to print various barcode formats;
|
// * includes a method to print various barcode formats: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS;
|
||||||
// * supports TrueTypeUnicode, TrueType, Type1 and CID-0 fonts;
|
// * includes methods to set Bookmarks and print a Table of Content;
|
||||||
// * supports custom page formats, margins and units of measure;
|
// * includes methods to move and delete pages;
|
||||||
// * includes methods for page header and footer management;
|
// * includes methods for automatic page header and footer management;
|
||||||
// * supports automatic page break;
|
// * supports automatic page break;
|
||||||
// * supports automatic page numbering and page groups;
|
// * supports automatic page numbering and page groups;
|
||||||
// * supports automatic line break and text justification;
|
// * supports automatic line break and text justification;
|
||||||
// * supports JPEG and PNG images whitout GD library and all images supported by GD: GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM;
|
// * supports JPEG and PNG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/www/formats.html)
|
||||||
// * supports stroke and clipping mode for text;
|
// * supports stroke and clipping mode for text;
|
||||||
// * supports clipping masks;
|
// * supports clipping masks;
|
||||||
// * supports Grayscale, RGB, CMYK, Spot colors and transparency;
|
// * supports Grayscale, RGB, CMYK, Spot Colors and Transparencies;
|
||||||
// * supports links and annotations;
|
// * supports several annotations, including links, text and file attachments;
|
||||||
// * supports page compression (requires zlib extension);
|
// * supports page compression (requires zlib extension);
|
||||||
// * supports PDF user's rights.
|
// * supports text hyphenation.
|
||||||
|
// * supports transactions to UNDO commands.
|
||||||
//
|
//
|
||||||
// -----------------------------------------------------------
|
// -----------------------------------------------------------
|
||||||
// THANKS TO:
|
// THANKS TO:
|
||||||
@ -92,28 +94,30 @@
|
|||||||
* TCPDF project (http://www.tcpdf.org) was 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) was originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br>
|
||||||
* <h3>TCPDF main features are:</h3>
|
* <h3>TCPDF main features are:</h3>
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>no external libraries are required for the basic functions;</li>
|
* <li>no external libraries are required for the basic functions;</li>
|
||||||
* <li>supports all ISO page formats;</li>
|
* <li>supports all ISO page formats;</li>
|
||||||
* <li>supports UTF-8 Unicode and Right-To-Left languages;</li>
|
* <li>supports custom page formats, margins and units of measure;</li>
|
||||||
* <li>supports document encryption;</li>
|
* <li>supports UTF-8 Unicode and Right-To-Left languages;</li>
|
||||||
* <li>includes methods to publish some XHTML code;</li>
|
* <li>supports TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts;</li>
|
||||||
* <li>includes graphic (geometric) and transformation methods;</li>
|
* <li>supports document encryption;</li>
|
||||||
* <li>includes bookmarks;</li>
|
* <li>includes methods to publish some XHTML code;</li>
|
||||||
* <li>includes Javascript and forms support;</li>
|
* <li>includes graphic (geometric) and transformation methods;</li>
|
||||||
* <li>includes a method to print various barcode formats;</li>
|
* <li>includes Javascript and forms support;</li>
|
||||||
* <li>supports TrueTypeUnicode, TrueType, Type1 and CID-0 fonts;</li>
|
* <li>includes a method to print various barcode formats: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS;</li>
|
||||||
* <li>supports custom page formats, margins and units of measure;</li>
|
* <li>includes methods to set Bookmarks and print a Table of Content;</li>
|
||||||
* <li>includes methods for page header and footer management;</li>
|
* <li>includes methods to move and delete pages;</li>
|
||||||
* <li>supports automatic page break;</li>
|
* <li>includes methods for automatic page header and footer management;</li>
|
||||||
* <li>supports automatic page numbering and page groups;</li>
|
* <li>supports automatic page break;</li>
|
||||||
* <li>supports automatic line break and text justification;
|
* <li>supports automatic page numbering and page groups;</li>
|
||||||
* <li>supports JPEG and PNG images whitout GD library and all images supported by GD: GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM;</li>
|
* <li>supports automatic line break and text justification;</li>
|
||||||
* <li>supports stroke and clipping mode for text;</li>
|
* <li>supports JPEG and PNG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/www/formats.html)</li>
|
||||||
* <li>supports clipping masks;</li>
|
* <li>supports stroke and clipping mode for text;</li>
|
||||||
* <li>supports Grayscale, RGB and CMYK colors and transparency;</li>
|
* <li>supports clipping masks;</li>
|
||||||
* <li>supports links and annotations;</li>
|
* <li>supports Grayscale, RGB, CMYK, Spot Colors and Transparencies;</li>
|
||||||
* <li>supports page compression (requires zlib extension);</li>
|
* <li>supports several annotations, including links, text and file attachments;</li>
|
||||||
* <li>supports PDF user's rights.</li>
|
* <li>supports page compression (requires zlib extension);</li>
|
||||||
|
* <li>supports text hyphenation.</li>
|
||||||
|
* <li>supports transactions to UNDO commands.</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* Tools to encode your unicode fonts are on fonts/utils directory.</p>
|
* Tools to encode your unicode fonts are on fonts/utils directory.</p>
|
||||||
* @package com.tecnick.tcpdf
|
* @package com.tecnick.tcpdf
|
||||||
@ -122,7 +126,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.6.004
|
* @version 4.6.005
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -146,14 +150,14 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
/**
|
/**
|
||||||
* define default PDF document producer
|
* define default PDF document producer
|
||||||
*/
|
*/
|
||||||
define('PDF_PRODUCER', 'TCPDF 4.6.004 (http://www.tcpdf.org)');
|
define('PDF_PRODUCER', 'TCPDF 4.6.005 (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.6.004
|
* @version 4.6.005
|
||||||
* @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
|
||||||
@ -1261,8 +1265,28 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
* @since 4.5.037 (2009-04-07)
|
* @since 4.5.037 (2009-04-07)
|
||||||
*/
|
*/
|
||||||
protected $cache_size_UTF8StringToArray = 0;
|
protected $cache_size_UTF8StringToArray = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If true enables document signing
|
||||||
|
* @access protected
|
||||||
|
* @since 4.6.005 (2009-04-24)
|
||||||
|
*/
|
||||||
|
protected $sign = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Signature data
|
||||||
|
* @access protected
|
||||||
|
* @since 4.6.005 (2009-04-24)
|
||||||
|
*/
|
||||||
|
protected $signature_data = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Signature max lenght
|
||||||
|
* @access protected
|
||||||
|
* @since 4.6.005 (2009-04-24)
|
||||||
|
*/
|
||||||
|
protected $signature_max_lenght = 5120;
|
||||||
|
|
||||||
//------------------------------------------------------------
|
//------------------------------------------------------------
|
||||||
// METHODS
|
// METHODS
|
||||||
//------------------------------------------------------------
|
//------------------------------------------------------------
|
||||||
@ -1369,7 +1393,8 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
$this->fgcolor = array('R' => 0, 'G' => 0, 'B' => 0);
|
$this->fgcolor = array('R' => 0, 'G' => 0, 'B' => 0);
|
||||||
$this->bgcolor = array('R' => 255, 'G' => 255, 'B' => 255);
|
$this->bgcolor = array('R' => 255, 'G' => 255, 'B' => 255);
|
||||||
$this->extgstates = array();
|
$this->extgstates = array();
|
||||||
// user's rights
|
// user's rights
|
||||||
|
$this->sign = false;
|
||||||
$this->ur = false;
|
$this->ur = false;
|
||||||
$this->ur_document = '/FullSave';
|
$this->ur_document = '/FullSave';
|
||||||
$this->ur_annots = '/Create/Delete/Modify/Copy/Import/Export';
|
$this->ur_annots = '/Create/Delete/Modify/Copy/Import/Export';
|
||||||
@ -4910,6 +4935,67 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
if ($dest != 'F') {
|
if ($dest != 'F') {
|
||||||
$name = preg_replace('/[\s]+/', '_', $name);
|
$name = preg_replace('/[\s]+/', '_', $name);
|
||||||
$name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name);
|
$name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name);
|
||||||
|
}
|
||||||
|
if ($this->sign) {
|
||||||
|
// *** apply digital signature to the document (NOT WORKING) ***
|
||||||
|
// get the document content
|
||||||
|
$pdfdoc = $this->getBuffer();
|
||||||
|
// remove last newline
|
||||||
|
$pdfdoc = substr($pdfdoc, 0, -1);
|
||||||
|
// Remove the original buffer
|
||||||
|
if (isset($this->diskcache) AND $this->diskcache) {
|
||||||
|
// remove buffer file from cache
|
||||||
|
unlink($this->buffer);
|
||||||
|
}
|
||||||
|
unset($this->buffer);
|
||||||
|
// remove filler space
|
||||||
|
$tmppos = strpos($pdfdoc, '/ByteRange[0 ********** ********** **********]') + 58;
|
||||||
|
$pdfdoc = substr($pdfdoc, 0, $tmppos).substr($pdfdoc, $tmppos + $this->signature_max_lenght);
|
||||||
|
// define the ByteRange
|
||||||
|
$byte_range = array();
|
||||||
|
$byte_range[0] = 0;
|
||||||
|
$byte_range[1] = $tmppos - 1;
|
||||||
|
$byte_range[2] = $byte_range[1] + $this->signature_max_lenght;
|
||||||
|
$byte_range[3] = strlen($pdfdoc) - $byte_range[1];
|
||||||
|
// replace the ByteRange
|
||||||
|
$byterange = sprintf('/ByteRange[0 %010u %010u %010u]', $byte_range[1], $byte_range[2], $byte_range[3]);
|
||||||
|
$pdfdoc = str_replace('/ByteRange[0 ********** ********** **********]', $byterange, $pdfdoc);
|
||||||
|
// write the document to a temporary folder
|
||||||
|
$tempdoc = tempnam(K_PATH_CACHE, 'tmppdf_');
|
||||||
|
$f = fopen($tempdoc, 'wb');
|
||||||
|
if (!$f) {
|
||||||
|
$this->Error('Unable to create temporary file: '.$tempdoc);
|
||||||
|
}
|
||||||
|
$pdfdoc_lenght = strlen($pdfdoc);
|
||||||
|
fwrite($f, $pdfdoc, $pdfdoc_lenght);
|
||||||
|
fclose($f);
|
||||||
|
// get digital signature.
|
||||||
|
// IS THE FOLLOWING PROCEDURE CORRECT? THE SIGNED DOCUMENTS ARE NOT VALID!
|
||||||
|
$tempsign = tempnam(K_PATH_CACHE, 'tmpsig_');
|
||||||
|
if (empty($this->signature_data['extracerts'])) {
|
||||||
|
openssl_pkcs7_sign($tempdoc, $tempsign, $this->signature_data['signcert'], array($this->signature_data['privkey'], $this->signature_data['password']), array(), PKCS7_BINARY | PKCS7_DETACHED);
|
||||||
|
} else {
|
||||||
|
openssl_pkcs7_sign($tempdoc, $tempsign, $this->signature_data['signcert'], array($this->signature_data['privkey'], $this->signature_data['password']), array(), PKCS7_BINARY | PKCS7_DETACHED, $this->signature_data['extracerts']);
|
||||||
|
}
|
||||||
|
unlink($tempdoc);
|
||||||
|
// read signature
|
||||||
|
$signature = file_get_contents($tempsign, false, null, $pdfdoc_lenght);
|
||||||
|
unlink($tempsign);
|
||||||
|
// extract signature
|
||||||
|
$signature = substr($signature, (strpos($signature, "%%EOF\n\n------") + 13));
|
||||||
|
$tmparr = explode("\n\n", $signature);
|
||||||
|
$signature = $tmparr[1];
|
||||||
|
unset($tmparr);
|
||||||
|
// decode signature
|
||||||
|
$signature = base64_decode(trim($signature));
|
||||||
|
// convert signature to hex
|
||||||
|
$signature = current(unpack('H*', $signature));
|
||||||
|
$signature = str_pad($signature, $this->signature_max_lenght, '0');
|
||||||
|
// Add signature to the document
|
||||||
|
$pdfdoc = substr($pdfdoc, 0, $byte_range[1]).$signature.substr($pdfdoc, (0 - $byte_range[3]));
|
||||||
|
$this->diskcache = false;
|
||||||
|
$this->buffer = &$pdfdoc;
|
||||||
|
$this->bufferlen = strlen($pdfdoc);
|
||||||
}
|
}
|
||||||
switch($dest) {
|
switch($dest) {
|
||||||
case 'I': {
|
case 'I': {
|
||||||
@ -4996,7 +5082,16 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
unlink($this->buffer);
|
unlink($this->buffer);
|
||||||
}
|
}
|
||||||
foreach (array_keys(get_object_vars($this)) as $val) {
|
foreach (array_keys(get_object_vars($this)) as $val) {
|
||||||
if ($destroyall OR (($val != 'internal_encoding') AND ($val != 'state') AND ($val != 'bufferlen') AND ($val != 'buffer') AND ($val != 'diskcache'))) {
|
if ($destroyall OR (
|
||||||
|
($val != 'internal_encoding')
|
||||||
|
AND ($val != 'state')
|
||||||
|
AND ($val != 'bufferlen')
|
||||||
|
AND ($val != 'buffer')
|
||||||
|
AND ($val != 'diskcache')
|
||||||
|
AND ($val != 'sign')
|
||||||
|
AND ($val != 'signature_data')
|
||||||
|
AND ($val != 'signature_max_lenght')
|
||||||
|
)) {
|
||||||
if (!$preserve_objcopy OR ($val != 'objcopy')) {
|
if (!$preserve_objcopy OR ($val != 'objcopy')) {
|
||||||
unset($this->$val);
|
unset($this->$val);
|
||||||
}
|
}
|
||||||
@ -6117,7 +6212,6 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
$v = $this->n_ocg_view.' 0 R';
|
$v = $this->n_ocg_view.' 0 R';
|
||||||
$as = '<</Event /Print /OCGs ['.$p.' '.$v.'] /Category [/Print]>> <</Event /View /OCGs ['.$p.' '.$v.'] /Category [/View]>>';
|
$as = '<</Event /Print /OCGs ['.$p.' '.$v.'] /Category [/Print]>> <</Event /View /OCGs ['.$p.' '.$v.'] /Category [/View]>>';
|
||||||
$this->_out('/OCProperties <</OCGs ['.$p.' '.$v.'] /D <</ON ['.$p.'] /OFF ['.$v.'] /AS ['.$as.']>>>>');
|
$this->_out('/OCProperties <</OCGs ['.$p.' '.$v.'] /D <</ON ['.$p.'] /OFF ['.$v.'] /AS ['.$as.']>>>>');
|
||||||
$this->_putuserrights();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -6232,7 +6326,8 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
//Catalog
|
//Catalog
|
||||||
$this->_newobj();
|
$this->_newobj();
|
||||||
$this->_out('<<');
|
$this->_out('<<');
|
||||||
$this->_putcatalog();
|
$this->_putcatalog();
|
||||||
|
$this->_putuserrights();
|
||||||
$this->_out('>>');
|
$this->_out('>>');
|
||||||
$this->_out('endobj');
|
$this->_out('endobj');
|
||||||
//Cross-ref
|
//Cross-ref
|
||||||
@ -9067,57 +9162,58 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Enable Write permissions for PDF Reader.
|
* Enable Write permissions for PDF Reader.
|
||||||
* (EXPERIMENTAL - ONLY WORKS WITH SOME ACROBAT READER VERSIONS)
|
* (EXPERIMENTAL - NOT WORKING)
|
||||||
* TO BE COMPLETED
|
|
||||||
* @access protected
|
* @access protected
|
||||||
* @author Nicola Asuni
|
* @author Nicola Asuni
|
||||||
* @since 2.9.000 (2008-03-26)
|
* @since 2.9.000 (2008-03-26)
|
||||||
*/
|
*/
|
||||||
protected function _putuserrights() {
|
protected function _putuserrights() {
|
||||||
if (!$this->ur) {
|
if (!$this->sign) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$this->_out('/Perms');
|
$this->_out('/Perms');
|
||||||
$this->_out('<<');
|
$this->_out('<<');
|
||||||
$this->_out('/UR3');
|
$this->_out('/UR3');
|
||||||
$this->_out('<<');
|
$this->_out('<<');
|
||||||
$this->_out('/Type/Sig');
|
$this->_out('/Type/Sig');
|
||||||
$this->_out('/Filter/Adobe.PPKLite');
|
$this->_out('/Filter/Adobe.PPKLite');
|
||||||
$this->_out('/SubFilter/adbe.pkcs7.detached');
|
$this->_out('/SubFilter/adbe.pkcs7.detached');
|
||||||
$this->_out('/Name(TCPDF)');
|
$this->_out('/ByteRange[0 ********** ********** **********]');
|
||||||
$this->_out('/ByteRange[0 0 0 0]');
|
$this->_out('/Contents<>'.str_repeat(' ', $this->signature_max_lenght));
|
||||||
$this->_out('/Contents<>');
|
if ($this->ur) {
|
||||||
$this->_out('/M '.$this->_datastring('D:'.date('YmdHis')));
|
$this->_out('/Reference');
|
||||||
$this->_out('/Reference');
|
$this->_out('[');
|
||||||
$this->_out('[');
|
$this->_out('<<');
|
||||||
$this->_out('<<');
|
$this->_out('/Type/SigRef');
|
||||||
$this->_out('/Type/SigRef');
|
$this->_out('/TransformMethod/UR3');
|
||||||
$this->_out('/TransformMethod/UR3');
|
$this->_out('/TransformParams');
|
||||||
$this->_out('/TransformParams');
|
$this->_out('<<');
|
||||||
$this->_out('<<');
|
$this->_out('/Type/TransformParams');
|
||||||
$this->_out('/Type/TransformParams');
|
$this->_out('/V/2.2');
|
||||||
$this->_out('/V/2.2');
|
if (!$this->empty_string($this->ur_document)) {
|
||||||
if (!$this->empty_string($this->ur_document)) {
|
$this->_out('/Document['.$this->ur_document.']');
|
||||||
$this->_out('/Document['.$this->ur_document.']');
|
}
|
||||||
}
|
if (!$this->empty_string($this->ur_annots)) {
|
||||||
if (!$this->empty_string($this->ur_annots)) {
|
$this->_out('/Annots['.$this->ur_annots.']');
|
||||||
$this->_out('/Annots['.$this->ur_annots.']');
|
}
|
||||||
}
|
if (!$this->empty_string($this->ur_form)) {
|
||||||
if (!$this->empty_string($this->ur_form)) {
|
$this->_out('/Form['.$this->ur_form.']');
|
||||||
$this->_out('/Form['.$this->ur_form.']');
|
}
|
||||||
}
|
if (!$this->empty_string($this->ur_signature)) {
|
||||||
if (!$this->empty_string($this->ur_signature)) {
|
$this->_out('/Signature['.$this->ur_signature.']');
|
||||||
$this->_out('/Signature['.$this->ur_signature.']');
|
}
|
||||||
}
|
$this->_out('>>');
|
||||||
$this->_out('>>');
|
$this->_out('>>');
|
||||||
$this->_out('>>');
|
$this->_out(']');
|
||||||
$this->_out(']');
|
}
|
||||||
|
$this->_out('/M '.$this->_datastring('D:'.date('YmdHisO')));
|
||||||
$this->_out('>>');
|
$this->_out('>>');
|
||||||
$this->_out('>>');
|
$this->_out('>>');
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set User's Rights for PDF Reader
|
* Set User's Rights for PDF Reader
|
||||||
|
* (EXPERIMENTAL - NOT WORKING)
|
||||||
* Check the PDF Reference 8.7.1 Transform Methods,
|
* Check the PDF Reference 8.7.1 Transform Methods,
|
||||||
* Table 8.105 Entries in the UR transform parameters dictionary
|
* Table 8.105 Entries in the UR transform parameters dictionary
|
||||||
* @param boolean $enable if true enable user's rights on PDF reader
|
* @param boolean $enable if true enable user's rights on PDF reader
|
||||||
@ -9139,8 +9235,39 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
$this->ur_document = $document;
|
$this->ur_document = $document;
|
||||||
$this->ur_annots = $annots;
|
$this->ur_annots = $annots;
|
||||||
$this->ur_form = $form;
|
$this->ur_form = $form;
|
||||||
$this->ur_signature = $signature;
|
$this->ur_signature = $signature;
|
||||||
}
|
if ($this->ur) {
|
||||||
|
$this->setSignature();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable document signature (requires the OpenSSL Library).
|
||||||
|
* (EXPERIMENTAL - NOT WORKING)
|
||||||
|
* The digital signature improve document authenticity and integrity and allows o enable extra features on Acrobat Reader.
|
||||||
|
* @param mixed $signing_cert signing certificate (string or filename prefixed with 'file://')
|
||||||
|
* @param mixed $private_key private key (string or filename prefixed with 'file://')
|
||||||
|
* @param string $private_key_password password
|
||||||
|
* @param string $extracerts specifies the name of a file containing a bunch of extra certificates to include in the signature which can for example be used to help the recipient to verify the certificate that you used.
|
||||||
|
* @access public
|
||||||
|
* @author Nicola Asuni
|
||||||
|
* @since 4.6.005 (2009-04-24)
|
||||||
|
*/
|
||||||
|
public function setSignature($signing_cert='', $private_key='', $private_key_password='', $extracerts='') {
|
||||||
|
// to create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.pem -out tcpdf.pem
|
||||||
|
$this->sign = true;
|
||||||
|
$this->signature_data = array();
|
||||||
|
if (strlen($signing_cert) == 0) {
|
||||||
|
$signing_cert = 'file://'.dirname(__FILE__).'/tcpdf.pem';
|
||||||
|
}
|
||||||
|
if (strlen($private_key) == 0) {
|
||||||
|
$private_key = $signing_cert;
|
||||||
|
}
|
||||||
|
$this->signature_data['signcert'] = $signing_cert;
|
||||||
|
$this->signature_data['privkey'] = $private_key;
|
||||||
|
$this->signature_data['password'] = $private_key_password;
|
||||||
|
$this->signature_data['extracerts'] = $extracerts;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a new page group.
|
* Create a new page group.
|
||||||
@ -12683,8 +12810,11 @@ if (!class_exists('TCPDF', false)) {
|
|||||||
$retval = ($value * 12) / $k;
|
$retval = ($value * 12) / $k;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'px':
|
|
||||||
case 'pt': {
|
case 'pt': {
|
||||||
|
$retval = $value / $k;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'px': {
|
||||||
$retval = $this->pixelsToUnits($value);
|
$retval = $this->pixelsToUnits($value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user