Installing TCPDF

You can download the TCPDF library from sourceforge, https://sourceforge.net/projects/tcpdf/

TCPDF is a PHP class for writing PDF documents.

A sample code with a PHP example of TCPDF's, looks as follows:

//Taken from http://www.tcpdf.org/examples/example_001.phps 
 
// 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 document information 
$pdf->SetCreator(PDF_CREATOR); 
$pdf->SetAuthor('Nicola Asuni'); 
$pdf->SetTitle('TCPDF Example 001'); 
$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.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128)); 
$pdf->setFooterData(array(0,64,0), array(0,64,128)); 
 
// 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 (optional) 
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { 
    require_once(dirname(__FILE__).'/lang/eng.php'); 
    $pdf->setLanguageArray($l); 
} 
 
// --------------------------------------------------------- 
 
// set default font subsetting mode 
$pdf->setFontSubsetting(true); 
 
// Set font 
// dejavusans is a UTF-8 Unicode font, if you only need to 
// print standard ASCII chars, you can use core fonts like 
// helvetica or times to reduce file size. 
$pdf->SetFont('dejavusans', '', 14, '', true); 
 
// Add a page 
// This method has several options, check the source code documentation for more information. 
$pdf->AddPage(); 
 
// set text shadow effect 
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal')); 
 
// Set some content to print 
$html = <<<EOD 
<h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:none;background-color:#CC0000;color:black;">&nbsp;<span style="color:black;">TC</span><span style="color:white;">PDF</span>&nbsp;</a>!</h1> 
<i>This is the first example of TCPDF library.</i> 
<p>This text is printed using the <i>writeHTMLCell()</i> method but you can also use: <i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p> 
<p>Please check the source code documentation and other examples for further information.</p> 
<p style="color:#CC0000;">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION!</a></p> 
EOD; 
 
// Print text using writeHTMLCell() 
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); 
 
// --------------------------------------------------------- 
 
// Close and output PDF document 
// This method has several options, check the source code documentation for more information. 
$pdf->Output('example_001.pdf', 'I'); 

With this example, we can now use the preceding code and modify it a bit in order same in order to create our own invoice. All we need is the same HTML styling and the values generated by our total. Let's use the same code and update the values to the ones we need.

In this case, we will set the Author to be the site's name, example.info. And set our subject to Invoice.

First, we need to acquire the main TCPDF library. If you installed it on a different folder, we may need to provide a relative path which points to the tcpdf_include.php file:

require_once('tcpdf_include.php'); 

This instantiates a new TCPDF object with the default orientations and default page formats from the class:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
 
// set document information 
$pdf->SetCreator(PDF_CREATOR); 
$pdf->SetAuthor('Example.Info'); 
$pdf->SetTitle('Invoice Purchases'); 
$pdf->SetSubject('Invoice'); 
$pdf->SetKeywords('Purchases, Invoice, Shopping'); 
s 
 
$html = <<<EOD 
<h1>Example.info Invoice </h1> 
<i>Invoice #0001.</i> 
EOD; 
 

Now, let's use HTML to create an HTML table of the purchases of a customer:

$html .= <<<EOD 
<table> 
  <tr> 
    <td>Item Purchases</td> 
    <td>Price</td> 
  </tr> 
EOD; 

Note

This style of writing out multi-line strings is known as the heredoc syntax.

Let's create a connection to the database by instantiating our DB class:

$db = new DBClass('localhost','root','password', 'databasename'); 
We shall now query our database with our database class: 
 
 
$table = 'purchases'; 
$column = 'id';  
$findVal = $_GET['purchase_id']; 
 
   $result = $db->read ($table, $column, $findVal); 
 
foreach($item = $result->fetch_assoc()) { 
$html .=   "<tr> 
         <td>". $item['customer_name']. "</td> 
         <td>" . $item['items'] . " 
</tr>"; 
 
$total = $items['total']; //let's save the total in a variable for printing in a new row 
 
} 
 
$html .= '<tr><td colspan="2" align="right">TOTAL: ' ".$total. " ' </td></tr>'; 
 
$html .= <<<EOD 
</table> 
EOD; 
 
$pdf->writeHTML($html, true, false, true, false, ''); 
 
$pdf->Output('customer_invoice.pdf', 'I'); 

In creating PDFs, it's important to note that most HTML to PDF converters are created simple and can interpret simple-inline CSS layouts. We used tables to print out each item, which is okay for table data. It provides a structure to the layout and makes sure that things are properly aligned.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.97.216