Blame | Last modification | View Log | RSS feed
<?php//============================================================+// File name : example_014.php// Begin : 2008-03-04// Last Update : 2010-08-08//// Description : Example 014 for TCPDF class// Javascript Form and user rights (only works on Adobe Acrobat)//// Author: Nicola Asuni//// (c) Copyright:// Nicola Asuni// Tecnick.com s.r.l.// Via Della Pace, 11// 09044 Quartucciu (CA)// ITALY// www.tecnick.com// info@tecnick.com//============================================================+/*** Creates an example PDF TEST document using TCPDF* @package com.tecnick.tcpdf* @abstract TCPDF - Example: Javascript Form and user rights (only works on Adobe Acrobat)* @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* @link http://tcpdf.org* @license http://www.gnu.org/copyleft/lesser.html LGPL* @since 2008-03-04*/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);// set document information$pdf->SetCreator(PDF_CREATOR);$pdf->SetAuthor('Nicola Asuni');$pdf->SetTitle('TCPDF Example 014');$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.' 014', PDF_HEADER_STRING);// set header and footer fonts$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', 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$pdf->setLanguageArray($l);// ---------------------------------------------------------// IMPORTANT: disable font subsetting to allow users editing the document$pdf->setFontSubsetting(false);// set font$pdf->SetFont('helvetica', '', 10, '', false);// add a page$pdf->AddPage();/*It is possible to create text fields, combo boxes, check boxes and buttons.Fields are created at the current position and are given a name.This name allows to manipulate them via JavaScript in order to perform some validation for instance.*/// set default form properties$pdf->setFormDefaultProp(array('lineWidth'=>1, 'borderStyle'=>'solid', 'fillColor'=>array(255, 255, 200), 'strokeColor'=>array(255, 128, 128)));$pdf->SetFont('helvetica', 'BI', 18);$pdf->Cell(0, 5, 'Example of Form', 0, 1, 'C');$pdf->Ln(10);$pdf->SetFont('helvetica', '', 12);// First name$pdf->Cell(35, 5, 'First name:');$pdf->TextField('firstname', 50, 5);$pdf->Ln(6);// Last name$pdf->Cell(35, 5, 'Last name:');$pdf->TextField('lastname', 50, 5);$pdf->Ln(6);// Gender$pdf->Cell(35, 5, 'Gender:');//$pdf->ComboBox('gender', 10, 5, array('', 'M', 'F'));$pdf->ComboBox('gender', 30, 5, array(array('', '-'), array('M', 'Male'), array('F', 'Female')));$pdf->Ln(6);// Drink$pdf->Cell(35, 5, 'Drink:');$pdf->RadioButton('drink', 5, array(), array(), 'Water');$pdf->Cell(35, 5, 'Water');$pdf->Ln(6);$pdf->Cell(35, 5, '');$pdf->RadioButton('drink', 5, array(), array(), 'Beer', true);$pdf->Cell(35, 5, 'Beer');$pdf->Ln(6);$pdf->Cell(35, 5, '');$pdf->RadioButton('drink', 5, array(), array(), 'Wine');$pdf->Cell(35, 5, 'Wine');$pdf->Ln(10);// Listbox$pdf->Cell(35, 5, 'List:');$pdf->ListBox('listbox', 60, 15, array('', 'item1', 'item2', 'item3', 'item4', 'item5', 'item6', 'item7'), array('multipleSelection'=>'true'));$pdf->Ln(20);// Adress$pdf->Cell(35, 5, 'Address:');$pdf->TextField('address', 60, 18, array('multiline'=>true));$pdf->Ln(19);$pdf->Cell(35, 5, 'E-mail:');$pdf->TextField('email', 50, 5);$pdf->Ln(6);// Newsletter$pdf->Cell(35, 5, 'Newsletter:');$pdf->CheckBox('newsletter', 5, true, array(), array(), 'OK');$pdf->Ln(10);// Date of the day$pdf->Cell(35, 5, 'Date:');$pdf->TextField('date', 30, 5, array(), array('v'=>date('Y-m-d'), 'dv'=>date('Y-m-d')));$pdf->Ln(10);$pdf->SetX(50);// Button to validate and print$pdf->Button('print', 30, 10, 'Print', 'Print()', array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));// Reset Button$pdf->Button('reset', 30, 10, 'Reset', array('S'=>'ResetForm'), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));// Submit Button$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)));// Form validation functions$js = <<<EODfunction CheckField(name,message) {var f = getField(name);if(f.value == '') {app.alert(message);f.setFocus();return false;}return true;}function Print() {if(!CheckField('firstname','First name is mandatory')) {return;}if(!CheckField('lastname','Last name is mandatory')) {return;}if(!CheckField('gender','Gender is mandatory')) {return;}if(!CheckField('address','Address is mandatory')) {return;}print();}EOD;// Add Javascript code$pdf->IncludeJS($js);// ---------------------------------------------------------//Close and output PDF document$pdf->Output('example_014.pdf', 'I');//============================================================+// END OF FILE//============================================================+