Generate a PDF file using Dompdf in Codeigniter
In this article, we will discuss How to generate pdf in Codeigniter using the Dompdf library. There are many packages available but Dompdf 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 the Dompdf Library package through we can easily generate the pdf file.
Overview
Step 1: Download and install Codeigniter
Step 2: Download and Install Dompdf Library
Step 3: Configurations of config file
Step 4: Create Controller
Step 5: Create View File
Step 1: 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.
Step 2: Download Dompdf Library
Now, We will Download the Dompdf package Library using the below composer command.
1 | composer require dompdf/dompdf:0.7.x@beta |
Step 3: Configurations of config file
In this step, We have to change in the config.php file. so you can see the below code.
1 | $config['composer_autoload'] = TRUE; |
Step 4: Create Controller
In this step, we will create a Dompdf.php file in the “application/controller” directory and paste the below code in this controller.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Dompdf extends CI_Controller { public function index() { $dompdf = new Dompdf\Dompdf(); $html = $this->load->view('welcome_message',[],true); $dompdf->loadHtml($html); $dompdf->setPaper('A4', 'landscape'); $dompdf->render(); $pdf = $dompdf->output(); $dompdf->stream(); } } |
Step 5: 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
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 | <?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>{elapsed_time}</strong> seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p> </div> </body> </html> |