Skip to content

Instantly share code, notes, and snippets.

@sagar-webonise
Created December 5, 2012 06:17
Show Gist options
  • Save sagar-webonise/4212929 to your computer and use it in GitHub Desktop.
Save sagar-webonise/4212929 to your computer and use it in GitHub Desktop.
This helper is useful when using the TCPDF to generate pdfs
<?php
//============================================================+
// File name : TcpdfHelper.php
// Created by : Sagar Sgirsath
// Email : sagar.shirsath2009@gmail.com
// Created On : 5 december 2012
//============================================================+
App::uses('AppHelper', 'View/Helper');
App::import('Vendor', 'tcpdf/config/lang/eng');
App::import('Vendor', 'tcpdf/tcpdf');
class TcpdfHelper extends AppHelper {
public function init() {
// 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 006');
$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 . ' 006', 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);
// ---------------------------------------------------------
// set font
$pdf->SetFont('dejavusans', '', 10);
// add a page
$pdf->AddPage();
// writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')
// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true)
return $pdf;
}
public function add_html($pdf , $html) {
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->lastPage();
return $pdf;
}
public function download_pdf($pdf){
$pdf->Output('example_006.pdf', 'I');
return $pdf;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment