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). 29require_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) 63if (@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/* 80It is possible to create text fields, combo boxes, check boxes and buttons. 81Fields are created at the current position and are given a name. 82This 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 166function 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} 175function 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} 182EOD; 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//============================================================+ 195