In this article, we will discuss How to generate pdf in Codeigniter using the mPDF library. There are many packages available but mPDF package through we can easily generate the pdf file.

Why do we need to pdf file? when we need to generate the invoice, booking ticket generate, large data convert into pdf invoice and many more things. in case we need to pdf file.

There are many packages available but mPDF Library package through we can easily generate pdf in Codeigniter using the mPDF library.

Download and install Codeigniter

We are going to install Codeigniter 3, first, we will download a fresh Codeigniter 3 version and install it in our system. so you can follow below Link for Download CodeIgniter.

Download Mpdf Library

Now, We will Download the Mpdf package Library using the below composer command.

composer require mpdf/mpdf

Configurations of a vendor directory path

In this step, We will set the vendor directory path in the “application/config/config.php” file. so you can see the below code.

$config['composer_autoload'] = 'vendor/autoload.php';

Create Controller

In this step, we will create a Mypdf.php file in the “application/controller” directory and paste the below code in this controller.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
  
class Mypdf extends CI_Controller {
  
    public function index()
    {
        $mpdf = new \Mpdf\Mpdf();
        $html = $this->load->view('welcome_message',[],true);
        $mpdf->WriteHTML($html);
        $mpdf->Output(); // opens in browser
        //$mpdf->Output('welcome.pdf','D'); // it downloads the file into the user system.
    }
  
}

Create View File

So finally, we can create another file in and pass some data from the database to the “application/views/” directory. but here we are using simple files like “application/views/welcome_message.php”.
application/views/welcome_message.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>Welcome to CodeIgniter</title>

	<style type="text/css">

	::selection { background-color: #E13300; color: white; }
	::-moz-selection { background-color: #E13300; color: white; }

	body {
		background-color: #fff;
		margin: 40px;
		font: 13px/20px normal Helvetica, Arial, sans-serif;
		color: #4F5155;
	}

	a {
		color: #003399;
		background-color: transparent;
		font-weight: normal;
	}

	h1 {
		color: #444;
		background-color: transparent;
		border-bottom: 1px solid #D0D0D0;
		font-size: 19px;
		font-weight: normal;
		margin: 0 0 14px 0;
		padding: 14px 15px 10px 15px;
	}

	code {
		font-family: Consolas, Monaco, Courier New, Courier, monospace;
		font-size: 12px;
		background-color: #f9f9f9;
		border: 1px solid #D0D0D0;
		color: #002166;
		display: block;
		margin: 14px 0 14px 0;
		padding: 12px 10px 12px 10px;
	}

	#body {
		margin: 0 15px 0 15px;
	}

	p.footer {
		text-align: right;
		font-size: 11px;
		border-top: 1px solid #D0D0D0;
		line-height: 32px;
		padding: 0 10px 0 10px;
		margin: 20px 0 0 0;
	}

	#container {
		margin: 10px;
		border: 1px solid #D0D0D0;
		box-shadow: 0 0 8px #D0D0D0;
	}
	</style>
</head>
<body>

<div id="container">
	<h1>Welcome to CodeIgniter!</h1>

	<div id="body">
		<p>The page you are looking at is being generated dynamically by CodeIgniter.</p>

		<p>If you would like to edit this page you'll find it located at:</p>
		<code>application/views/welcome_message.php</code>

		<p>The corresponding controller for this page is found at:</p>
		<code>application/controllers/Welcome.php</code>

		<p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="user_guide/">User Guide</a>.</p>
	</div>

	<p class="footer">Page rendered in <strong>0.0668</strong> seconds. <?php echo  (ENVIRONMENT === 'development') ?  'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p>
</div>

</body>
</html>