Halo, di tutorial CodeIgniter 4 kali ini kita akan bahas cara generate PDF di aplikasi CodeIgniter 4. Sama halnya dengan tutorial export excel, di tutorial ini juga kita akan mencoba menggunakan sebuah library yang sering digunakan untuk generate pdf atau export file dalam format pdf, yaitu library Dompdf.

Apa itu Dompdf?

dompdf adalah sebuah library yang berfungsi sebagai converter HTML ke dalam format PDF. Pada intinya, library ini merupakan sebuah engine yang ditulis dalam PHP untuk merender layout HTML yang sesuai dengan CSS2.1. Berdasarkan catatan di repositorinya, dompdf ini style-driven renderer, yang artinya, library ini dapat menggunakan css dari eksternal, inline style tag maupun style dari masing-masing element HTML dan juga mendukung sebagian besar atribut HTML. Nah, jadi di tutorial CodeIgniter 4 kali ini, kita akan coba mengubah sebuah halaman HTML menjadi file dengan format pdf. Yuk kita mulai~

Step 1 - Install CodeIgniter 4 App

Pertama kita install CodeIgniter 4 menggunakan composer. Buka terminal, lalu run command ini untuk menginstall CodeIgniter 4.

composer create-project codeigniter4/appstarter ci4-pdf-example

Setelah dirun, proses instalasi codeigniter 4 dimulai. Kita tunggu sampai proses installnya selesai.

Step 2 - Install DomPDF

Langkah kita berikutnya adalah menginstall library DomPDF. Berdasarkan repositori DomPDF, ada beberapa cara untuk menginstall DomPDF. Salah satunya adalah menginstall melalui composer. Sebelum menginstall library, kita masuk dulu ke dalam direktori project.

cd ci4-pdf-example

Selanjutnya kita install DomPDF, run command di bawah ini.

composer require dompdf/dompdf

Tunggu sampai proses instalasi selesai. Karena kita menginstall menggunakan composer, DomPDF bisa langsung kita gunakan tanpa perlu ada konfigurasi.

Step 3 - Membuat Controller baru

Kita buat sebuah controller yang akan menangani proses generate PDF menggunakan DomPDF, misalkan namanya itu PdfController. Di dalam class PdfController, kita buat dua method. Method yang pertama untuk menampilkan halaman utama yang memiliki link untuk generate pdf dan method kedua untuk menangani proses generate PDF menggunakan DomPDF.

Sekarang kita buat file baru dengan nama PdfController.php di app/Controllers. Kita tambahkan kode berikut ini di dalam file PdfController.php.

<?php

namespace App\Controllers;
use CodeIgniter\Controller;
use Dompdf\Dompdf;

class PdfController extends Controller
{
    public function index()
    {
        return view('pdf_view');
    }

    public function generate()
    {
        $filename = date('y-m-d-H-i-s'). '-qadr-labs-report';

        // instantiate and use the dompdf class
        $dompdf = new Dompdf();

        // load HTML content
        $dompdf->loadHtml(view('pdf_view'));

        // (optional) setup the paper size and orientation
        $dompdf->setPaper('A4', 'landscape');

        // render html as PDF
        $dompdf->render();

        // output the generated pdf
        $dompdf->stream($filename);
    }
}

Setelah selesai, kita save file PdfController.php.

Step 4 - Membuat file View

Langkah selanjutnya adalah membuat file view. File view yang akan kita buat ini digunakan untuk menampilkan halaman utama dan juga digunakan untuk tampilan pdf hasil generate menggunakan DomPDF. Buat file baru dengan nama pdf_view.php di app\Views, lalu kita ketik kode berikut ini.

<!DOCTYPE html>  
<html lang="en">  

<head>  
    <meta charset="UTF-8">  
    <meta http-equiv="X-UA-Compatible" content="IE=edge">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>Generate PDF CodeIgniter 4 - qadrLabs</title>  

</head>  

<body>  
<h2>Data Mahasiswa </h2>  
<a href="<?php echo site_url('pdf/generate') ?>">  
    Download PDF  
</a>  
<table border=1 width=80% cellpadding=2 cellspacing=0 style="margin-top: 5px; text-align:center">  
    <thead>    <tr bgcolor=silver align=center>  
        <td width="5%">No</td>  
        <td width="25%">Nim</td>  
        <td width="50%">Nama</td>  
        <td width="20%">Nilai</td>  
    </tr>    </thead>    <tbody>    <tr>        <td>1</td>  
        <td>1930511041</td>  
        <td>Resita</td>  
        <td>85</td>  
    </tr>    <tr>        <td>2</td>  
        <td>1930511044</td>  
        <td>Tika</td>  
        <td>85</td>  
    </tr>    <tr>        <td>3</td>  
        <td>1930511050</td>  
        <td>Ramdan</td>  
        <td>80</td>  
    </tr>    <tr>        <td>4</td>  
        <td>1930511051</td>  
        <td>Nahla</td>  
        <td>85</td>  
    </tr>    <tr>        <td>5</td>  
        <td>1930511052</td>  
        <td>Reski</td>  
        <td>95</td>  
    </tr>    </tbody></table>  
<p>Jumlah data : 5</p>  
</body>  

</html>

Setelah selesai, kita save file view pdf_view.php.

Step 5 - Definisikan route

Langkah terakhir untuk fitur generate pdf menggunakan DomPDF di aplikasi CodeIgniter 4 ini adalah mendefinisikan route. Buka file app/Config/Routes.php. Temukan kode ini di sekitar baris 35.

$routes->get('/', 'Home::index');

Kita ubah routenya, kita arahkan ke controller yang baru saja kita buat.

$routes->get('/', 'PdfController::index');

Selanjutnya kita tambahkan route kedua untuk proses generate pdf.

$routes->get('/pdf/generate', 'PdfController::generate');

Jadi sekarang kita sudah definisikan dua route.

/*  
 * -------------------------------------------------------------------- * Route Definitions * -------------------------------------------------------------------- */  
// We get a performance increase by specifying the default  
// route since we don't have to scan directories.  
$routes->get('/', 'PdfController::index');  
$routes->get('/pdf/generate', 'PdfController::generate');

Save kembali file Routes.php.

Step 6 - Uji Coba

Untuk menguji coba, kita run aplikasi codeigniter 4 menggunakan command.

php spark serve

Selanjutnya buka url ini di browser.

http://localhost:8080

Kita bisa lihat halaman sederhana yang menampilkan data mahasiswa. Selanjutnya kita coba download file pdf hasil generate menggunakan DomPDF dengan menekan link download. Aplikasi akan memulai proses generate PDF, dan hasilnya dapat kita download berupa file pdf.

Penutup

Di tutorial ini, kita sudah bisa menginstall dan menggunakan library domPDF untuk melakukan proses generate PDF di aplikasi CodeIgniter 4. Dengan library ini kita bisa membuat file pdf dengan mengubahnya dari file view yang kita tentukan.

Referensi

Gun Gun Priatna
Software Engineer, Content Writer and Founder qadrlabs.com
Komentar

blog comments powered by Disqus