Kategori Random

Membuat Laporan PDF dengan DomPDF di CodeIgniter

Posted : 04 November 2016 | 07:42:55 , Dibaca 5220 kali

Salam coding, jumpa kembali dengna tutorial saya. Kali ini saya akan membagikan cara membuat laporan pdf di Codeigniter dengan bantuan Plugin DomPDF. DomPDF merupakan salah satu plugin yang bisa kita gunakan untuk menggenerate laporan berformat pdf di PDF selain plugin ini masih banyak plugin yang bisa kita gunakan seperti FPDF, MPDF dan yang lainnya. 

Dan seperti pada awal kita akan membahas DomPDF, keunggulan utama plugin ini penerapannya menggunakan code elemen html untuk templatenya dan desainnya bisa langsung menggunakan style css, jadi apa yang kita buat pada kode html akan render persis tampil pada pdf nantinya. Langkah awal yg harus di lakukan adalah melengkapi plugin yang dibutuhkan dalam pengerjaan 

1. Framework CI 
2. Jquery 
3. DomPDF Plugin bisa di download disini

oke mari kita mulai setelah plugin yang dibutuhkan telah lengkapi. 

Langkah 1 : Database

Silakan buat database sesuai keinginan anda dan import kode sql dump dibawah 

CREATE TABLE `tb_barang` (
  `kode_brg` int(5) NOT NULL AUTO_INCREMENT,
  `barcode` varchar(20) NOT NULL,
  `nama_brg` varchar(150) NOT NULL,
  `harga_brg` int(10) NOT NULL,
  `keterangan` tinytext NOT NULL,
  `jenis` varchar(30) DEFAULT NULL,
  `satuan` varchar(30) DEFAULT NULL,
  `stok_brg` int(5) DEFAULT NULL,
  `gbr_brg` varchar(40) DEFAULT NULL,
  PRIMARY KEY (`kode_brg`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1

dan import kembali untuk data tabelnya 

insert  into `tb_barang`(`kode_brg`,`barcode`,`nama_brg`,`harga_brg`,`keterangan`,`jenis`,`satuan`,`stok_brg`,`gbr_brg`) values (1,'233012','Papan Triplek',30000,'Laptop lenovo E200 adalah tipe laptop thinkpad yang dikeluarkan Lenovo untuk anda yang mobile dan suka bepergian.\r\n\r\nDengan desain yang simple serta berat 1,7 Kg anda tidak akan susah payah untuk membawa nya kemana-mana.','Papan','lembar',200,'lenovo-g40-80-4-gb-intel-089-274609.jpg'),
(2,'110029','Piring Kaca',21000,'Piring Kaca dengan motif cantik','Kelontong','Lusin',10,'lenovo-g40-intel-core-i7.jpg'),(3,'123993','Tisu Basah',2500,'Tisu basah untuk muka','Tools','buah',10,'lenovo-g40-80-4-gb-intel-r.jpg'),
(4,'123499','Aqua 600 ml',25000,'Air Mineral AQUA 600 ml','Minuman','kardus',40,'lenovo-ideapad-g40-1.jpg'),
(5,'123500','Mie Sedap',45000,'Mie Instan Mie Sedap ','Makanan','kardus',40,'lenovo-ideapad-g40-2.jpg');

Langkah 2 : Konfigurasi

untuk konfigurasi codeigniter silakan diikuti :

- konfigurasi agar bisa terkoneksi ke database
- untuk folder dompdf yang didownload tadi silakan di replace sesuai degan folder yang telah tersedia.

Langkah 3 : Implementasi

buat sebuah Controller dan beri nama claporanpdf.php dan buat seperti skrip dibawah ini :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Claporanpdf extends CI_Controller {
    /*****
     | Laporan PDF dengan DOMPDF
     | controller claporanpdf
     | by gtech
    *****/

    public function __construct() {
        parent::__construct();
        $this->load->model('mlaporan');
        $this->load->library('dompdf_gen');
    }

    public function index()
    {
        $data['title'] = 'Laporan PDF CodeIgniter dengan DOMPdf'; //judul title
        $data['qbarang'] = $this->mlaporan->getAllItem(); //query model semua barang
        $this->load->view('vlaporan',$data);
    }

    // fungsi cetak pdf
    public function cetakpdf(){
        $data['title'] = 'Cetak PDF Barang'; //judul title
        $data['qbarang'] = $this->mlaporan->getAllItem(); //query model semua barang

        $this->load->view('vcetaklaporan', $data);

        $paper_size  = 'A4'; //paper size
        $orientation = 'landscape'; //tipe format kertas
        $html = $this->output->get_output();

        $this->dompdf->set_paper($paper_size, $orientation);
		//Convert to PDF
		$this->dompdf->load_html($html);
		$this->dompdf->render();
		$this->dompdf->stream("laporan.pdf", array('Attachment'=>0)); 
    }
}
/* End of file claporanpdf.php */
/* Location: ./application/controllers/claporanpdf.php */

pada controller claporanpdf pada fungsi cetakpdf telah disisipkan script dari library domp pdf agar file view vcetaklaporanpdf dirender ke format pdf, pada script fungsi streamnya terdapat tambahan Attachment =>0 ini berfungsi agar page tidak didownload langsung melainkan ditampilkan.

kemudian untuk model simpan dengan nama mlaporan.php

<?php
class Mlaporan extends CI_Model {

    var $tabel = 'tb_barang';

    function __construct() {
        parent::__construct();
    }
	function getAllItem() {
        $this->db->from($this->tabel);
		$query = $this->db->get();
        return $query->result();
	}

}
?>

untuk view yang pertama simpan dengan nama vlaporan.php

<!DOCTYPE html>
<html>
<head>
  <title><?=$title?></title>
  <style>
  table{
      border-collapse: collapse;
      width: 70%;
      margin: 0 auto;
  }
  table th{
      border:1px solid #000;
      padding: 3px;
      font-weight: bold;
      text-align: center;
  }
  table td{
      border:1px solid #000;
      padding: 3px;
      vertical-align: top;
  }

  </style>
</head>

<body>
<p style="text-align: center">Tabel Barang</p>
<table>
    <tr>
        <th>No</th>
        <th style="width: 20%">Nama Barang</th>
        <th>Kategori</th>
        <th>Harga</th>
        <th>Stok</th>
        <th>Satuan</th>
        <th>Keterangan</th>
    </tr>
    <?php $no=0; foreach($qbarang as $rbarang){
    $no++;
    ?>
    <tr>
        <td><?php echo $no;?></td>
        <td><?php echo $rbarang->nama_brg;?></td>
        <td><?php echo $rbarang->jenis;?></td>
        <td><?php echo $rbarang->harga_brg;?></td>
        <td><?php echo $rbarang->stok_brg;?></td>
        <td><?php echo $rbarang->satuan;?></td>
        <td><?php echo $rbarang->keterangan;?></td>
    </tr>
    <? }?>
</table>
<p style="text-align: center"><a href="<?php echo base_url()?>claporanpdf/cetakpdf">Cetak PDF</a>   </p>

</body>
</html>

kemudia view yang kedua simpan dengan nama vcetaklaporan.php silakan buat scriptnya seperti dibawah ini

<!DOCTYPE html>
<html>
<head>
  <title><?=$title?></title>
  <style>
  table{
      border-collapse: collapse;
      width: 100%;
      margin: 0 auto;
  }
  table th{
      border:1px solid #000;
      padding: 3px;
      font-weight: bold;
      text-align: center;
  }
  table td{
      border:1px solid #000;
      padding: 3px;
      vertical-align: top;
  }
  </style>
</head>
<body>
<p style="text-align: center">Tabel Barang</p>
<table>
    <tr>
        <th style="width: 2%">No</th>
        <th style="width: 20%">Nama Barang</th>
        <th>Kategori</th>
        <th>Harga</th>
        <th>Stok</th>
        <th>Satuan</th>
        <th>Keterangan</th>
    </tr>
    <?php $no=0; foreach($qbarang as $rbarang){
    $no++;
    ?>
    <tr>
        <td><?php echo $no;?></td>
        <td><?php echo $rbarang->nama_brg;?></td>
        <td><?php echo $rbarang->jenis;?></td>
        <td><?php echo $rbarang->harga_brg;?></td>
        <td><?php echo $rbarang->stok_brg;?></td>
        <td><?php echo $rbarang->satuan;?></td>
        <td><?php echo $rbarang->keterangan;?></td>
    </tr>
    <? }?>
</table>
</body>
</html>

Hasil output dari script diatas seperti berikut

Tampilan awal ketika dibuka... dan ketika cetak pdf diklik maka akan tampil seperti dibawah ini

 

Tampil script di render ke pdf

Demikian tutorial kali ini semoga bermanfaat

 

Postingan Terkait
» Mengganti Dukungan Bahasa Pada Codeigniter 3.xx ( 13 Agu 2017 | 17:08:24 , 463 hits )
» Cetak Laporan Format Excel di Codeigniter ( 25 Jan 2017 | 06:39:12 , 1726 hits )
» Edit dan Hapus Foto Upload Codeigniter ( 31 Okt 2016 | 08:25:06 , 7233 hits )
» Membuat Paging dan Search Bootstrap CodeIgniter ( 11 Okt 2016 | 16:26:41 , 10970 hits )
» Menambah Web File Menager pada CKEditor di CodeIgniter ( 15 Sep 2016 | 09:10:43 , 2933 hits )