Question Detail

How to create html to pdf in php CODEIGNITER?

6 years ago Views 2843 Visit Post Reply

I want to create pdf in Codeigniter.I have researched many things but mostly paid or there is not that feature what I want in my pdf, Please developer suggest me any useful pdf generator.
I want am developing a website for Writer he will write store novel on site and it will be converted to pdf for free distribution.  So pdf has to be Images, Tables Formatted Text. Do you have any suggestion or tutorial?
Please share.


Thread Reply

Bili Greed

- 6 years ago

Now and again, we require the report as a pdf or html change to pdf. So now I will endeavor to disclose how to make pdf page in CodeIgniter. To make pdf page, we utilize library for making pdf, in this illustration I will utilize library tcpdf from http://www.tcpdf.org/. Other than utilizing tcpdf, you can likewise utilize another library, for example, fpdf,dompdf, and so on.
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:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    <?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:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    <?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

        //============================================================+

        }

    }

  6. After that at last you have done it, run this in your program and you will get the result

Lokesh Gupta

- 4 years ago

You can download TCDPF library from here.

<?php 

require_once('TCPDF-master/config/lang/eng.php');

require_once('TCPDF-master/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 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, 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 (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
    require_once(dirname(__FILE__).'/lang/eng.php');
    $pdf->setLanguageArray($l);
}

// ---------------------------------------------------------

// set font
$pdf->SetFont('dejavusans', '', 10);
// add a page
$pdf->AddPage();
$img=getcwd().'/logo/logo.png';
// create some HTML content
$html = '<table border="" cellpadding="5" cellspacing="0" width="100%" style="width:100%;" bordercolor="#ccc">
  <tr bgcolor="#ffffff">
    <td cellpadding="5" align="center"><img src="'.$img.'" width="164" height="46"></td>
  </tr>
  <tr bgcolor="#94c63d">
    <td align="center"><font color="#fff">
      <h2>EXPENSE CLAIM</h2>
      </font></td>
  </tr>
  <tr bgcolor="#f4f6f7">
    <td align="center"><font color="#2C3E50">
      <h3>MY DETAILS</h3>
      </font></td>
  </tr>
  <tr>
    <td><table border="0" cellpadding="8" cellspacing="8" width="100%" style="width:100%;" bordercolor="#ccc">
        <tr bgcolor="#f8f8f8">
          <td width="50%"><strong>First Name:</strong>&nbsp;<span>'.$fname.'</span></td>
          <td width="50%"><strong>Last Name:</strong>&nbsp;<span>'.$lname.'</span></td>
        </tr>
        <tr bgcolor="#f8f8f8">
          <td width="50%"><strong>Email:</strong>&nbsp;<span>'.$email.'</span></td>
          <td width="50%"><strong>Phone Number:</strong>&nbsp;<span>'.$phone_number.'</span></td>
        </tr>
        <tr bgcolor="#f8f8f8">
          <td width="50%"><strong>Employer:</strong>&nbsp;<span>'.$employer.'</span></td>
          <td width="50%"><strong>Vehicle Registration Number:</strong>&nbsp;<span>'.$vehicle_registration.'</span></td>
        </tr>
      </table></td>
  </tr>
  
  <tr bgcolor="#f4f6f7">
    <td cellpadding="8" align="center"><font color="#2C3E50"><h3>DETAILS</h3></font></td>
  </tr>
  <tr>
    <td>'.$details.'</td>
  </tr>
  <tr bgcolor="#f4f6f7">
    <td cellpadding="8" align="center"><font color="#2C3E50">
      <h3>Term & Condition</h3>
      </font></td>
  </tr>
  <tr>
    <td><table border="0" cellpadding="8" cellspacing="8" width="100%" style="width:100%;" bordercolor="#ccc">
        <tr bgcolor="#f8f8f8">
          <td width="50%"><strong></strong></td>
          <td width="50%"></td>
        </tr>
        <tr bgcolor="#f8f8f8">
          <td width="50%"><strong></strong></td>
            <td width="50%"></td>
        </tr>
        <tr bgcolor="#f8f8f8">
          <td width="50%"><strong></strong></td>
          <td width="50%"></td>
        </tr>
      </table></td>
  </tr>
  <tr bgcolor="#f4f6f7">
    <td align="center"><font color="#2C3E50">
      <h3>DECLARATION</h3>
      </font></td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" style="width:auto;" checked>
      Yes - I accept this declaration. </td>
  </tr>
  <tr bgcolor="#181828">
    <td align="center" style="color:#99a9b5; padding:25px; font-size:18px;">XYZ Pty Ltd. </td>
  </tr>
</table>';


// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

// reset pointer to the last page
$pdf->lastPage();

// ---------------------------------------------------------
$filename = $fname.'-filename-'.time().'.pdf';
//Close and output PDF document
$pdfdoc=$pdf->Output(getcwd().'/'.$filename, 'F'); 


?>