diff options
| author | Geo Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2026-07-12 15:51:52 +0300 |
|---|---|---|
| committer | Geo Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2026-07-12 15:51:52 +0300 |
| commit | 02608271bb2a9f3a65ed536984d306ee14b48e34 (patch) | |
| tree | 3f23ec48a694ec014e845c4f70d9b5f1c065403c /public/library/TCPDF/examples/example_016.php | |
| download | kalassa-master.tar.gz kalassa-master.tar.bz2 kalassa-master.zip | |
Diffstat (limited to 'public/library/TCPDF/examples/example_016.php')
| -rw-r--r-- | public/library/TCPDF/examples/example_016.php | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/public/library/TCPDF/examples/example_016.php b/public/library/TCPDF/examples/example_016.php new file mode 100644 index 0000000..34284f2 --- /dev/null +++ b/public/library/TCPDF/examples/example_016.php @@ -0,0 +1,134 @@ +<?php +//============================================================+ +// File name : example_016.php +// Begin : 2008-03-04 +// Last Update : 2013-05-14 +// +// Description : Example 016 for TCPDF class +// Document Encryption / Security +// +// Author: Nicola Asuni +// +// (c) Copyright: +// Nicola Asuni +// Tecnick.com LTD +// www.tecnick.com +// info@tecnick.com +//============================================================+ + +/** + * Creates an example PDF TEST document using TCPDF + * @package com.tecnick.tcpdf + * @abstract TCPDF - Example: Document Encryption / Security + * @author Nicola Asuni + * @since 2008-03-04 + */ + +// Include the main TCPDF library (search for installation path). +require_once('tcpdf_include.php'); + +// create new PDF document +$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); + + +// *** Set PDF protection (encryption) ********************* + +/* + 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 document access. + + Possible encryption modes are: + 0 = RSA 40 bit + 1 = RSA 128 bit + 2 = AES 128 bit + 3 = AES 256 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', 'copy'), '', null, 0, 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://../config/cert/tcpdf.crt', 'p' => array('print')))); + +// ********************************************************* + + +// set document information +$pdf->SetCreator(PDF_CREATOR); +$pdf->SetAuthor('Nicola Asuni'); +$pdf->SetTitle('TCPDF Example 016'); +$pdf->SetSubject('TCPDF Tutorial'); +$pdf->SetKeywords('TCPDF, PDF, example, test, guide'); + +// set default header data +$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 016', PDF_HEADER_STRING); + +// set header and footer fonts +$pdf->setHeaderFont(Array('helvetica', '', PDF_FONT_SIZE_MAIN)); +$pdf->setFooterFont(Array('helvetica', '', PDF_FONT_SIZE_DATA)); + +// set default monospaced font +$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); + +// set margins +$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); +$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); +$pdf->SetFooterMargin(PDF_MARGIN_FOOTER); + +// set auto page breaks +$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); + +// set image scale factor +$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); + +// set some language-dependent strings (optional) +if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { + require_once(dirname(__FILE__).'/lang/eng.php'); + $pdf->setLanguageArray($l); +} + +// --------------------------------------------------------- + +// set font +$pdf->SetFont('times', '', 16); + +// add a page +$pdf->AddPage(); + +// set some text to print +$txt = <<<EOD +Encryption Example + +Consult the source code documentation for the SetProtection() method. +EOD; + +// print a block of text using Write() +$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0); + + +// --------------------------------------------------------- + +//Close and output PDF document +$pdf->Output('example_016.pdf', 'D'); + +//============================================================+ +// END OF FILE +//============================================================+ |
