mirror of
https://github.com/vdm-io/tcpdf.git
synced 2024-11-22 12:55:10 +00:00
5.0.005
This commit is contained in:
parent
2f60557847
commit
cedf3a094b
@ -1,3 +1,8 @@
|
||||
5.0.005 (2010-05-12)
|
||||
- WARNING: The logic of permissions on the SetProtection() method has been inverted and extended (see example 16). Now you have to specify the features you want to block.
|
||||
- SetProtection() method was extended to support RSA and AES 128 encryption and public-keys (see example 16).
|
||||
- Bug #2999489 "setEqualColumns() and TOC uses wrong columns" was fixed (see the example 10).
|
||||
|
||||
5.0.004 (2010-05-10)
|
||||
- HTML line alignment when using sub and sup tags was fixed.
|
||||
|
||||
|
@ -8,8 +8,8 @@ http://sourceforge.net/donate/index.php?group_id=128076
|
||||
------------------------------------------------------------
|
||||
|
||||
Name: TCPDF
|
||||
Version: 5.0.004
|
||||
Release date: 2010-05-10
|
||||
Version: 5.0.005
|
||||
Release date: 2010-05-12
|
||||
Author: Nicola Asuni
|
||||
|
||||
Copyright (c) 2001-2010:
|
||||
|
@ -55,7 +55,7 @@
|
||||
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:44 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -5548,7 +5548,7 @@ $frame)</code>
|
||||
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:45 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +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
@ -296,7 +296,7 @@ $type)</code>
|
||||
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:44 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -1374,7 +1374,7 @@ $type)</code>
|
||||
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:45 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -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 Mon, 10 May 2010 18:33:44 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -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 Mon, 10 May 2010 18:33:45 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -539,7 +539,7 @@ Configuration file for TCPDF.<br /><br /><br /><br />
|
||||
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:48 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:18 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -94,7 +94,7 @@ Array of WEB safe colors.<br /><br /><br /><br />
|
||||
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:45 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -477,7 +477,7 @@ string $string, [int $split_length = 1])</code>
|
||||
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:45 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -79,7 +79,7 @@ This is a PHP class for generating PDF documents without requiring external exte
|
||||
<td><b>author:</b> </td><td>Nicola Asuni</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>version:</b> </td><td>5.0.004</td>
|
||||
<td><b>version:</b> </td><td>5.0.005</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>copyright:</b> </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 5.0.004 (http://www.tcpdf.org)'</code>
|
||||
<code>PDF_PRODUCER = 'TCPDF 5.0.005 (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 Mon, 10 May 2010 18:33:46 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:15 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -243,7 +243,7 @@ Unicode Include file for TCPDF.<br /><br /><br /><br />
|
||||
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:48 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:18 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -311,6 +311,8 @@
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodcommitTransaction">TCPDF::commitTransaction()</a><br> Delete the copy of the current TCPDF object used for undo operation.</dd>
|
||||
<dt><b>convertData</b></dt>
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodconvertData">QRcode::convertData()</a><br> convertData</dd>
|
||||
<dt><b>convertHexStringToString</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodconvertHexStringToString">TCPDF::convertHexStringToString()</a><br> Convert hexadecimal string to string</dd>
|
||||
<dt><b>convertHTMLColorToDec</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodconvertHTMLColorToDec">TCPDF::convertHTMLColorToDec()</a><br> Returns an associative array (keys: R,G,B) from an html color name or a six-digit or three-digit hexadecimal color representation (i.e. #3FE5AA or #7FF).</dd>
|
||||
<dt><b>convertSVGtMatrix</b></dt>
|
||||
@ -383,12 +385,12 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$embedded_start_obj_id">TCPDF::$embedded_start_obj_id</a><br> Start ID for embedded file objects</dd>
|
||||
<dt><b>$encoding</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$encoding">TCPDF::$encoding</a></dd>
|
||||
<dt><b>$encryptdata</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$encryptdata">TCPDF::$encryptdata</a><br> Array containing encryption settings</dd>
|
||||
<dt><b>$encrypted</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$encrypted">TCPDF::$encrypted</a><br> Indicates whether document is protected</dd>
|
||||
<dt><b>$encryption_key</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$encryption_key">TCPDF::$encryption_key</a><br> RC4 encryption key</dd>
|
||||
<dt><b>$enc_obj_id</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$enc_obj_id">TCPDF::$enc_obj_id</a><br> encryption object id</dd>
|
||||
<dt><b>$enc_padding</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$enc_padding">TCPDF::$enc_padding</a><br> Encryption padding</dd>
|
||||
<dt><b>$endlinex</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$endlinex">TCPDF::$endlinex</a><br> End position of the latest inserted line</dd>
|
||||
<dt><b>$epsmarker</b></dt>
|
||||
@ -463,6 +465,8 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$fgcolor">TCPDF::$fgcolor</a></dd>
|
||||
<dt><b>$fhPt</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$fhPt">TCPDF::$fhPt</a></dd>
|
||||
<dt><b>$file_id</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$file_id">TCPDF::$file_id</a><br> File ID (used on trailer)</dd>
|
||||
<dt><b>$FillColor</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$FillColor">TCPDF::$FillColor</a></dd>
|
||||
<dt><b>$FontAscent</b></dt>
|
||||
@ -542,11 +546,11 @@
|
||||
<dt><b>getBarcode</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetBarcode">TCPDF::getBarcode()</a><br> Get current barcode.</dd>
|
||||
<dt><b>getBarcodeArray</b></dt>
|
||||
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodgetBarcodeArray">TCPDFBarcode::getBarcodeArray()</a><br> Return an array representations of barcode.</dd>
|
||||
<dt><b>getBarcodeArray</b></dt>
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodgetBarcodeArray">QRcode::getBarcodeArray()</a><br> Returns a barcode array which is readable by TCPDF</dd>
|
||||
<dt><b>getBarcodeArray</b></dt>
|
||||
<dd>in file 2dbarcodes.php, method <a href="com-tecnick-tcpdf/TCPDF2DBarcode.html#methodgetBarcodeArray">TCPDF2DBarcode::getBarcodeArray()</a><br> Return an array representations of barcode.</dd>
|
||||
<dt><b>getBarcodeArray</b></dt>
|
||||
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodgetBarcodeArray">TCPDFBarcode::getBarcodeArray()</a><br> Return an array representations of barcode.</dd>
|
||||
<dt><b>getBitStream</b></dt>
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodgetBitStream">QRcode::getBitStream()</a><br> Returns a stream of bits.</dd>
|
||||
<dt><b>getBorderMode</b></dt>
|
||||
@ -571,6 +575,8 @@
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodgetECCLength">QRcode::getECCLength()</a><br> Return maximum error correction code length (bytes) for the version.</dd>
|
||||
<dt><b>getEccSpec</b></dt>
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodgetEccSpec">QRcode::getEccSpec()</a><br> Return an array of ECC specification.</dd>
|
||||
<dt><b>getEncPermissionsString</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetEncPermissionsString">TCPDF::getEncPermissionsString()</a><br> Convert encryption P value to a string of bytes, low-order byte first.</dd>
|
||||
<dt><b>getFontAscent</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetFontAscent">TCPDF::getFontAscent()</a><br> Return the font ascent value</dd>
|
||||
<dt><b>getFontBuffer</b></dt>
|
||||
@ -681,6 +687,8 @@
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetSVGTransformMatrix">TCPDF::getSVGTransformMatrix()</a><br> Get the tranformation matrix from SVG transform attribute</dd>
|
||||
<dt><b>getTransformationMatrixProduct</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetTransformationMatrixProduct">TCPDF::getTransformationMatrixProduct()</a><br> Get the product of two SVG tranformation matrices</dd>
|
||||
<dt><b>getUserPermissionCode</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetUserPermissionCode">TCPDF::getUserPermissionCode()</a><br> Return the premission code used on encryption (P value).</dd>
|
||||
<dt><b>getVectorsAngle</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetVectorsAngle">TCPDF::getVectorsAngle()</a><br> Returns the angle in radiants between two vectors</dd>
|
||||
<dt><b>getVersionPattern</b></dt>
|
||||
@ -889,10 +897,10 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$l">TCPDF::$l</a></dd>
|
||||
<dt><b>$lasth</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$lasth">TCPDF::$lasth</a></dd>
|
||||
<dt><b>$last_rc4_key</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$last_rc4_key">TCPDF::$last_rc4_key</a><br> last RC4 key encrypted (cached for optimisation)</dd>
|
||||
<dt><b>$last_rc4_key_c</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$last_rc4_key_c">TCPDF::$last_rc4_key_c</a><br> last RC4 computed key</dd>
|
||||
<dt><b>$last_enc_key</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$last_enc_key">TCPDF::$last_enc_key</a><br> last RC4 key encrypted (cached for optimisation)</dd>
|
||||
<dt><b>$last_enc_key_c</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$last_enc_key_c">TCPDF::$last_enc_key_c</a><br> last RC4 computed key</dd>
|
||||
<dt><b>$LayoutMode</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$LayoutMode">TCPDF::$LayoutMode</a></dd>
|
||||
<dt><b>$lengthTableBits</b></dt>
|
||||
@ -1067,8 +1075,6 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$OutlineRoot">TCPDF::$OutlineRoot</a><br> Outline root for bookmark</dd>
|
||||
<dt><b>$outlines</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$outlines">TCPDF::$outlines</a><br> Outlines for bookmark</dd>
|
||||
<dt><b>$Ovalue</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$Ovalue">TCPDF::$Ovalue</a><br> O entry in pdf document</dd>
|
||||
<dt><b>$overline</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$overline">TCPDF::$overline</a></dd>
|
||||
<dt><b>objclone</b></dt>
|
||||
@ -1087,8 +1093,6 @@
|
||||
<div>
|
||||
<h2>p</h2>
|
||||
<dl>
|
||||
<dt><b>$padding</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$padding">TCPDF::$padding</a><br> RC4 padding</dd>
|
||||
<dt><b>$page</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$page">TCPDF::$page</a></dd>
|
||||
<dt><b>$PageAnnots</b></dt>
|
||||
@ -1119,8 +1123,6 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$print_footer">TCPDF::$print_footer</a></dd>
|
||||
<dt><b>$print_header</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$print_header">TCPDF::$print_header</a></dd>
|
||||
<dt><b>$Pvalue</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$Pvalue">TCPDF::$Pvalue</a><br> P entry in pdf document</dd>
|
||||
<dt><b>PageNo</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodPageNo">TCPDF::PageNo()</a><br> Returns the current page number.</dd>
|
||||
<dt><b>PageNoFormatted</b></dt>
|
||||
@ -1514,7 +1516,7 @@
|
||||
<dt><b>setPrintHeader</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetPrintHeader">TCPDF::setPrintHeader()</a><br> Set a flag to print page header.</dd>
|
||||
<dt><b>SetProtection</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetProtection">TCPDF::SetProtection()</a><br> Set document protection</dd>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetProtection">TCPDF::SetProtection()</a><br> Set document protection Remark: the protection against modification is for people who have the full Acrobat product.</dd>
|
||||
<dt><b>setRasterizeVectorImages</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetRasterizeVectorImages">TCPDF::setRasterizeVectorImages()</a><br> Enable/disable rasterization of SVG images using ImageMagick library.</dd>
|
||||
<dt><b>SetRightMargin</b></dt>
|
||||
@ -1673,8 +1675,6 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$ur_form">TCPDF::$ur_form</a><br> Names specifying additional form-field-related usage rights for the document.</dd>
|
||||
<dt><b>$ur_signature</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$ur_signature">TCPDF::$ur_signature</a><br> Names specifying additional signature-related usage rights for the document.</dd>
|
||||
<dt><b>$Uvalue</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$Uvalue">TCPDF::$Uvalue</a><br> U entry in pdf document</dd>
|
||||
<dt><b>unhtmlentities</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodunhtmlentities">TCPDF::unhtmlentities()</a><br> Reverse function for htmlentities.</dd>
|
||||
<dt><b>UniArrSubString</b></dt>
|
||||
@ -1791,6 +1791,8 @@
|
||||
<dl>
|
||||
<dt><b>_addfield</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_addfield">TCPDF::_addfield()</a><br> Adds a javascript form field.</dd>
|
||||
<dt><b>_AES</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_AES">TCPDF::_AES()</a><br> Returns the input text exrypted using AES algorithm and the specified key.</dd>
|
||||
<dt><b>_beginpage</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_beginpage">TCPDF::_beginpage()</a><br> Initialize a new page.</dd>
|
||||
<dt><b>_dataannobjstring</b></dt>
|
||||
@ -1815,6 +1817,8 @@
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_dounderline">TCPDF::_dounderline()</a><br> Underline text.</dd>
|
||||
<dt><b>_dounderlinew</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_dounderlinew">TCPDF::_dounderlinew()</a><br> Underline for rectangular text area.</dd>
|
||||
<dt><b>_encrypt_data</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_encrypt_data">TCPDF::_encrypt_data()</a><br> Encrypt the input string.</dd>
|
||||
<dt><b>_enddoc</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_enddoc">TCPDF::_enddoc()</a><br> Output end of document (EOF).</dd>
|
||||
<dt><b>_endpage</b></dt>
|
||||
@ -1838,7 +1842,7 @@
|
||||
<dt><b>_newobj</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_newobj">TCPDF::_newobj()</a><br> Begin a new object and return the object number.</dd>
|
||||
<dt><b>_objectkey</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_objectkey">TCPDF::_objectkey()</a><br> Compute encryption key depending on object number where the encrypted data is stored</dd>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_objectkey">TCPDF::_objectkey()</a><br> Compute encryption key depending on object number where the encrypted data is stored.</dd>
|
||||
<dt><b>_out</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_out">TCPDF::_out()</a><br> Output a string to the document.</dd>
|
||||
<dt><b>_outCurve</b></dt>
|
||||
@ -1856,7 +1860,7 @@
|
||||
<dt><b>_outRect</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_outRect">TCPDF::_outRect()</a><br> Append a rectangle to the current path as a complete subpath, with lower-left corner (x, y) and dimensions widthand height in user space.</dd>
|
||||
<dt><b>_Ovalue</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_Ovalue">TCPDF::_Ovalue()</a><br> Compute O value (used for RC4 encryption)</dd>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_Ovalue">TCPDF::_Ovalue()</a><br> Compute O value (used for encryption)</dd>
|
||||
<dt><b>_parsejpeg</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_parsejpeg">TCPDF::_parsejpeg()</a><br> Extract info from a JPEG file without using the GD library.</dd>
|
||||
<dt><b>_parsepng</b></dt>
|
||||
@ -1926,7 +1930,7 @@
|
||||
<dt><b>_toPNG</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_toPNG">TCPDF::_toPNG()</a><br> Convert the loaded image to a PNG and then return a structure for the PDF creator.</dd>
|
||||
<dt><b>_Uvalue</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_Uvalue">TCPDF::_Uvalue()</a><br> Compute U value (used for RC4 encryption)</dd>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_Uvalue">TCPDF::_Uvalue()</a><br> Compute U value (used for encryption)</dd>
|
||||
<dt><b>__construct</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method__construct">TCPDF::__construct()</a><br> This is the class constructor.</dd>
|
||||
<dt><b>__construct</b></dt>
|
||||
@ -1942,7 +1946,7 @@
|
||||
<a href="elementindex.html#top">top</a><br>
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:44 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:13 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -96,6 +96,8 @@
|
||||
<dl>
|
||||
<dt><b>_addfield</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_addfield">TCPDF::_addfield()</a><br> Adds a javascript form field.</dd>
|
||||
<dt><b>_AES</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_AES">TCPDF::_AES()</a><br> Returns the input text exrypted using AES algorithm and the specified key.</dd>
|
||||
<dt><b>_beginpage</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_beginpage">TCPDF::_beginpage()</a><br> Initialize a new page.</dd>
|
||||
<dt><b>_dataannobjstring</b></dt>
|
||||
@ -120,6 +122,8 @@
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_dounderline">TCPDF::_dounderline()</a><br> Underline text.</dd>
|
||||
<dt><b>_dounderlinew</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_dounderlinew">TCPDF::_dounderlinew()</a><br> Underline for rectangular text area.</dd>
|
||||
<dt><b>_encrypt_data</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_encrypt_data">TCPDF::_encrypt_data()</a><br> Encrypt the input string.</dd>
|
||||
<dt><b>_enddoc</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_enddoc">TCPDF::_enddoc()</a><br> Output end of document (EOF).</dd>
|
||||
<dt><b>_endpage</b></dt>
|
||||
@ -143,7 +147,7 @@
|
||||
<dt><b>_newobj</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_newobj">TCPDF::_newobj()</a><br> Begin a new object and return the object number.</dd>
|
||||
<dt><b>_objectkey</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_objectkey">TCPDF::_objectkey()</a><br> Compute encryption key depending on object number where the encrypted data is stored</dd>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_objectkey">TCPDF::_objectkey()</a><br> Compute encryption key depending on object number where the encrypted data is stored.</dd>
|
||||
<dt><b>_out</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_out">TCPDF::_out()</a><br> Output a string to the document.</dd>
|
||||
<dt><b>_outCurve</b></dt>
|
||||
@ -161,7 +165,7 @@
|
||||
<dt><b>_outRect</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_outRect">TCPDF::_outRect()</a><br> Append a rectangle to the current path as a complete subpath, with lower-left corner (x, y) and dimensions widthand height in user space.</dd>
|
||||
<dt><b>_Ovalue</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_Ovalue">TCPDF::_Ovalue()</a><br> Compute O value (used for RC4 encryption)</dd>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_Ovalue">TCPDF::_Ovalue()</a><br> Compute O value (used for encryption)</dd>
|
||||
<dt><b>_parsejpeg</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_parsejpeg">TCPDF::_parsejpeg()</a><br> Extract info from a JPEG file without using the GD library.</dd>
|
||||
<dt><b>_parsepng</b></dt>
|
||||
@ -231,7 +235,7 @@
|
||||
<dt><b>_toPNG</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_toPNG">TCPDF::_toPNG()</a><br> Convert the loaded image to a PNG and then return a structure for the PDF creator.</dd>
|
||||
<dt><b>_Uvalue</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_Uvalue">TCPDF::_Uvalue()</a><br> Compute U value (used for RC4 encryption)</dd>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method_Uvalue">TCPDF::_Uvalue()</a><br> Compute U value (used for encryption)</dd>
|
||||
<dt><b>__construct</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#method__construct">TCPDF::__construct()</a><br> This is the class constructor.</dd>
|
||||
<dt><b>__construct</b></dt>
|
||||
@ -486,6 +490,8 @@
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodcommitTransaction">TCPDF::commitTransaction()</a><br> Delete the copy of the current TCPDF object used for undo operation.</dd>
|
||||
<dt><b>convertData</b></dt>
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodconvertData">QRcode::convertData()</a><br> convertData</dd>
|
||||
<dt><b>convertHexStringToString</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodconvertHexStringToString">TCPDF::convertHexStringToString()</a><br> Convert hexadecimal string to string</dd>
|
||||
<dt><b>convertHTMLColorToDec</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodconvertHTMLColorToDec">TCPDF::convertHTMLColorToDec()</a><br> Returns an associative array (keys: R,G,B) from an html color name or a six-digit or three-digit hexadecimal color representation (i.e. #3FE5AA or #7FF).</dd>
|
||||
<dt><b>convertSVGtMatrix</b></dt>
|
||||
@ -558,12 +564,12 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$embedded_start_obj_id">TCPDF::$embedded_start_obj_id</a><br> Start ID for embedded file objects</dd>
|
||||
<dt><b>$encoding</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$encoding">TCPDF::$encoding</a></dd>
|
||||
<dt><b>$encryptdata</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$encryptdata">TCPDF::$encryptdata</a><br> Array containing encryption settings</dd>
|
||||
<dt><b>$encrypted</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$encrypted">TCPDF::$encrypted</a><br> Indicates whether document is protected</dd>
|
||||
<dt><b>$encryption_key</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$encryption_key">TCPDF::$encryption_key</a><br> RC4 encryption key</dd>
|
||||
<dt><b>$enc_obj_id</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$enc_obj_id">TCPDF::$enc_obj_id</a><br> encryption object id</dd>
|
||||
<dt><b>$enc_padding</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$enc_padding">TCPDF::$enc_padding</a><br> Encryption padding</dd>
|
||||
<dt><b>$endlinex</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$endlinex">TCPDF::$endlinex</a><br> End position of the latest inserted line</dd>
|
||||
<dt><b>$epsmarker</b></dt>
|
||||
@ -638,6 +644,8 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$fgcolor">TCPDF::$fgcolor</a></dd>
|
||||
<dt><b>$fhPt</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$fhPt">TCPDF::$fhPt</a></dd>
|
||||
<dt><b>$file_id</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$file_id">TCPDF::$file_id</a><br> File ID (used on trailer)</dd>
|
||||
<dt><b>$FillColor</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$FillColor">TCPDF::$FillColor</a></dd>
|
||||
<dt><b>$FontAscent</b></dt>
|
||||
@ -717,11 +725,11 @@
|
||||
<dt><b>getBarcode</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetBarcode">TCPDF::getBarcode()</a><br> Get current barcode.</dd>
|
||||
<dt><b>getBarcodeArray</b></dt>
|
||||
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodgetBarcodeArray">TCPDFBarcode::getBarcodeArray()</a><br> Return an array representations of barcode.</dd>
|
||||
<dt><b>getBarcodeArray</b></dt>
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodgetBarcodeArray">QRcode::getBarcodeArray()</a><br> Returns a barcode array which is readable by TCPDF</dd>
|
||||
<dt><b>getBarcodeArray</b></dt>
|
||||
<dd>in file 2dbarcodes.php, method <a href="com-tecnick-tcpdf/TCPDF2DBarcode.html#methodgetBarcodeArray">TCPDF2DBarcode::getBarcodeArray()</a><br> Return an array representations of barcode.</dd>
|
||||
<dt><b>getBarcodeArray</b></dt>
|
||||
<dd>in file barcodes.php, method <a href="com-tecnick-tcpdf/TCPDFBarcode.html#methodgetBarcodeArray">TCPDFBarcode::getBarcodeArray()</a><br> Return an array representations of barcode.</dd>
|
||||
<dt><b>getBitStream</b></dt>
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodgetBitStream">QRcode::getBitStream()</a><br> Returns a stream of bits.</dd>
|
||||
<dt><b>getBorderMode</b></dt>
|
||||
@ -746,6 +754,8 @@
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodgetECCLength">QRcode::getECCLength()</a><br> Return maximum error correction code length (bytes) for the version.</dd>
|
||||
<dt><b>getEccSpec</b></dt>
|
||||
<dd>in file qrcode.php, method <a href="com-tecnick-tcpdf/QRcode.html#methodgetEccSpec">QRcode::getEccSpec()</a><br> Return an array of ECC specification.</dd>
|
||||
<dt><b>getEncPermissionsString</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetEncPermissionsString">TCPDF::getEncPermissionsString()</a><br> Convert encryption P value to a string of bytes, low-order byte first.</dd>
|
||||
<dt><b>getFontAscent</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetFontAscent">TCPDF::getFontAscent()</a><br> Return the font ascent value</dd>
|
||||
<dt><b>getFontBuffer</b></dt>
|
||||
@ -856,6 +866,8 @@
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetSVGTransformMatrix">TCPDF::getSVGTransformMatrix()</a><br> Get the tranformation matrix from SVG transform attribute</dd>
|
||||
<dt><b>getTransformationMatrixProduct</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetTransformationMatrixProduct">TCPDF::getTransformationMatrixProduct()</a><br> Get the product of two SVG tranformation matrices</dd>
|
||||
<dt><b>getUserPermissionCode</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetUserPermissionCode">TCPDF::getUserPermissionCode()</a><br> Return the premission code used on encryption (P value).</dd>
|
||||
<dt><b>getVectorsAngle</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodgetVectorsAngle">TCPDF::getVectorsAngle()</a><br> Returns the angle in radiants between two vectors</dd>
|
||||
<dt><b>getVersionPattern</b></dt>
|
||||
@ -1064,10 +1076,10 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$l">TCPDF::$l</a></dd>
|
||||
<dt><b>$lasth</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$lasth">TCPDF::$lasth</a></dd>
|
||||
<dt><b>$last_rc4_key</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$last_rc4_key">TCPDF::$last_rc4_key</a><br> last RC4 key encrypted (cached for optimisation)</dd>
|
||||
<dt><b>$last_rc4_key_c</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$last_rc4_key_c">TCPDF::$last_rc4_key_c</a><br> last RC4 computed key</dd>
|
||||
<dt><b>$last_enc_key</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$last_enc_key">TCPDF::$last_enc_key</a><br> last RC4 key encrypted (cached for optimisation)</dd>
|
||||
<dt><b>$last_enc_key_c</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$last_enc_key_c">TCPDF::$last_enc_key_c</a><br> last RC4 computed key</dd>
|
||||
<dt><b>$LayoutMode</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$LayoutMode">TCPDF::$LayoutMode</a></dd>
|
||||
<dt><b>$lengthTableBits</b></dt>
|
||||
@ -1242,8 +1254,6 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$OutlineRoot">TCPDF::$OutlineRoot</a><br> Outline root for bookmark</dd>
|
||||
<dt><b>$outlines</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$outlines">TCPDF::$outlines</a><br> Outlines for bookmark</dd>
|
||||
<dt><b>$Ovalue</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$Ovalue">TCPDF::$Ovalue</a><br> O entry in pdf document</dd>
|
||||
<dt><b>$overline</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$overline">TCPDF::$overline</a></dd>
|
||||
<dt><b>objclone</b></dt>
|
||||
@ -1262,8 +1272,6 @@
|
||||
<div>
|
||||
<h2>p</h2>
|
||||
<dl>
|
||||
<dt><b>$padding</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$padding">TCPDF::$padding</a><br> RC4 padding</dd>
|
||||
<dt><b>$page</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$page">TCPDF::$page</a></dd>
|
||||
<dt><b>$PageAnnots</b></dt>
|
||||
@ -1294,8 +1302,6 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$print_footer">TCPDF::$print_footer</a></dd>
|
||||
<dt><b>$print_header</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$print_header">TCPDF::$print_header</a></dd>
|
||||
<dt><b>$Pvalue</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$Pvalue">TCPDF::$Pvalue</a><br> P entry in pdf document</dd>
|
||||
<dt><b>PageNo</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodPageNo">TCPDF::PageNo()</a><br> Returns the current page number.</dd>
|
||||
<dt><b>PageNoFormatted</b></dt>
|
||||
@ -1689,7 +1695,7 @@
|
||||
<dt><b>setPrintHeader</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetPrintHeader">TCPDF::setPrintHeader()</a><br> Set a flag to print page header.</dd>
|
||||
<dt><b>SetProtection</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetProtection">TCPDF::SetProtection()</a><br> Set document protection</dd>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodSetProtection">TCPDF::SetProtection()</a><br> Set document protection Remark: the protection against modification is for people who have the full Acrobat product.</dd>
|
||||
<dt><b>setRasterizeVectorImages</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodsetRasterizeVectorImages">TCPDF::setRasterizeVectorImages()</a><br> Enable/disable rasterization of SVG images using ImageMagick library.</dd>
|
||||
<dt><b>SetRightMargin</b></dt>
|
||||
@ -1848,8 +1854,6 @@
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$ur_form">TCPDF::$ur_form</a><br> Names specifying additional form-field-related usage rights for the document.</dd>
|
||||
<dt><b>$ur_signature</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$ur_signature">TCPDF::$ur_signature</a><br> Names specifying additional signature-related usage rights for the document.</dd>
|
||||
<dt><b>$Uvalue</b></dt>
|
||||
<dd>in file tcpdf.php, variable <a href="com-tecnick-tcpdf/TCPDF.html#var$Uvalue">TCPDF::$Uvalue</a><br> U entry in pdf document</dd>
|
||||
<dt><b>unhtmlentities</b></dt>
|
||||
<dd>in file tcpdf.php, method <a href="com-tecnick-tcpdf/TCPDF.html#methodunhtmlentities">TCPDF::unhtmlentities()</a><br> Reverse function for htmlentities.</dd>
|
||||
<dt><b>UniArrSubString</b></dt>
|
||||
@ -1971,7 +1975,7 @@
|
||||
<a href="elementindex_com-tecnick-tcpdf.html#top">top</a><br>
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:44 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:13 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -37,14 +37,14 @@
|
||||
<a name="tcpdf.php"></a>
|
||||
<h1>tcpdf.php</h1>
|
||||
<h2>Warnings:</h2><br>
|
||||
<b>Warning on line 17703</b> - Unknown tag "@parma" used<br>
|
||||
<b>Warning on line 18051</b> - Unknown tag "@parma" used<br>
|
||||
<a name="2dbarcodes.php"></a>
|
||||
<h1>2dbarcodes.php</h1>
|
||||
<h2>Errors:</h2><br>
|
||||
<b>Error on line 79</b> - Text cannot be outside of li tag in a DocBlock list, parsing will be incorrect<br>
|
||||
<div class="credit">
|
||||
<hr />
|
||||
Documentation generated on Mon, 10 May 2010 18:33:48 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:18 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -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 Mon, 10 May 2010 18:33:44 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -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 Mon, 10 May 2010 18:33:44 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
Documentation generated on Wed, 12 May 2010 14:44:14 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
|
||||
</div>
|
||||
</td></tr></table>
|
||||
</td>
|
||||
|
@ -2,7 +2,7 @@
|
||||
//============================================================+
|
||||
// File name : example_010.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2010-03-28
|
||||
// Last Update : 2010-05-11
|
||||
//
|
||||
// Description : Example 010 for TCPDF class
|
||||
// Text on multiple columns
|
||||
@ -52,6 +52,8 @@ class MC_TCPDF extends TCPDF {
|
||||
$this->setEqualColumns();
|
||||
// add a new page
|
||||
$this->AddPage();
|
||||
// reset margins
|
||||
$this->selectColumn();
|
||||
// print chapter title
|
||||
$this->ChapterTitle($num, $title);
|
||||
// set columns
|
||||
|
@ -2,13 +2,13 @@
|
||||
//============================================================+
|
||||
// File name : example_016.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2009-09-30
|
||||
//
|
||||
// Last Update : 2010-05-12
|
||||
//
|
||||
// Description : Example 016 for TCPDF class
|
||||
// Document Encryption / Security
|
||||
//
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com s.r.l.
|
||||
@ -24,7 +24,7 @@
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Document Encryption / Security
|
||||
* @author Nicola Asuni
|
||||
* @copyright 2004-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 2004-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://tcpdf.org
|
||||
* @license http://www.gnu.org/copyleft/lesser.html LGPL
|
||||
* @since 2008-03-04
|
||||
@ -34,24 +34,47 @@ require_once('../config/lang/eng.php');
|
||||
require_once('../tcpdf.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
|
||||
// *** Set PDF protection (encryption) *********************
|
||||
|
||||
// Set PDF protection (RSA 40bit encryption)
|
||||
/*
|
||||
* The permission array is composed of values taken from the following ones:
|
||||
* - copy: copy text and images to the clipboard
|
||||
* - print: print the document
|
||||
* - modify: modify it (except for annotations and forms)
|
||||
* - annot-forms: add annotations and forms
|
||||
* If you don't set any password, the document will open as usual.
|
||||
* If you set a user password, the PDF viewer will ask for it before
|
||||
* displaying the document. The master password, if different from
|
||||
* the user one, can be used to get full access.
|
||||
* Note: protecting a document requires to encrypt it, which increases the
|
||||
* processing time a lot. This can cause a PHP time-out in some cases,
|
||||
* especially if the document contains images or fonts.
|
||||
The permission array is composed of values taken from the following ones (specify the ones you want to block):
|
||||
- print : Print the document;
|
||||
- modify : Modify the contents of the document by operations other than those controlled by 'fill-forms', 'extract' and 'assemble';
|
||||
- copy : Copy or otherwise extract text and graphics from the document;
|
||||
- annot-forms : Add or modify text annotations, fill in interactive form fields, and, if 'modify' is also set, create or modify interactive form fields (including signature fields);
|
||||
- fill-forms : Fill in existing interactive form fields (including signature fields), even if 'annot-forms' is not specified;
|
||||
- extract : Extract text and graphics (in support of accessibility to users with disabilities or for other purposes);
|
||||
- assemble : Assemble the document (insert, rotate, or delete pages and create bookmarks or thumbnail images), even if 'modify' is not set;
|
||||
- print-high : Print the document to a representation from which a faithful digital copy of the PDF content could be generated. When this is not set, printing is limited to a low-level representation of the appearance, possibly of degraded quality.
|
||||
- owner : (inverted logic - only for public-key) when set permits change of encryption and enables all other permissions.
|
||||
|
||||
If you don't set any password, the document will open as usual.
|
||||
If you set a user password, the PDF viewer will ask for it before displaying the document.
|
||||
The master (owner) password, if different from the user one, can be used to get full access.
|
||||
|
||||
Possible encryption modes are:
|
||||
- 0 = RSA 40 bit
|
||||
- 1 = RSA 128 bit
|
||||
- 2 = AES 128 bit
|
||||
|
||||
NOTES:
|
||||
- To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
|
||||
- To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
|
||||
- To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes
|
||||
|
||||
*/
|
||||
$pdf->SetProtection(array('print'));
|
||||
|
||||
$pdf->SetProtection($permissions=array('print', 'copy'), $user_pass='', $owner_pass=null, $mode=1, $pubkeys=null);
|
||||
|
||||
// Example with public-key
|
||||
// To open the document you need to install the private key (tcpdf.p12) on the Acrobat Reader. The password is: 1234
|
||||
//$pdf->SetProtection($permissions=array('print', 'copy'), $user_pass='', $owner_pass=null, $mode=1, $pubkeys=array(array('c' => 'file://../tcpdf.crt', 'p' => array('print'))));
|
||||
|
||||
// *********************************************************
|
||||
|
||||
|
||||
// set document information
|
||||
$pdf->SetCreator(PDF_CREATOR);
|
||||
@ -79,10 +102,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);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
@ -101,6 +124,6 @@ $pdf->Cell(0, 10, 'Encryption Example', 1, 1, 'C');
|
||||
$pdf->Output('example_016.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
?>
|
||||
|
@ -2,13 +2,13 @@
|
||||
//============================================================+
|
||||
// File name : example_052.php
|
||||
// Begin : 2009-05-07
|
||||
// Last Update : 2009-09-30
|
||||
//
|
||||
// Last Update : 2010-05-12
|
||||
//
|
||||
// Description : Example 052 for TCPDF class
|
||||
// Certification Signature (experimental)
|
||||
//
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com s.r.l.
|
||||
@ -24,7 +24,7 @@
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Certification Signature (experimental)
|
||||
* @author Nicola Asuni
|
||||
* @copyright 2004-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 2004-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://tcpdf.org
|
||||
* @license http://www.gnu.org/copyleft/lesser.html LGPL
|
||||
* @since 2009-05-07
|
||||
@ -34,7 +34,7 @@ require_once('../config/lang/eng.php');
|
||||
require_once('../tcpdf.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->SetCreator(PDF_CREATOR);
|
||||
@ -62,13 +62,20 @@ $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);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
/*
|
||||
NOTES:
|
||||
- To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
|
||||
- To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
|
||||
- To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes
|
||||
*/
|
||||
|
||||
// set certificate file
|
||||
$certificate = 'file://../tcpdf.crt';
|
||||
|
||||
@ -99,6 +106,6 @@ $pdf->writeHTML($text, true, 0, true, 0);
|
||||
$pdf->Output('example_052.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
?>
|
||||
|
564
tcpdf.php
564
tcpdf.php
@ -2,9 +2,9 @@
|
||||
//============================================================+
|
||||
// File name : tcpdf.php
|
||||
// Begin : 2002-08-03
|
||||
// Last Update : 2010-05-10
|
||||
// Last Update : 2010-05-12
|
||||
// Author : Nicola Asuni - info@tecnick.com - http://www.tcpdf.org
|
||||
// Version : 5.0.004
|
||||
// Version : 5.0.005
|
||||
// License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (C) 2002-2010 Nicola Asuni - Tecnick.com S.r.l.
|
||||
@ -122,7 +122,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 5.0.004
|
||||
* @version 5.0.005
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -146,14 +146,14 @@ if (!class_exists('TCPDF', false)) {
|
||||
/**
|
||||
* define default PDF document producer
|
||||
*/
|
||||
define('PDF_PRODUCER', 'TCPDF 5.0.004 (http://www.tcpdf.org)');
|
||||
define('PDF_PRODUCER', 'TCPDF 5.0.005 (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 5.0.004
|
||||
* @version 5.0.005
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
* @link http://www.tcpdf.org
|
||||
* @license http://www.gnu.org/copyleft/lesser.html LGPL
|
||||
@ -751,59 +751,39 @@ if (!class_exists('TCPDF', false)) {
|
||||
protected $encrypted;
|
||||
|
||||
/**
|
||||
* U entry in pdf document
|
||||
* Array containing encryption settings
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
* @since 5.0.005 (2010-05-11)
|
||||
*/
|
||||
protected $Uvalue;
|
||||
|
||||
/**
|
||||
* O entry in pdf document
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
*/
|
||||
protected $Ovalue;
|
||||
|
||||
/**
|
||||
* P entry in pdf document
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
*/
|
||||
protected $Pvalue;
|
||||
|
||||
/**
|
||||
* encryption object id
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
*/
|
||||
protected $enc_obj_id;
|
||||
protected $encryptdata = array();
|
||||
|
||||
/**
|
||||
* last RC4 key encrypted (cached for optimisation)
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
*/
|
||||
protected $last_rc4_key;
|
||||
protected $last_enc_key;
|
||||
|
||||
/**
|
||||
* last RC4 computed key
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
*/
|
||||
protected $last_rc4_key_c;
|
||||
protected $last_enc_key_c;
|
||||
|
||||
/**
|
||||
* RC4 padding
|
||||
* Encryption padding
|
||||
* @access protected
|
||||
*/
|
||||
protected $padding = "\x28\xBF\x4E\x5E\x4E\x75\x8A\x41\x64\x00\x4E\x56\xFF\xFA\x01\x08\x2E\x2E\x00\xB6\xD0\x68\x3E\x80\x2F\x0C\xA9\xFE\x64\x53\x69\x7A";
|
||||
|
||||
protected $enc_padding = "\x28\xBF\x4E\x5E\x4E\x75\x8A\x41\x64\x00\x4E\x56\xFF\xFA\x01\x08\x2E\x2E\x00\xB6\xD0\x68\x3E\x80\x2F\x0C\xA9\xFE\x64\x53\x69\x7A";
|
||||
|
||||
/**
|
||||
* RC4 encryption key
|
||||
* File ID (used on trailer)
|
||||
* @access protected
|
||||
* @since 5.0.005 (2010-05-12)
|
||||
*/
|
||||
protected $encryption_key;
|
||||
|
||||
protected $file_id;
|
||||
|
||||
// --- bookmark ---
|
||||
|
||||
/**
|
||||
@ -1772,8 +1752,7 @@ if (!class_exists('TCPDF', false)) {
|
||||
$this->ColorFlag = false;
|
||||
// encryption values
|
||||
$this->encrypted = false;
|
||||
$this->last_rc4_key = '';
|
||||
$this->padding = "\x28\xBF\x4E\x5E\x4E\x75\x8A\x41\x64\x00\x4E\x56\xFF\xFA\x01\x08\x2E\x2E\x00\xB6\xD0\x68\x3E\x80\x2F\x0C\xA9\xFE\x64\x53\x69\x7A";
|
||||
$this->last_enc_key = '';
|
||||
//Standard Unicode fonts
|
||||
$this->CoreFonts = array(
|
||||
'courier'=>'Courier',
|
||||
@ -1851,6 +1830,8 @@ if (!class_exists('TCPDF', false)) {
|
||||
$this->apxo_obj_id = $this->apxo_start_obj_id;
|
||||
$this->js_obj_id = $this->js_start_obj_id;
|
||||
$this->default_form_prop = array('lineWidth'=>1, 'borderStyle'=>'solid', 'fillColor'=>array(255, 255, 255), 'strokeColor'=>array(128, 128, 128));
|
||||
// set file ID for trailer
|
||||
$this->file_id = md5(microtime().__FILE__.'TCPDF'.$orientation.$unit.$format.$encoding.uniqid());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -6675,6 +6656,7 @@ if (!class_exists('TCPDF', false)) {
|
||||
//$annots .= ' /ExData ';
|
||||
}
|
||||
$lineendings = array('Square', 'Circle', 'Diamond', 'OpenArrow', 'ClosedArrow', 'None', 'Butt', 'ROpenArrow', 'RClosedArrow', 'Slash');
|
||||
// Annotation types
|
||||
switch (strtolower($pl['opt']['subtype'])) {
|
||||
case 'text': {
|
||||
if (isset($pl['opt']['open'])) {
|
||||
@ -6750,7 +6732,7 @@ if (!class_exists('TCPDF', false)) {
|
||||
}
|
||||
$tfit = array('FreeText', 'FreeTextCallout', 'FreeTextTypeWriter');
|
||||
if (isset($pl['opt']['it']) AND in_array($pl['opt']['it'], $tfit)) {
|
||||
$annots .= ' /IT '.$pl['opt']['it'];
|
||||
$annots .= ' /IT /'.$pl['opt']['it'];
|
||||
}
|
||||
if (isset($pl['opt']['rd']) AND is_array($pl['opt']['rd'])) {
|
||||
$l = $pl['opt']['rd'][0] * $this->k;
|
||||
@ -7852,8 +7834,8 @@ if (!class_exists('TCPDF', false)) {
|
||||
$out .= ' /Root '.$this->n.' 0 R';
|
||||
$out .= ' /Info '.($this->n - 1).' 0 R';
|
||||
if ($this->encrypted) {
|
||||
$out .= ' /Encrypt '.$this->enc_obj_id.' 0 R';
|
||||
$out .= ' /ID [()()]';
|
||||
$out .= ' /Encrypt '.$this->encryptdata['objid'].' 0 R';
|
||||
$out .= ' /ID [ <'.$this->file_id.'> <'.$this->file_id.'> ]';
|
||||
}
|
||||
$out .= ' >>';
|
||||
$this->_out($out);
|
||||
@ -8134,9 +8116,7 @@ if (!class_exists('TCPDF', false)) {
|
||||
* @access protected
|
||||
*/
|
||||
protected function _datastring($s) {
|
||||
if ($this->encrypted) {
|
||||
$s = $this->_RC4($this->_objectkey($this->n), $s);
|
||||
}
|
||||
$s = $this->_encrypt_data($this->n, $s);
|
||||
return '('. $this->_escape($s).')';
|
||||
}
|
||||
|
||||
@ -8147,9 +8127,7 @@ if (!class_exists('TCPDF', false)) {
|
||||
* @access protected
|
||||
*/
|
||||
protected function _dataannobjstring($s) {
|
||||
if ($this->encrypted) {
|
||||
$s = $this->_RC4($this->_objectkey($this->annot_obj_id + 1), $s);
|
||||
}
|
||||
$s = $this->_encrypt_data(($this->annot_obj_id + 1), $s);
|
||||
return '('. $this->_escape($s).')';
|
||||
}
|
||||
|
||||
@ -8217,13 +8195,11 @@ if (!class_exists('TCPDF', false)) {
|
||||
* @access protected
|
||||
*/
|
||||
protected function _getstream($s, $n=0) {
|
||||
if ($this->encrypted) {
|
||||
if ($n <= 0) {
|
||||
// default to current object
|
||||
$n = $this->n;
|
||||
}
|
||||
$s = $this->_RC4($this->_objectkey($n), $s);
|
||||
if ($n <= 0) {
|
||||
// default to current object
|
||||
$n = $this->n;
|
||||
}
|
||||
$s = $this->_encrypt_data($n, $s);
|
||||
return "stream\n".$s."\nendstream";
|
||||
}
|
||||
|
||||
@ -8699,21 +8675,56 @@ if (!class_exists('TCPDF', false)) {
|
||||
}
|
||||
|
||||
// ENCRYPTION METHODS ----------------------------------
|
||||
// SINCE 2.0.000 (2008-01-02)
|
||||
|
||||
/**
|
||||
* Compute encryption key depending on object number where the encrypted data is stored
|
||||
* Compute encryption key depending on object number where the encrypted data is stored.
|
||||
* This is used for all strings and streams without crypt filter specifier.
|
||||
* @param int $n object number
|
||||
* @access protected
|
||||
* @author Nicola Asuni
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
*/
|
||||
protected function _objectkey($n) {
|
||||
return substr($this->_md5_16($this->encryption_key.pack('VXxx', $n)), 0, 10);
|
||||
$objkey = $this->encryptdata['key'].pack('VXxx', $n);
|
||||
if ($this->encryptdata['mode'] == 2) {
|
||||
// AES padding
|
||||
$objkey .= "\x73\x41\x6C\x54";
|
||||
}
|
||||
$objkey = substr($this->_md5_16($objkey), 0, (($this->encryptdata['Length'] / 8) + 5));
|
||||
$objkey = substr($objkey, 0, 16);
|
||||
return $objkey;
|
||||
}
|
||||
|
||||
/**
|
||||
* Encrypt the input string.
|
||||
* @param int $n object number
|
||||
* @param string $s data string to encrypt
|
||||
* @access protected
|
||||
* @author Nicola Asuni
|
||||
* @since 5.0.005 (2010-05-11)
|
||||
*/
|
||||
protected function _encrypt_data($n, $s) {
|
||||
if (!$this->encrypted) {
|
||||
return $s;
|
||||
}
|
||||
switch ($this->encryptdata['mode']) {
|
||||
case 0: // RC4 40 bit
|
||||
case 1: { // RC4 128 bit
|
||||
$s = $this->_RC4($this->_objectkey($n), $s);
|
||||
break;
|
||||
}
|
||||
case 2: { // AES 128 bit
|
||||
$s = $this->_AES($this->_objectkey($n), $s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $s;
|
||||
}
|
||||
|
||||
/**
|
||||
* Put encryption on PDF document.
|
||||
* @access protected
|
||||
* @author Nicola Asuni
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
*/
|
||||
protected function _putencryption() {
|
||||
@ -8721,11 +8732,106 @@ if (!class_exists('TCPDF', false)) {
|
||||
return;
|
||||
}
|
||||
$this->_newobj();
|
||||
$this->enc_obj_id = $this->n;
|
||||
$out = '<< /Filter /Standard /V 1 /R 2';
|
||||
$out .= ' /O ('.$this->_escape($this->Ovalue).')';
|
||||
$out .= ' /U ('.$this->_escape($this->Uvalue).')';
|
||||
$out .= ' /P '.$this->Pvalue;
|
||||
$this->encryptdata['objid'] = $this->n;
|
||||
$out = '<<';
|
||||
if (!isset($this->encryptdata['Filter']) OR empty($this->encryptdata['Filter'])) {
|
||||
$this->encryptdata['Filter'] = 'Standard';
|
||||
}
|
||||
$out .= ' /Filter /'.$this->encryptdata['Filter'];
|
||||
if (isset($this->encryptdata['SubFilter']) AND !empty($this->encryptdata['SubFilter'])) {
|
||||
$out .= ' /SubFilter /'.$this->encryptdata['SubFilter'];
|
||||
}
|
||||
if (!isset($this->encryptdata['V']) OR empty($this->encryptdata['V'])) {
|
||||
$this->encryptdata['V'] = 1;
|
||||
}
|
||||
// V is a code specifying the algorithm to be used in encrypting and decrypting the document
|
||||
$out .= ' /V '.$this->encryptdata['V'];
|
||||
if (($this->encryptdata['V'] == 2) OR ($this->encryptdata['V'] == 3)) {
|
||||
if (isset($this->encryptdata['Length']) AND !empty($this->encryptdata['Length'])) {
|
||||
// The length of the encryption key, in bits. The value shall be a multiple of 8, in the range 40 to 128
|
||||
$out .= ' /Length '.$this->encryptdata['Length'];
|
||||
} else {
|
||||
$out .= ' /Length 40';
|
||||
}
|
||||
} elseif ($this->encryptdata['V'] == 4) {
|
||||
if (!isset($this->encryptdata['StmF']) OR empty($this->encryptdata['StmF'])) {
|
||||
$this->encryptdata['StmF'] = 'Identity';
|
||||
}
|
||||
if (!isset($this->encryptdata['StrF']) OR empty($this->encryptdata['StrF'])) {
|
||||
// The name of the crypt filter that shall be used when decrypting all strings in the document.
|
||||
$this->encryptdata['StrF'] = 'Identity';
|
||||
}
|
||||
// A dictionary whose keys shall be crypt filter names and whose values shall be the corresponding crypt filter dictionaries.
|
||||
if (isset($this->encryptdata['CF']) AND !empty($this->encryptdata['CF'])) {
|
||||
$out .= ' /CF <<';
|
||||
$out .= ' /'.$this->encryptdata['StmF'].' <<';
|
||||
$out .= ' /Type /CryptFilter';
|
||||
if (isset($this->encryptdata['CF']['CFM']) AND !empty($this->encryptdata['CF']['CFM'])) {
|
||||
// The method used
|
||||
$out .= ' /CFM /'.$this->encryptdata['CF']['CFM'];
|
||||
if ($this->encryptdata['pubkey']) {
|
||||
$out .= ' /Recipients [';
|
||||
foreach ($this->encryptdata['Recipients'] as $rec) {
|
||||
$out .= ' <'.$rec.'>';
|
||||
}
|
||||
$out .= ' ]';
|
||||
if (isset($this->encryptdata['CF']['EncryptMetadata']) AND (!$this->encryptdata['CF']['EncryptMetadata'])) {
|
||||
$out .= ' /EncryptMetadata false';
|
||||
} else {
|
||||
$out .= ' /EncryptMetadata true';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$out .= ' /CFM /None';
|
||||
}
|
||||
if (isset($this->encryptdata['CF']['AuthEvent']) AND !empty($this->encryptdata['CF']['AuthEvent'])) {
|
||||
// The event to be used to trigger the authorization that is required to access encryption keys used by this filter.
|
||||
$out .= ' /AuthEvent /'.$this->encryptdata['CF']['AuthEvent'];
|
||||
} else {
|
||||
$out .= ' /AuthEvent /DocOpen';
|
||||
}
|
||||
if (isset($this->encryptdata['CF']['Length']) AND !empty($this->encryptdata['CF']['Length'])) {
|
||||
// The bit length of the encryption key.
|
||||
$out .= ' /Length '.$this->encryptdata['CF']['Length'];
|
||||
}
|
||||
$out .= ' >> >>';
|
||||
}
|
||||
// The name of the crypt filter that shall be used by default when decrypting streams.
|
||||
$out .= ' /StmF /'.$this->encryptdata['StmF'];
|
||||
// The name of the crypt filter that shall be used when decrypting all strings in the document.
|
||||
$out .= ' /StrF /'.$this->encryptdata['StrF'];
|
||||
if (isset($this->encryptdata['EFF']) AND !empty($this->encryptdata['EFF'])) {
|
||||
// The name of the crypt filter that shall be used when encrypting embedded file streams that do not have their own crypt filter specifier.
|
||||
$out .= ' /EFF /'.$this->encryptdata[''];
|
||||
}
|
||||
}
|
||||
// Additional encryption dictionary entries for the standard security handler
|
||||
if ($this->encryptdata['pubkey']) {
|
||||
if (($this->encryptdata['V'] < 4) AND isset($this->encryptdata['Recipients']) AND !empty($this->encryptdata['Recipients'])) {
|
||||
$out .= ' /Recipients [';
|
||||
foreach ($this->encryptdata['Recipients'] as $rec) {
|
||||
$out .= ' <'.$rec.'>';
|
||||
}
|
||||
$out .= ' ]';
|
||||
}
|
||||
} else {
|
||||
$out .= ' /R';
|
||||
if ($this->encryptdata['V'] == 4) {
|
||||
$out .= ' 4';
|
||||
} elseif ($this->encryptdata['V'] < 2) {
|
||||
$out .= ' 2';
|
||||
} else {
|
||||
$out .= ' 3';
|
||||
}
|
||||
$out .= ' /O ('.$this->_escape($this->encryptdata['O']).')';
|
||||
$out .= ' /U ('.$this->_escape($this->encryptdata['U']).')';
|
||||
$out .= ' /P '.$this->encryptdata['P'];
|
||||
if (isset($this->encryptdata['EncryptMetadata']) AND (!$this->encryptdata['EncryptMetadata'])) {
|
||||
$out .= ' /EncryptMetadata false';
|
||||
} else {
|
||||
$out .= ' /EncryptMetadata true';
|
||||
}
|
||||
}
|
||||
$out .= ' >> endobj';
|
||||
$this->_out($out);
|
||||
}
|
||||
@ -8738,10 +8844,14 @@ if (!class_exists('TCPDF', false)) {
|
||||
* @return String encrypted text
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
* @author Klemen Vodopivec
|
||||
* @author Klemen Vodopivec, Nicola Asuni
|
||||
*/
|
||||
protected function _RC4($key, $text) {
|
||||
if ($this->last_rc4_key != $key) {
|
||||
if (function_exists('mcrypt_decrypt') AND ($out = @mcrypt_decrypt(@MCRYPT_ARCFOUR, $key, $text, @MCRYPT_MODE_STREAM))) {
|
||||
// try to use mcrypt function if exist
|
||||
return $out;
|
||||
}
|
||||
if ($this->last_enc_key != $key) {
|
||||
$k = str_repeat($key, ((256 / strlen($key)) + 1));
|
||||
$rc4 = range(0, 255);
|
||||
$j = 0;
|
||||
@ -8751,10 +8861,10 @@ if (!class_exists('TCPDF', false)) {
|
||||
$rc4[$i] = $rc4[$j];
|
||||
$rc4[$j] = $t;
|
||||
}
|
||||
$this->last_rc4_key = $key;
|
||||
$this->last_rc4_key_c = $rc4;
|
||||
$this->last_enc_key = $key;
|
||||
$this->last_enc_key_c = $rc4;
|
||||
} else {
|
||||
$rc4 = $this->last_rc4_key_c;
|
||||
$rc4 = $this->last_enc_key_c;
|
||||
}
|
||||
$len = strlen($text);
|
||||
$a = 0;
|
||||
@ -8772,6 +8882,26 @@ if (!class_exists('TCPDF', false)) {
|
||||
return $out;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the input text exrypted using AES algorithm and the specified key.
|
||||
* This method requires mcrypt.
|
||||
* @param string $key encryption key
|
||||
* @param String $text input text to be encrypted
|
||||
* @return String encrypted text
|
||||
* @access protected
|
||||
* @author Nicola Asuni
|
||||
* @since 5.0.005 (2010-05-11)
|
||||
*/
|
||||
protected function _AES($key, $text) {
|
||||
// padding (RFC 2898, PKCS #5: Password-Based Cryptography Specification Version 2.0)
|
||||
$padding = 16 - (strlen($text) % 16);
|
||||
$text .= str_repeat(chr($padding), $padding);
|
||||
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
|
||||
$text = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv);
|
||||
$text = $iv.$text;
|
||||
return $text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Encrypts a string using MD5 and returns it's value as a binary string.
|
||||
* @param string $str input string
|
||||
@ -8785,29 +8915,59 @@ if (!class_exists('TCPDF', false)) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute O value (used for RC4 encryption)
|
||||
* Compute O value (used for encryption)
|
||||
* @param String $user_pass user password
|
||||
* @param String $owner_pass user password
|
||||
* @return String O value
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
* @author Klemen Vodopivec
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
protected function _Ovalue($user_pass, $owner_pass) {
|
||||
$tmp = $this->_md5_16($owner_pass);
|
||||
$owner_RC4_key = substr($tmp, 0, 5);
|
||||
return $this->_RC4($owner_RC4_key, $user_pass);
|
||||
if ($this->encryptdata['mode'] > 0) {
|
||||
for ($i = 0; $i < 50; ++$i) {
|
||||
$tmp = $this->_md5_16($tmp);
|
||||
}
|
||||
}
|
||||
$owner_key = substr($tmp, 0, ($this->encryptdata['Length'] / 8));
|
||||
$enc = $this->_RC4($owner_key, $user_pass);
|
||||
if ($this->encryptdata['mode'] > 0) {
|
||||
$len = strlen($owner_key);
|
||||
for ($i = 1; $i <= 19; ++$i) {
|
||||
$ek = '';
|
||||
for ($j = 0; $j < $len; ++$j) {
|
||||
$ek .= chr(ord($owner_key{$j}) ^ $i);
|
||||
}
|
||||
$enc = $this->_RC4($ek, $enc);
|
||||
}
|
||||
}
|
||||
return $enc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute U value (used for RC4 encryption)
|
||||
* Compute U value (used for encryption)
|
||||
* @return String U value
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
* @author Klemen Vodopivec
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
protected function _Uvalue() {
|
||||
return $this->_RC4($this->encryption_key, $this->padding);
|
||||
if ($this->encryptdata['mode'] == 0) {
|
||||
return $this->_RC4($this->encryptdata['key'], $this->enc_padding);
|
||||
}
|
||||
$tmp = $this->_md5_16($this->enc_padding.$this->encryptdata['fileid']);
|
||||
$enc = $this->_RC4($this->encryptdata['key'], $tmp);
|
||||
$len = strlen($tmp);
|
||||
for ($i = 1; $i <= 19; ++$i) {
|
||||
$ek = '';
|
||||
for ($j = 0; $j < $len; ++$j) {
|
||||
$ek .= chr(ord($this->encryptdata['key']{$j}) ^ $i);
|
||||
}
|
||||
$enc = $this->_RC4($ek, $enc);
|
||||
}
|
||||
$enc .= str_repeat("\x00", 16);
|
||||
return substr($enc, 0, 32);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -8817,56 +8977,240 @@ if (!class_exists('TCPDF', false)) {
|
||||
* @param String $protection protection type
|
||||
* @access protected
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
* @author Klemen Vodopivec
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
protected function _generateencryptionkey($user_pass, $owner_pass, $protection) {
|
||||
// Pad passwords
|
||||
$user_pass = substr($user_pass.$this->padding, 0, 32);
|
||||
$owner_pass = substr($owner_pass.$this->padding, 0, 32);
|
||||
// Compute O value
|
||||
$this->Ovalue = $this->_Ovalue($user_pass, $owner_pass);
|
||||
// Compute encyption key
|
||||
$tmp = $this->_md5_16($user_pass.$this->Ovalue.chr($protection)."\xFF\xFF\xFF");
|
||||
$this->encryption_key = substr($tmp, 0, 5);
|
||||
// Compute U value
|
||||
$this->Uvalue = $this->_Uvalue();
|
||||
// Compute P value
|
||||
$this->Pvalue = -(($protection^255) + 1);
|
||||
$keybytelen = ($this->encryptdata['Length'] / 8);
|
||||
if (!$this->encryptdata['pubkey']) { // standard mode
|
||||
// Pad passwords
|
||||
$user_pass = substr($user_pass.$this->enc_padding, 0, 32);
|
||||
$owner_pass = substr($owner_pass.$this->enc_padding, 0, 32);
|
||||
// Compute O value
|
||||
$this->encryptdata['O'] = $this->_Ovalue($user_pass, $owner_pass);
|
||||
// get default permissions (reverse byte order)
|
||||
$permissions = $this->getEncPermissionsString($protection);
|
||||
// Compute encryption key
|
||||
$tmp = $this->_md5_16($user_pass.$this->encryptdata['O'].$permissions.$this->encryptdata['fileid']);
|
||||
if ($this->encryptdata['mode'] > 0) {
|
||||
for ($i = 0; $i < 50; ++$i) {
|
||||
$tmp = $this->_md5_16(substr($tmp, 0, $keybytelen));
|
||||
}
|
||||
}
|
||||
$this->encryptdata['key'] = substr($tmp, 0, $keybytelen);
|
||||
// Compute U value
|
||||
$this->encryptdata['U'] = $this->_Uvalue();
|
||||
// Compute P value
|
||||
$this->encryptdata['P'] = $protection;
|
||||
} else { // Public-Key mode
|
||||
// random 20-byte seed
|
||||
$seed = sha1(microtime().uniqid().$this->file_id, true);
|
||||
$recipient_bytes = '';
|
||||
foreach ($this->encryptdata['pubkeys'] as $pubkey) {
|
||||
// for each public certificate
|
||||
if (isset($pubkey['p'])) {
|
||||
$pkprotection = $this->getUserPermissionCode($pubkey['p'], $this->encryptdata['mode']);
|
||||
} else {
|
||||
$pkprotection = $protection;
|
||||
}
|
||||
// get default permissions (reverse byte order)
|
||||
$pkpermissions = $this->getEncPermissionsString($pkprotection);
|
||||
// envelope data
|
||||
$envelope = $seed.$pkpermissions;
|
||||
// write the envelope data to a temporary file
|
||||
$tempkeyfile = tempnam(K_PATH_CACHE, 'tmpkey_');
|
||||
$f = fopen($tempkeyfile, 'wb');
|
||||
if (!$f) {
|
||||
$this->Error('Unable to create temporary key file: '.$tempkeyfile);
|
||||
}
|
||||
$envelope_lenght = strlen($envelope);
|
||||
fwrite($f, $envelope, $envelope_lenght);
|
||||
fclose($f);
|
||||
$tempencfile = tempnam(K_PATH_CACHE, 'tmpenc_');
|
||||
if (!openssl_pkcs7_encrypt($tempkeyfile, $tempencfile, $pubkey['c'], array(), PKCS7_DETACHED | PKCS7_BINARY)) {
|
||||
$this->Error('Unable to encrypt the file: '.$tempkeyfile);
|
||||
}
|
||||
unlink($tempkeyfile);
|
||||
// read encryption signature
|
||||
$signature = file_get_contents($tempencfile, false, null, $envelope_lenght);
|
||||
unlink($tempencfile);
|
||||
// extract signature
|
||||
$signature = substr($signature, strpos($signature, 'Content-Disposition'));
|
||||
$tmparr = explode("\n\n", $signature);
|
||||
$signature = trim($tmparr[1]);
|
||||
unset($tmparr);
|
||||
// decode signature
|
||||
$signature = base64_decode($signature);
|
||||
// convert signature to hex
|
||||
$hexsignature = current(unpack('H*', $signature));
|
||||
// store signature on recipients array
|
||||
$this->encryptdata['Recipients'][] = $hexsignature;
|
||||
// The bytes of each item in the Recipients array of PKCS#7 objects in the order in which they appear in the array
|
||||
$recipient_bytes .= $signature;
|
||||
}
|
||||
// calculate encryption key
|
||||
$this->encryptdata['key'] = substr(sha1($seed.$recipient_bytes, true), 0, $keybytelen);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set document protection
|
||||
* The permission array is composed of values taken from the following ones:
|
||||
* - copy: copy text and images to the clipboard
|
||||
* - print: print the document
|
||||
* - modify: modify it (except for annotations and forms)
|
||||
* - annot-forms: add annotations and forms
|
||||
* Remark: the protection against modification is for people who have the full Acrobat product.
|
||||
* If you don't set any password, the document will open as usual. If you set a user password, the PDF viewer will ask for it before displaying the document. The master password, if different from the user one, can be used to get full access.
|
||||
* Note: protecting a document requires to encrypt it, which increases the processing time a lot. This can cause a PHP time-out in some cases, especially if the document contains images or fonts.
|
||||
* @param Array $permissions the set of permissions. Empty by default (only viewing is allowed). (print, modify, copy, annot-forms)
|
||||
* @param String $user_pass user password. Empty by default.
|
||||
* @param String $owner_pass owner password. If not specified, a random value is used.
|
||||
* @access public
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
* @author Klemen Vodopivec
|
||||
* Return the premission code used on encryption (P value).
|
||||
* @param Array $permissions the set of permissions (specify the ones you want to block).
|
||||
* @param int $mode encryption strength: 0 = RC4 40 bit; 1 = RC4 128 bit; 2 = AES 128 bit.
|
||||
* @access protected
|
||||
* @since 5.0.005 (2010-05-12)
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
public function SetProtection($permissions=array(), $user_pass='', $owner_pass=null) {
|
||||
$options = array('print' => 4, 'modify' => 8, 'copy' => 16, 'annot-forms' => 32);
|
||||
$protection = 192;
|
||||
protected function getUserPermissionCode($permissions, $mode=0) {
|
||||
$options = array(
|
||||
'owner' => 2, // bit 2 -- inverted logic: cleared by default
|
||||
'print' => 4, // bit 3
|
||||
'modify' => 8, // bit 4
|
||||
'copy' => 16, // bit 5
|
||||
'annot-forms' => 32, // bit 6
|
||||
'fill-forms' => 256, // bit 9
|
||||
'extract' => 512, // bit 10
|
||||
'assemble' => 1024,// bit 11
|
||||
'print-high' => 2048 // bit 12
|
||||
);
|
||||
$protection = 4294967293; // 32 bits (all to 1 except bit 2)
|
||||
foreach ($permissions as $permission) {
|
||||
if (!isset($options[$permission])) {
|
||||
$this->Error('Incorrect permission: '.$permission);
|
||||
}
|
||||
$protection += $options[$permission];
|
||||
if (($mode > 0) OR ($options[$permission] <= 32)) {
|
||||
// set only valid permissions
|
||||
if ($options[$permission] == 2) {
|
||||
// the logic for bit 2 is inverted (cleared by default)
|
||||
$protection += $options[$permission];
|
||||
} else {
|
||||
$protection -= $options[$permission];
|
||||
}
|
||||
}
|
||||
}
|
||||
return $protection;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set document protection
|
||||
* Remark: the protection against modification is for people who have the full Acrobat product.
|
||||
* If you don't set any password, the document will open as usual. If you set a user password, the PDF viewer will ask for it before displaying the document. The master password, if different from the user one, can be used to get full access.
|
||||
* Note: protecting a document requires to encrypt it, which increases the processing time a lot. This can cause a PHP time-out in some cases, especially if the document contains images or fonts.
|
||||
* @param Array $permissions the set of permissions (specify the ones you want to block):<ul><li>print : Print the document;</li><li>modify : Modify the contents of the document by operations other than those controlled by 'fill-forms', 'extract' and 'assemble';</li><li>copy : Copy or otherwise extract text and graphics from the document;</li><li>annot-forms : Add or modify text annotations, fill in interactive form fields, and, if 'modify' is also set, create or modify interactive form fields (including signature fields);</li><li>fill-forms : Fill in existing interactive form fields (including signature fields), even if 'annot-forms' is not specified;</li><li>extract : Extract text and graphics (in support of accessibility to users with disabilities or for other purposes);</li><li>assemble : Assemble the document (insert, rotate, or delete pages and create bookmarks or thumbnail images), even if 'modify' is not set;</li><li>print-high : Print the document to a representation from which a faithful digital copy of the PDF content could be generated. When this is not set, printing is limited to a low-level representation of the appearance, possibly of degraded quality.</li><li>owner : (inverted logic - only for public-key) when set permits change of encryption and enables all other permissions.</li></ul>
|
||||
* @param String $user_pass user password. Empty by default.
|
||||
* @param String $owner_pass owner password. If not specified, a random value is used.
|
||||
* @param int $mode encryption strength: 0 = RC4 40 bit; 1 = RC4 128 bit; 2 = AES 128 bit.
|
||||
* @param String $pubkeys array of recipients containing public-key certificates ('c') and permissions ('p'). For example: array(array('c' => 'file://../tcpdf.crt', 'p' => array('print')))
|
||||
* @access public
|
||||
* @since 2.0.000 (2008-01-02)
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
public function SetProtection($permissions=array('print', 'modify', 'copy', 'annot-forms', 'fill-forms', 'extract', 'assemble', 'print-high'), $user_pass='', $owner_pass=null, $mode=0, $pubkeys=null) {
|
||||
$protection = $this->getUserPermissionCode($permissions, $mode);
|
||||
if (($pubkeys !== null) AND (is_array($pubkeys))) {
|
||||
// public-key mode
|
||||
$this->encryptdata['pubkeys'] = $pubkeys;
|
||||
if ($mode == 0) {
|
||||
// public-Key Security requires at least 128 bit
|
||||
$mode = 1;
|
||||
}
|
||||
if (!function_exists('openssl_pkcs7_encrypt')) {
|
||||
$this->Error('Public-Key Security requires openssl library.');
|
||||
}
|
||||
// Set Public-Key filter (availabe are: Entrust.PPKEF, Adobe.PPKLite, Adobe.PubSec)
|
||||
$this->encryptdata['pubkey'] = true;
|
||||
$this->encryptdata['Filter'] = 'Adobe.PubSec';
|
||||
$this->encryptdata['StmF'] = 'DefaultCryptFilter';
|
||||
$this->encryptdata['StrF'] = 'DefaultCryptFilter';
|
||||
} else {
|
||||
// standard mode (password mode)
|
||||
$this->encryptdata['pubkey'] = false;
|
||||
$this->encryptdata['Filter'] = 'Standard';
|
||||
$this->encryptdata['StmF'] = 'StdCF';
|
||||
$this->encryptdata['StrF'] = 'StdCF';
|
||||
}
|
||||
if ($mode > 1) { // AES
|
||||
if (!extension_loaded('mcrypt')) {
|
||||
$this->Error('AES encryption requires mcrypt library.');
|
||||
}
|
||||
if (mcrypt_get_cipher_name(MCRYPT_RIJNDAEL_128) === false) {
|
||||
$this->Error('AES encryption requires MCRYPT_RIJNDAEL_128 cypher.');
|
||||
}
|
||||
}
|
||||
if ($owner_pass === null) {
|
||||
$owner_pass = uniqid(rand());
|
||||
}
|
||||
$this->encryptdata['mode'] = $mode;
|
||||
switch ($mode) {
|
||||
case 0: { // RC4 40 bit
|
||||
$this->encryptdata['V'] = 1;
|
||||
$this->encryptdata['Length'] = 40;
|
||||
$this->encryptdata['CF']['CFM'] = 'V2';
|
||||
break;
|
||||
}
|
||||
case 1: { // RC4 128 bit
|
||||
$this->encryptdata['V'] = 2;
|
||||
$this->encryptdata['Length'] = 128;
|
||||
$this->encryptdata['CF']['CFM'] = 'V2';
|
||||
if ($this->encryptdata['pubkey']) {
|
||||
$this->encryptdata['SubFilter'] = 'adbe.pkcs7.s4';
|
||||
$this->encryptdata['Recipients'] = array();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2: { // AES 128 bit
|
||||
$this->encryptdata['V'] = 4;
|
||||
$this->encryptdata['Length'] = 128;
|
||||
$this->encryptdata['CF']['CFM'] = 'AESV2';
|
||||
if ($this->encryptdata['pubkey']) {
|
||||
$this->encryptdata['SubFilter'] = 'adbe.pkcs7.s5';
|
||||
$this->encryptdata['Recipients'] = array();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
$this->encrypted = true;
|
||||
$this->encryptdata['fileid'] = $this->convertHexStringToString($this->file_id);
|
||||
$this->_generateencryptionkey($user_pass, $owner_pass, $protection);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert hexadecimal string to string
|
||||
* @param string $bs byte-string to convert
|
||||
* @return String
|
||||
* @access protected
|
||||
* @since 5.0.005 (2010-05-12)
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
protected function convertHexStringToString($bs) {
|
||||
if ((strlen($bs) % 2) != 0) {
|
||||
// padding
|
||||
$bs .= '0';
|
||||
}
|
||||
$bytes = str_split($bs, 2);
|
||||
$string = '';
|
||||
foreach ($bytes as $byte) {
|
||||
$string .= chr(hexdec($byte));
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert encryption P value to a string of bytes, low-order byte first.
|
||||
* @param string $protection 32bit encryption permission value (P value)
|
||||
* @return String
|
||||
* @access protected
|
||||
* @since 5.0.005 (2010-05-12)
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
protected function getEncPermissionsString($protection) {
|
||||
$binprot = sprintf('%032b', $protection);
|
||||
$str = chr(bindec(substr($binprot, 24, 8)));
|
||||
$str .= chr(bindec(substr($binprot, 16, 8)));
|
||||
$str .= chr(bindec(substr($binprot, 8, 8)));
|
||||
$str .= chr(bindec(substr($binprot, 0, 8)));
|
||||
return $str;
|
||||
}
|
||||
|
||||
// END OF ENCRYPTION FUNCTIONS -------------------------
|
||||
|
||||
// START TRANSFORMATIONS SECTION -----------------------
|
||||
@ -11876,6 +12220,9 @@ if (!class_exists('TCPDF', false)) {
|
||||
/**
|
||||
* Enable document signature (requires the OpenSSL Library).
|
||||
* The digital signature improve document authenticity and integrity and allows o enable extra features on Acrobat Reader.
|
||||
* To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
|
||||
* To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
|
||||
* To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes
|
||||
* @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
|
||||
@ -11888,6 +12235,7 @@ if (!class_exists('TCPDF', false)) {
|
||||
*/
|
||||
public function setSignature($signing_cert='', $private_key='', $private_key_password='', $extracerts='', $cert_type=2, $info=array()) {
|
||||
// to create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
|
||||
// to export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
|
||||
// to convert pfx certificate to pem: openssl
|
||||
// OpenSSL> pkcs12 -in <cert.pfx> -out <cert.crt> -nodes
|
||||
$this->sign = true;
|
||||
@ -17972,6 +18320,10 @@ if (!class_exists('TCPDF', false)) {
|
||||
$this->x = $x + $listindent;
|
||||
}
|
||||
$this->columns[$col]['x'] = $x;
|
||||
} else {
|
||||
// restore original margins
|
||||
$this->lMargin = $this->original_lMargin;
|
||||
$this->rMargin = $this->original_rMargin;
|
||||
}
|
||||
$this->current_column = $col;
|
||||
// fix for HTML mode
|
||||
|
Loading…
Reference in New Issue
Block a user