Cara Menggunakan Library Dompdf Di Codeigniter, Lengkap!

PDF merupakan dokumen yang digunakan dalam menunjukan laporan, namun bagaimanakah caranya untuk m...
Penulis
Admin
Kategori
Tutorial
Estimasi
5 menit baca
Dilihat
2.1K
Posting
22 Jun 2022
Cara Menggunakan Library Dompdf Di Codeigniter, Lengkap! PDF merupakan dokumen yang digunakan dalam menunjukan laporan, namun bagaimanakah caranya untuk mengenerate PDF dengan Dompdf di Codeigniter dengan singkat, mudah dan jelas. Cara Menggunakan Library Dompdf Di Codeigniter, Lengkap!
2022-11-25

PDF merupakan dokumen multifungsi yang banyak digunakan untuk banyak keperluan seperti membuat laporan atau hanya sekedar menconvert dari HTML ke PDF. Jika kalian mengunakan framework Codeigniter, library PDF sendiri sudah tersedia di Github untuk mempermudah proses pembuatan laporan PDF kalian salah satunya adalah Dompdf.

Dompdf merupakan library khusus untuk menconvert dokumen HTML menjadi PDF yang dapat diintegrasikan dengan framework maupun native. Pada kesempatan kali ini, kita akan memberikan tutorial sederhana yaitu cara membuat laporan PDF dengan library Dompdf di Codeigniter yang dipasang dengan cara menggunakan composer atau tanpa composer.

Disini kita menggunakan data secara manual yaitu menggunakan array (tidak menggunakan database), jika kalian ingin menggunakan database, silahkan sesuai saja.

 

 

1. Dengan menggunakan Composer

Installasi library ini dengan menggunakan composer sebenarnya tidak terlalu sulit dan bisa dibilang cepat, hanya dengan menjalankan beberapa perintah di terminal, semua sudah terselesaikan. Berikut adalah tahap installasi dengan menggunakan composer, silahkan ikuti step by stepnya:

Langkah 1: Aktifkan autoload

Bagi kalian yang sudah familiar dengan terminal, mungkin cara ini adalah cara termudah dan tercepat. Sebelum memasang Dompdf kedalam framework, aktifkan dulu autoload yang berada didalam config Codeigniter, caranya masuk kedalam folder config, buka file config.php lalu cari baris 141, tambahkan nilai pada composer_autoload, yaitu:

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

Langkah 2: Jalankan composer melalui terminal

Selanjutnya kalian masuk kedalam terminal, dipastikan kalian sudah menginstall composer terlebih dahulu didalam komputer, jika belum, silahkan kunjungi link Get Composer untuk menginstall composer.

Jika sudah, masuk kedalam terminal dan arahkan kedalam folder project kalian, sebagai contoh folder project berada didalam folder htdocs XAMPP, untuk masuk kedalam folder tersebut bisa dengan cara:

cd c:\
cd xampp
cd htdocs
cd [nama project]

Setelah itu, masukan perintah berikut untuk menjalankan installasi kedalam framework codeigniter kalian.

composer require dompdf/dompdf

Tunggu hingga proses selesai, jika sudah maka tampilan akan seperti digambar ini:

Tutorial Install atau pasang Dompdf dengan Codeigniter

Dan struktur folder akan berubah dan folder vendor sudah terbuat secara otomatis untuk memanggil library, kira-kira seperti ini:

Tutorial Install atau pasang Dompdf dengan Codeigniter

Langkah 3: Membuat library Dompdf

Setelah proses installasi selesai, langkah selanjutnya adalah membuat library khusus untuk memanggil Dompdf kedalam controller Codeigniter. Langkah ini dapat mempermudah proses pemanggilan library pdf kedalam controller yang dibutuhkan.

Buat file baru didalam folder application/libraries, bisa beri nama dengan pdf.php, ikuti kode dibawah ini:

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

use Dompdf\Dompdf;

class Pdf extends Dompdf {

   public $filename;

   public function __construct() {
      parent::__construct();
      $this->filename = "laporan-hari-ini.pdf";
   }

   protected function ci() {
      return get_instance();
   }

   public function load($view, $data = array()) {
      $html = $this->ci()->load->view($view, $data, true);
      $this->load_html($html);
      $this->render();
      $this->stream($this->filename, array("Attachment" => false));
   }
}

 

Setelah selesai, klik save dan buat file controller dan view untuk menampilkan pdf yang akan di convert.

Langkah 4: Membuat controller

Disini kita akan membuat controller khusus dengan class Laporan yang memiliki dua function yaitu index dan export_pdf, function index ini ditujukan untuk menampilkan table data pada HTML dan akan memberikan tombol khusus untuk mengarahkan kedalam tab export pdf.

Dan yang terakhir function export_pdf merupakan function khusus yang ditujukan untuk proses convert HTML kedalam PDF yang mengarahkan langsung kedalam library Dompdf yang sudah dibuat. Setelah itu kalian bisa create file php baru, sebagai contoh kalian bisa samakan nama  filenya denganLaporan.php dan lalu ikuti syntax dibawah ini:

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

class Laporan extends CI_Controller {

   public function index() {

      $data['title'] = 'Laporan penjualan hari ini';
      $data['description'] = 'Laporan Penjualan hari ini';
      $data['button'] = true;
      $data['laporan'] = [
          [
            'produk' => 'Baju',
            'total' => '500000'
          ],
          [
            'produk' => 'Snack',
            'total' => '250000'
          ],
          [
            'produk' => 'Makanan pokok',
            'total' => '750000'
          ]
      ];
      $this->load->view('view_laporan', $data);
   }

   public function export_pdf() {

      $data['title'] = 'Laporan penjualan hari ini';
      $data['description'] = 'Laporan Penjualan hari ini';
      $data['button'] = false;
      $data['laporan'] = [
          [
            'produk' => 'Baju',
            'total' => '500000'
          ],
          [
            'produk' => 'Snack',
            'total' => '250000'
          ],
          [
            'produk' => 'Makanan pokok',
            'total' => '750000'
          ]
      ];
      $this->load->library('pdf');
      $this->pdf->setPaper('A4', 'potrait');
      $this->pdf->filename = 'laporan-hari-ini.pdf';
      $this->pdf->load('view_laporan', $data);
   }
}

 

Setelah selesai, kita lanjut untuk membuat view.

Langkah 5: Membuat view

Langkah terakhir adalah menambahkan view untuk menampilkan data yang sudah kita tentukan. Buat file baru yang bernama view_laporan.php dan ikuti kode dibawah ini:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo $title; ?></title>
<meta name="description" content="<?php echo $description; ?>"/>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<style>
    h3 {
        text-align: center;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 30px;
    }
</style>
</head>

<body>

<div class="container mt-4">
    <h3><?php echo $title; ?></h3>

    <?php if($button == true) { ?>
        <a href="<?php echo base_url('laporan/export_pdf'); ?>" class="btn btn-sm btn-primary float-right mb-4" target="_blank">Export PDF</a>
    <?php } ?>

    <table border="1" width="100%" style="text-align:center;">
        <tr>
            <th>No</th>
            <th>Produk</th>
            <th>Total</th>
        </tr>
        <?php $no = 1; foreach($laporan as $row){ ?>
            <tr>
                <td><?php echo $no++; ?></td>
                <td><?php echo $row['produk']; ?></td>
                <td>Rp. <?php echo number_format($row['total'], 0, '.', '.'); ?></td>
            </tr>
        <?php } ?>
    </table>
</div>

</body>
</html>

 

Kalian sudah berhasil membuat laporan PDF menggunakan Dompdf dengan menggunakan Composer, silahkan buka project kalian dan arahkan URL yang sesuai dengan controller untuk memulai, contoh: http://localhost/pdf/laporan. Maka hasil akhir yang didapat akan seperti dibawah ini:

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

 

2. Tanpa menggunakan composer

Selain menggunakan composer, kalian juga bisa menginstall tanpa menggunakan composer, namun untuk menginstall secara manual kalian harus teliti, dikarenakan library ini membutuhkan beberapa komponen tambahan agar dapat bekerja dengan baik Berikut adalah beberapa step yang harus dilakukan agar library ini dapat digunakan dengan Codeigniter.

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

 

Langkah 1: Download library Dompdf di Github

Untuk menjalankannya, kalian harus download terlebih dahulu library di Github resminya Dompdf Library silahkan download dan extract file dompdf-master.zip kedalam folder application/libraries.

Langkah 2: Download utility yang dibutuhkan

Setelah selesai mendownload dan extract file master, selanjutnya kalian harus mendownload beberapa file yang dibutuhkan agar library ini dapat berjalan dengan baik diantaranya:

  • autoload.inc.php
  • load_font.php

dan beberapa tambahan library tambahan seperti:

  • Folder Libraries Font
  • Folder Libraries SVG

Kedua library ini sangat penting, karena dibutuhkan untuk dipanggil didalam file autoload.inc.php. Silahkan download masing-masing dari file dan library yang dibutuhkan dibawah ini:

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

Silahkan download autoload.inc.php dan load_font.php di Dompdf Utils

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

Silahkan download library font Dompdf di Dompdf PHP Font Lib

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

Silahkan download library SVG Dompdf di SVG Dompdf Library

 

Extract file zip utils dan letakan file yang dibutuhkan yaitu autoload.inc.php dan load_font.php tepat diluar folder lib. Lalu selanjutnya tempatkan folder php-font-lib-master, php-svg-lib-master yang masing-masing sudah diextract berada didalam folder lib. Hapus nama akhir (master) kedua dari folder tersebut menjadi php-font-lib, php-svg-lib.

Silahkan ikuti struktur file dan folder dalam gambar dibawah ini, jika mengalami kesulitan:

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

 

Langkah 3: Membuat library

Langkah selanjutnya kita akan membuat library khusus Dompdf yang akan dipanggil kedalam controller yang dibutuhkan, buat file dan beri nama pdf.php dan kalian bisa langsung ikuti syntax dibawah ini:

<?php
defined("BASEPATH") or exit("No direct script access allowed");

require_once "dompdf-master/autoload.inc.php";

use Dompdf\Dompdf;
use Dompdf\Options;

class Pdf
{
    public function load(
        $html,
        $filename = null,
        $paper = null,
        $orientation = null,
        $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, ["Attachment" => 0]);
        } else {
            return $dompdf->output();
        }
    }
}

 

Setelah selesai, kita lanjut untuk membuat controller untuk membuat function khusus convert kedalam PDF.

Langkah 4: Pemanggilan Library kedalam controller

Dari segi isi syntax, sebenarnya tidak jauh berbeda dengan metode dengan composer, perbedaannya hanyalah dalam cara pemanggilan librarynya saja, kalian bisa menggunakan syntax dibawah ini untuk memanggil dan memproses datanya. 

<?php
defined("BASEPATH") or exit("No direct script access allowed");

class Laporan extends CI_Controller
{
    public function index()
    {
        $data["title"] = "Laporan penjualan hari ini";
        $data["description"] = "Laporan Penjualan hari ini";
        $data["button"] = true;
        $data["laporan"] = [
            [
                "produk" => "Baju",
                "total" => "500000",
            ],
            [
                "produk" => "Snack",
                "total" => "250000",
            ],
            [
                "produk" => "Makanan pokok",
                "total" => "750000",
            ],
        ];

        $this->load->view("view_laporan", $data);
    }

    public function export_pdf()
    {
        $data["title"] = "Laporan penjualan hari ini";
        $data["description"] = "Laporan Penjualan hari ini";
        $data["button"] = false;

        $data["laporan"] = [
            [
                "produk" => "Baju",
                "total" => "500000",
            ],
            [
                "produk" => "Snack",
                "total" => "250000",
            ],
            [
                "produk" => "Makanan pokok",
                "total" => "750000",
            ],
        ];

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

        $file_pdf = "laporan-penjualan-hari-ini.pdf";
        $paper = "A4";
        $orientation = "potrait";
        $html = $this->load->view("view_laporan", $data, true);

        $this->pdf->load($html, $file_pdf, $paper, $orientation);
    }
}

 

Kalian sudah berhasil membuat laporan PDF dengan Dompdf tanpa menggunakan composer atau manual, silahkan buka project kalian dan arahkan URL yang sesuai dengan controller untuk memulai, contoh: http://localhost/pdf/laporan/home. Maka hasil akhir yang didapat akan seperti dibawah ini:

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

 

Tutorial Install atau pasang Dompdf dengan Codeigniter

 

Kesimpulan

Demikian tutorial cara memasang library Dompdf kedalam Codeigniter dengan menggunakan Composer dan manual. Dengan mengunakan library ini, kalian tidak perlu kesulitan untuk menconvert HTML kedalam PDF dan cara penggunaan pun tidak terlalu sulit, cukup panggil URL yang ditujuan dan PDF sudah siap untuk didownload.

Share