Create PDF using Codeigniter

In some cases, we need the report as a pdf or html conversion to pdf. So now I will try to explain how to create pdf page in CodeIgniter. To create pdf page, we use library for creating pdf, in this example I will use library tcpdf from http://www.tcpdf.org/. Besides using tcpdf, you can also use another library such as fpdf,dompdf, etc.
I will use tcpdf? Because, I think tcpdf is very easy to use 😀
Following are instruction to add tcpdf library in your CodeIgniter:

  1. Download tcpfd from this url http://sourceforge.net/projects/tcpdf/files/
  2. Example I downloaded tcpdf_6_0_020.zip, and extract it.
  3. Move tcpdf direktory to your CodeIgniter/application/libraries/
  4. Create file in your CodeIgniter/application/libraries/Pdf.php:
    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
     
    require_once dirname(__FILE__) . '/tcpdf/tcpdf.php';
     
    class Pdf extends TCPDF
    {
     function __construct()
     {
     parent::__construct();
     }
    }
     
    /* End of file Pdf.php */
    /* Location: ./application/libraries/Pdf.php */</pre>
    
  5. And the last, now we create example controller page to create pdf page. controllers/c_test.php:
    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    class C_test extends CI_Controller {
     
        function __construct()
        {
            parent::__construct();
            $this->load->library("Pdf");
        }
     
        public function create_pdf() {
        //============================================================+
        // File name   : example_001.php
        //
        // Description : Example 001 for TCPDF class
        //               Default Header and Footer
        //
        // Author: Muhammad Saqlain Arif
        //
        // (c) Copyright:
        //               Muhammad Saqlain Arif
        //               PHP Latest Tutorials
        //               http://www.phplatesttutorials.com/
        //               saqlain.sial@gmail.com
        //============================================================+
    
      
     
        // 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('Muhammad Saqlain Arif');
        $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>
        
    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');    
     
        //============================================================+
        // END OF FILE
        //============================================================+
        }
    }
     
    /* End of file c_test.php */
    /* Location: ./application/controllers/c_test.php */
    
  6. After that finally you have done it, run this in your browser and you will get the results. :)

About the author

PHP | MVC | Codeignitor | Zend | Yii | Smarty | Android | Laravel Expert Senior Software Developer.I love my job and feel happy to working on new ideas and technologies.

COMMENTS (1)
Reply

Where were we?
[url=http://www.fifa16mall.com/tag_FIFA-16-Vanishing-Spray]FIFA 16 Vanishing Spray[/url]

Leave a Comment

Comment (required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Name (required)
Email (required)