Projet

Général

Profil

Paste
Télécharger (6,07 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / libraries / tcpdf-6.2.9 / examples / example_014.php @ 99781f3b

1
<?php
2
//============================================================+
3
// File name   : example_014.php
4
// Begin       : 2008-03-04
5
// Last Update : 2013-05-14
6
//
7
// Description : Example 014 for TCPDF class
8
//               Javascript Form and user rights (only works on Adobe Acrobat)
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

    
19
/**
20
 * Creates an example PDF TEST document using TCPDF
21
 * @package com.tecnick.tcpdf
22
 * @abstract TCPDF - Example: Javascript Form and user rights (only works on Adobe Acrobat)
23
 * @author Nicola Asuni
24
 * @since 2008-03-04
25
 */
26

    
27

    
28
// Include the main TCPDF library (search for installation path).
29
require_once('tcpdf_include.php');
30

    
31
// create new PDF document
32
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
33

    
34
// set document information
35
$pdf->SetCreator(PDF_CREATOR);
36
$pdf->SetAuthor('Nicola Asuni');
37
$pdf->SetTitle('TCPDF Example 014');
38
$pdf->SetSubject('TCPDF Tutorial');
39
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
40

    
41
// set default header data
42
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 014', PDF_HEADER_STRING);
43

    
44
// set header and footer fonts
45
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
46
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
47

    
48
// set default monospaced font
49
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
50

    
51
// set margins
52
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
53
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
54
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
55

    
56
// set auto page breaks
57
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
58

    
59
// set image scale factor
60
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
61

    
62
// set some language-dependent strings (optional)
63
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
64
        require_once(dirname(__FILE__).'/lang/eng.php');
65
        $pdf->setLanguageArray($l);
66
}
67

    
68
// ---------------------------------------------------------
69

    
70
// IMPORTANT: disable font subsetting to allow users editing the document
71
$pdf->setFontSubsetting(false);
72

    
73
// set font
74
$pdf->SetFont('helvetica', '', 10, '', false);
75

    
76
// add a page
77
$pdf->AddPage();
78

    
79
/*
80
It is possible to create text fields, combo boxes, check boxes and buttons.
81
Fields are created at the current position and are given a name.
82
This name allows to manipulate them via JavaScript in order to perform some validation for instance.
83
*/
84

    
85
// set default form properties
86
$pdf->setFormDefaultProp(array('lineWidth'=>1, 'borderStyle'=>'solid', 'fillColor'=>array(255, 255, 200), 'strokeColor'=>array(255, 128, 128)));
87

    
88
$pdf->SetFont('helvetica', 'BI', 18);
89
$pdf->Cell(0, 5, 'Example of Form', 0, 1, 'C');
90
$pdf->Ln(10);
91

    
92
$pdf->SetFont('helvetica', '', 12);
93

    
94
// First name
95
$pdf->Cell(35, 5, 'First name:');
96
$pdf->TextField('firstname', 50, 5);
97
$pdf->Ln(6);
98

    
99
// Last name
100
$pdf->Cell(35, 5, 'Last name:');
101
$pdf->TextField('lastname', 50, 5);
102
$pdf->Ln(6);
103

    
104
// Gender
105
$pdf->Cell(35, 5, 'Gender:');
106
$pdf->ComboBox('gender', 30, 5, array(array('', '-'), array('M', 'Male'), array('F', 'Female')));
107
$pdf->Ln(6);
108

    
109
// Drink
110
$pdf->Cell(35, 5, 'Drink:');
111
//$pdf->RadioButton('drink', 5, array('readonly' => 'true'), array(), 'Water');
112
$pdf->RadioButton('drink', 5, array(), array(), 'Water');
113
$pdf->Cell(35, 5, 'Water');
114
$pdf->Ln(6);
115
$pdf->Cell(35, 5, '');
116
$pdf->RadioButton('drink', 5, array(), array(), 'Beer', true);
117
$pdf->Cell(35, 5, 'Beer');
118
$pdf->Ln(6);
119
$pdf->Cell(35, 5, '');
120
$pdf->RadioButton('drink', 5, array(), array(), 'Wine');
121
$pdf->Cell(35, 5, 'Wine');
122
$pdf->Ln(6);
123
$pdf->Cell(35, 5, '');
124
$pdf->RadioButton('drink', 5, array(), array(), 'Milk');
125
$pdf->Cell(35, 5, 'Milk');
126
$pdf->Ln(10);
127

    
128
// Newsletter
129
$pdf->Cell(35, 5, 'Newsletter:');
130
$pdf->CheckBox('newsletter', 5, true, array(), array(), 'OK');
131

    
132
$pdf->Ln(10);
133
// Address
134
$pdf->Cell(35, 5, 'Address:');
135
$pdf->TextField('address', 60, 18, array('multiline'=>true, 'lineWidth'=>0, 'borderStyle'=>'none'), array('v'=>'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'dv'=>'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'));
136
$pdf->Ln(19);
137

    
138
// Listbox
139
$pdf->Cell(35, 5, 'List:');
140
$pdf->ListBox('listbox', 60, 15, array('', 'item1', 'item2', 'item3', 'item4', 'item5', 'item6', 'item7'), array('multipleSelection'=>'true'));
141
$pdf->Ln(20);
142

    
143
// E-mail
144
$pdf->Cell(35, 5, 'E-mail:');
145
$pdf->TextField('email', 50, 5);
146
$pdf->Ln(6);
147

    
148
// Date of the day
149
$pdf->Cell(35, 5, 'Date:');
150
$pdf->TextField('date', 30, 5, array(), array('v'=>date('Y-m-d'), 'dv'=>date('Y-m-d')));
151
$pdf->Ln(10);
152

    
153
$pdf->SetX(50);
154

    
155
// Button to validate and print
156
$pdf->Button('print', 30, 10, 'Print', 'Print()', array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));
157

    
158
// Reset Button
159
$pdf->Button('reset', 30, 10, 'Reset', array('S'=>'ResetForm'), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));
160

    
161
// Submit Button
162
$pdf->Button('submit', 30, 10, 'Submit', array('S'=>'SubmitForm', 'F'=>'http://localhost/printvars.php', 'Flags'=>array('ExportFormat')), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));
163

    
164
// Form validation functions
165
$js = <<<EOD
166
function CheckField(name,message) {
167
        var f = getField(name);
168
        if(f.value == '') {
169
            app.alert(message);
170
            f.setFocus();
171
            return false;
172
        }
173
        return true;
174
}
175
function Print() {
176
        if(!CheckField('firstname','First name is mandatory')) {return;}
177
        if(!CheckField('lastname','Last name is mandatory')) {return;}
178
        if(!CheckField('gender','Gender is mandatory')) {return;}
179
        if(!CheckField('address','Address is mandatory')) {return;}
180
        print();
181
}
182
EOD;
183

    
184
// Add Javascript code
185
$pdf->IncludeJS($js);
186

    
187
// ---------------------------------------------------------
188

    
189
//Close and output PDF document
190
$pdf->Output('example_014.pdf', 'D');
191

    
192
//============================================================+
193
// END OF FILE
194
//============================================================+