ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
example_016.php
Go to the documentation of this file.
1 <?php
2 //============================================================+
3 // File name : example_016.php
4 // Begin : 2008-03-04
5 // Last Update : 2013-05-14
6 //
7 // Description : Example 016 for TCPDF class
8 // Document Encryption / Security
9 //
10 // Author: Nicola Asuni
11 //
12 // (c) Copyright:
13 // Nicola Asuni
14 // Tecnick.com LTD
15 // www.tecnick.com
16 // info@tecnick.com
17 //============================================================+
18 
27 // Include the main TCPDF library (search for installation path).
28 require_once('tcpdf_include.php');
29 
30 // create new PDF document
31 $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
32 
33 
34 // *** Set PDF protection (encryption) *********************
35 
36 /*
37  The permission array is composed of values taken from the following ones (specify the ones you want to block):
38  - print : Print the document;
39  - modify : Modify the contents of the document by operations other than those controlled by 'fill-forms', 'extract' and 'assemble';
40  - copy : Copy or otherwise extract text and graphics from the document;
41  - 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);
42  - fill-forms : Fill in existing interactive form fields (including signature fields), even if 'annot-forms' is not specified;
43  - extract : Extract text and graphics (in support of accessibility to users with disabilities or for other purposes);
44  - assemble : Assemble the document (insert, rotate, or delete pages and create bookmarks or thumbnail images), even if 'modify' is not set;
45  - 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.
46  - owner : (inverted logic - only for public-key) when set permits change of encryption and enables all other permissions.
47 
48  If you don't set any password, the document will open as usual.
49  If you set a user password, the PDF viewer will ask for it before displaying the document.
50  The master (owner) password, if different from the user one, can be used to get full document access.
51 
52  Possible encryption modes are:
53  0 = RSA 40 bit
54  1 = RSA 128 bit
55  2 = AES 128 bit
56  3 = AES 256 bit
57 
58  NOTES:
59  - To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
60  - To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
61  - To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes
62 
63 */
64 
65 $pdf->SetProtection(array('print', 'copy'), '', null, 0, null);
66 
67 // Example with public-key
68 // To open the document you need to install the private key (tcpdf.p12) on the Acrobat Reader. The password is: 1234
69 //$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'))));
70 
71 // *********************************************************
72 
73 
74 // set document information
75 $pdf->SetCreator(PDF_CREATOR);
76 $pdf->SetAuthor('Nicola Asuni');
77 $pdf->SetTitle('TCPDF Example 016');
78 $pdf->SetSubject('TCPDF Tutorial');
79 $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
80 
81 // set default header data
83 
84 // set header and footer fonts
85 $pdf->setHeaderFont(Array('helvetica', '', PDF_FONT_SIZE_MAIN));
86 $pdf->setFooterFont(Array('helvetica', '', PDF_FONT_SIZE_DATA));
87 
88 // set default monospaced font
89 $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
90 
91 // set margins
93 $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
94 $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
95 
96 // set auto page breaks
97 $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
98 
99 // set image scale factor
100 $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
101 
102 // set some language-dependent strings (optional)
103 if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
104  require_once(dirname(__FILE__).'/lang/eng.php');
105  $pdf->setLanguageArray($l);
106 }
107 
108 // ---------------------------------------------------------
109 
110 // set font
111 $pdf->SetFont('times', '', 16);
112 
113 // add a page
114 $pdf->AddPage();
115 
116 // set some text to print
117 $txt = <<<EOD
118 Encryption Example
119 
120 Consult the source code documentation for the SetProtection() method.
121 EOD;
122 
123 // print a block of text using Write()
124 $pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0);
125 
126 
127 // ---------------------------------------------------------
128 
129 //Close and output PDF document
130 $pdf->Output('example_016.pdf', 'D');
131 
132 //============================================================+
133 // END OF FILE
134 //============================================================+
const PDF_MARGIN_BOTTOM
Bottom margin.
const PDF_MARGIN_LEFT
Left margin.
const PDF_MARGIN_HEADER
Header margin.
$pdf
Definition: example_016.php:31
$txt
const PDF_HEADER_STRING
Header description string.
const PDF_FONT_SIZE_MAIN
Default main font size.
const PDF_FONT_SIZE_DATA
Default data font size.
PHP class for generating PDF documents without requiring external extensions.
Definition: tcpdf.php:134
const PDF_HEADER_LOGO_WIDTH
Header logo image width in user units.
const PDF_HEADER_LOGO
Deafult image logo used be the default Header() method.
const PDF_UNIT
Document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch].
const PDF_IMAGE_SCALE_RATIO
Ratio used to adjust the conversion of pixels to user units.
const PDF_PAGE_ORIENTATION
Page orientation (P=portrait, L=landscape).
EOD
Definition: example_053.php:93
Create styles array
The data for the language used.
const PDF_MARGIN_RIGHT
Right margin.
const PDF_HEADER_TITLE
Header title.
global $l
Definition: afr.php:30
const PDF_CREATOR
Document creator.
const PDF_PAGE_FORMAT
Page format.
const PDF_FONT_MONOSPACED
Default monospaced font name.
const PDF_MARGIN_TOP
Top margin.
const PDF_MARGIN_FOOTER
Footer margin.