Membuat Laporan PDF dengan Dompdf di Codeigniter 3 lewat composer
18 Mei 2023 Fauzan Falah 5,307x
Membuat Laporan PDF dengan Dompdf  di Codeigniter 3 lewat composer
codeigniter codeigniter3 dompdf composer pdf

Halo, kembali lagi ditutorial codekop, sudah lama saya gak update wkwk, kali ini saya ingin berbagi pengalaman yaitu cara menggunakan dompdf di CodeIgniter 3 lewat composer, mungkin sudah banyak yang bahas ya, cuma saya lagi mau tulis lagi untuk sebagai dokumentasi pribadi dan semoga bermanfaat juga untuk para pembaca.

Kenapa saya menggunakan dompdf ? karena waktu saya dapat project, saya menggunakan library dompdf itu kepada file project saya, yang berguna dan membantu kita dalam membuat report atau laporan sistem dengan pdf, dan terlebih lagi mudah untuk di integrasikan dari html css ke pdf karena dompdf dapat dibuat menggunakan html, dan oke langsung saja kita eksekusi.

Pertama kita siapkan file CodeIgniter versi 3.1.11

Setting autoload untuk composer di application/config/config.php

cari  script composer_autoload dibawah ini  :

$config['composer_autoload'] = FALSE;

menjadi

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

Install Dompdf dari Composer

setelah itu kita buka terminal bawaan dari windows atau linux yang sudah terinstall composer, atau bisa juga dari terminal vscode jika kamu pakai vscode sebagai teks editornya saya disini pakai vscode sebagai terminalnya untuk menginstall dompdf dari composer.

composer require dompdf/dompdf

contoh menggunakan terminal di vscode

setelah selesai menginstall dompdf dari composer langkah selanjutnya kita membuat library untuk memanggil dompdf yang ada di composer

Membuat Library Pdfgenerator.php

sekarang kita membuat library Pdfgenerator.php, untuk menjalankan dan memanggil dompdf yang terletak pada folder vendor composer, letakan script di application/libraries/Pdfgenerator.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Dompdf\Dompdf;
use Dompdf\Options;
class Pdfgenerator {
    public function generate($html, $filename='', $paper = '', $orientation = '', $stream=TRUE)
    {   
        $options = new Options();
        $options->set('isRemoteEnabled', TRUE);
        $dompdf = new Dompdf($options);
        $dompdf->loadHtml($html);
        $dompdf->setPaper($paper, $orientation);
        $dompdf->render();
        if ($stream) {
            $dompdf->stream($filename.".pdf", array("Attachment" => 0));
            exit();
        } else {
            return $dompdf->output();
        }
    }
}

setelah kita membuat library untuk memanggil dompdfnya, kita akan membuat controller untuk memanggil library yang kita buat

Membuat Controller

pada langkah ini kita akan membuat controller untuk memanggil librarynya, buat file dengan namanya Pdfview.php, letakan script ini pada folder application/controller/Pdfview.php

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

class Pdfview extends CI_Controller {
    public function index()
    {
        // panggil library yang kita buat sebelumnya yang bernama pdfgenerator
        $this->load->library('pdfgenerator');
        
        // title dari pdf
        $this->data['title_pdf'] = 'Laporan Penjualan Toko Kita';
        
        // filename dari pdf ketika didownload
        $file_pdf = 'laporan_penjualan_toko_kita';
        // setting paper
        $paper = 'A4';
        //orientasi paper potrait / landscape
        $orientation = "portrait";
        
		$html = $this->load->view('laporan_pdf',$this->data, true);	    
        
        // run dompdf
        $this->pdfgenerator->generate($html, $file_pdf,$paper,$orientation);
    }
}

Setelah membuat controller, kita akan membuat file views.

Membuat Views

pada langkah ini kita akan mencoba membuat file laporan_pdf.php untuk mengisi data pdfnya dengan menggunakan html dan css, pada file views ini saya akan membuat laporan penjualan toko kita yang akan di generate ke pdf dengan dompdf, buat nama file laporan_pdf.php , Letakan script ini pada folder application/views/laporan_pdf.php

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title><?= $title_pdf;?></title>
        <style>
            #table {
                font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
                border-collapse: collapse;
                width: 100%;
            }

            #table td, #table th {
                border: 1px solid #ddd;
                padding: 8px;
            }

            #table tr:nth-child(even){background-color: #f2f2f2;}

            #table tr:hover {background-color: #ddd;}

            #table th {
                padding-top: 10px;
                padding-bottom: 10px;
                text-align: left;
                background-color: #4CAF50;
                color: white;
            }
        </style>
    </head>
    <body>
        <div style="text-align:center">
            <h3> Laporan PDF Toko Kita</h3>
        </div>
        <table id="table">
            <thead>
                <tr>
                    <th>No.</th>
                    <th>Nama Produk</th>
                    <th>Harga Jual</th>
                    <th>Terjual</th>
                    <th>Tanggal Transaksi</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td scope="row">1</td>
                    <td>Kacang Goreng</td>
                    <td>Rp5.000,-</td>
                    <td>1</td>
                    <td>25 Oktober 2020, 17:01:03</td>
                </tr>
                <tr>
                    <td scope="row">2</td>
                    <td>Kopi Hitam</td>
                    <td>Rp5.000,-</td>
                    <td>1</td>
                    <td>25 Oktober 2020, 16:01:03</td>
                </tr>
                <tr>
                    <td scope="row">3</td>
                    <td>Gorengan Bakwan</td>
                    <td>Rp3.000,-</td>
                    <td>3</td>
                    <td>25 Oktober 2020, 15:01:02</td>
                </tr>
                <tr>
                    <td scope="row">4</td>
                    <td>Nasi uduk</td>
                    <td>Rp14.000,-</td>
                    <td>2</td>
                    <td>25 Oktober 2020, 14:04:03</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

 

tahap ini sudah selesai, sekarang kita lakukan testing di web browser, disini file codeigniter, saya taruh di xampp

Running Project PDF dengan Browser

langsung aja kita testing dengan browser :

   

Akhir Kata…

Demikian tutorial Membuat Laporan PDF dengan Dompdf  di Codeigniter 3 lewat composer Kita jumpa lagi di lain kesempatan, Semoga bermanfaat. Sampai Jumpa dan Terima Kasih.

Facebook