Date Posted : 10-12-2018

What is Dompdf?

Dompdf  is a HTML to PDF converter. It is a great library and can create a PDF from HTML markup and CSS styles (it’s mostly CSS 2.1 compliant and has support for some CSS3 properties).

Step 1: Initially, download the fresh version of Codeigniter 3 and configure it in xampp.

Step 2: Create the file   name called “ Pdf.php ” . Place this file inside the application/libraries/ and copy the following code.

<?php defined('BASEPATH') OR exit('No direct script access allowed');
	require_once(dirname(__FILE__) . '/dompdf/dompdf_config.inc.php');
	class Pdf extends DOMPDF
	{
		/**
		 * Get an instance of CodeIgniter
		 *
		 * @access	protected
		 * @return	void
		 */
		protected function ci()
		{
			return get_instance();
		}
		/**
		 * Load a CodeIgniter view into domPDF
		 *
		 * @access	public
		 * @param	string	$view The view to load
		 * @param	array	$data The view data
		 * @return	void
		 */
		public function load_view($view, $data = array())
		{
			$html = $this->ci()->load->view($view, $data, TRUE);
			$this->load_html($html);
		}
	}

Step 3: Dompdf: we have to download dompdf library from GitHub, So let’s download from here : Click Here to download dompdf. After download extract it to your “application/libraries” folder and rename it to “dompdf”.

Step 4: In this step, we will add one route “mypdf” for demo, that way when we run this route we will download pdf file, So let’s add following route on your routes.php file.

application/config/routes.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');


$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['mypdf'] = "welcome/mypdf";

Step 5: In this step we require to add “mypdf” method on welcome controller, So let’s add with following code. you have to just copy of welcome.php controller file:

application/controllers/Welcome.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');


class Welcome extends CI_Controller {


  /**
    * Get All Data from this method.
    *
    * @return Response
   */
   public function index()
   {
	$this->load->view('welcome_message');
   }


   /**
    * Get Download PDF File
    *
    * @return Response
   */
   function mypdf(){


	$this->load->library('pdf');


  	$this->pdf->load_view('mypdf');
  	$this->pdf->render();


  	$this->pdf->stream("welcome.pdf");
   }
}

Step 6: Adding View File

Now at last step we require to create “mypdf.php” view file for generate pdf file. So now as below i created “mypdf.php” with some html code, so you have to copy below code and create on view folder:

application/views/mypdf.php

<!DOCTYPE html>
<html>
<head>
	<title>Codeigniter 3 - Generate PDF from view using dompdf library with example</title>
</head>
<body>


<h1>Codeigniter 3 - Generate PDF from view using dompdf library with example</h1>
<table style="border:1px solid red;width:100%;">
	<tr>
		<th style="border:1px solid red">Id</th>
		<th style="border:1px solid red">Name</th>
		<th style="border:1px solid red">Email</th>
	</tr>
	<tr>
		<td style="border:1px solid red">1</td>
		<td style="border:1px solid red">Hardik</td>
		<td style="border:1px solid red">user@email.com</td>
	</tr>
	<tr>
		<td style="border:1px solid red">2</td>
		<td style="border:1px solid red">Paresh</td>
		<td style="border:1px solid red">user@email.com</td>
	</tr>
</table>


</body>
</html>

Ok, now we are ready to run our PDF generator example. So let’s run below command on your root directory for quick run:

http://localhost/mypdf