Membuat Laporan PDF dalam CodeIgniter

Untuk membuat pdf dalam codeigniter maka kita bisa gunakan class-class yang sudah tersedia di internet, diantaranya :

  • EZPDF
  • DOMPDF
  • FPDF

Disini kita akan membahas tentang EZPDF.

Langkah Installasi EZPDF

  • Download dari http://www.ros.co.nz/pdf/ (saat ini filenya bernama pdfClassesAndFonts_009e.zip)
  • Lalu extraxtlah file pdfClassesAndFonts_009e.zip itu sehingga terlihat seperti gambar berikut ini:

  • Lalu ambil file class.pdf dan class.ezpdf
  • Masukkan kedua file tersebut ke dalam direktori system\application\libraries\
  • Masukkan folder fonts beserta isinya ke dalam root CodeIgnitermu sehingga terlihat seperti pada gambar dibawah ini:

Lihat pada gambar diatas bahwa direktori fonts berdampingan dengan direktori system.

Merubah File class.ezpdf.php

  • Rubahlah nama file class.ezpdf.php menjadi cezpdf.php
  • Lalu bukalah file cezpdf.php tersebut dan gantilah  kode include_once(‘class.pdf.php); menjadi include_once(APPPATH . ‘libraries/class.pdf.php’);

Membuat Tabel Dalam PDF

Untuk membuat tabel maka kita gunakan fungsi $this->cezpdf->ezTable.

Syntax:

$this->cezpdf->ezTable($datamu, $judul_kolom, ‘judul_tabel’, $opsi_tabel)

Keterangan:

  • $datamu adalah array yang berisi data yang akan kamu tampilkan
  • $judul_kolom adalah array yang berisi judul kolom dari tabelmu
  • judul_tabel adalah Sebuah string yang digunakan sebagai judul dari tabel
  • $opsi_tabel adalah array yang berisi opsi-opsi yang digunakan untuk memanipulasi tabel

Contoh Kasus:

Diketahui:

Saya mempunyai tabel agama dengan field seperti berikut ini:

  • Kode_agama
  • Nama_agama
  • Modifiedby
  • Lastmodified

Permintaan:

Bagaimana menampilkan semua isi dari tabel agama ke dalam tabel pdf … ?

Jawaban:

Mensetting Fungsi dalam Controller

Kamu buatlah fungsi dalam Controller CodeIgnitermu seperti berikut ini:

function ambildata(){

$this->load->library(‘cezpdf’);

$data[‘agama’]=$this->agama->ambildata();

$this->cezpdf->ezTable($data[‘agama’);

$this->cezpdf->ezStream();

}

Mensetting Fungsi dalam Model

Fungsi ambildata() dalam model agama berbentuk seperti berikut ini:

function ambildata(){

$sql=“select * from hr_master_agama “;

$q=$this->db->query($sql);

if ($q->num_rows() > 0){

foreach ($q->result_array() as $row){

$data[] = $row;

}

}

$q->free_result();

return $data;

}

Sekarang coba kamu akses fungsi dari controllermu, misalkan http://localhost/nama_aplikasimu/index.php/nama_controllermu/ambil_data maka akan tampil bentuk tabel pdf seperti gambar dibawah ini:

Muncul Pertanyaan:

Kenapa judul kolomnya itu nama field dari tabel agama … ?

Jawaban:

Iya benar, karena defautlnya seperti itu. Oleh karena itu jika kamu mau merubahnya maka berikan judul kolom yang kamu definisikan sendiri seperti berikut ini:

$judul_kolom = array(

‘kode_agama’ => ‘Kode Agama’,

‘nama_agama’ => ‘Nama Agama’,

‘modifiedby’ => ‘Dirubah Oleh’,

‘lastmodified’ => ‘Waktu Terakhir dirubah’

);

$this->cezpdf->ezTable($data[‘agama’], $judul_kolom);

Hasil:

Keterangan:

Jadi untuk membuat judul dari kolom maka kamu harus membuat satu array dengan bentuk:

Array(‘nama_field_tabelmu’=>’Judul Kolom’)

Untuk judul dan Opsi dari tabel maka kamu bisa baca file readmenya.

Membuat Text Dalam PDF

Untuk membuat text dalam PDF maka kamu bisa gunakan fungsi ezText.

Syntax:

eztext(teks, ukuran_huruf, opsi_teks)

Keterangan:

  • Teks adalah kalimat yang ingin kamu tampilkan
  • Ukuran_huruf adalah ukuran dari huruf
  • Opsi_teks adalah array yang berisi opsi untuk memanipulasi teks

Contoh:

function teks(){

$this->load->library(‘cezpdf’);

$this->cezpdf->selectFont(‘./fonts/Helvetica.afm’);

$teks=“a2fahmi.com menerima kursus pemrograman web berbasiskan framework Codegniter, dimana materi kursusnya langsung berbicara mengenai masalah yang akan Anda hadapi dalam bekerja”;

$this->cezpdf->ezText($teks,12,array(‘justification’=>‘center’));

$this->cezpdf->ezStream();

}

Hasil:

Kode di atas akan membuat tulisan dengan font Helvetica dan posisi pada tengah-tengah pdf.

Untuk Fungsi-Fungsi lainnya maka kamu bisa lihat pada file README-nya.


Jika Tutorial ini bermanfaat silahkan katakan ‘Terima Kasih Fahmi Basya Kartapura’.


You may also like...

4 Responses

  1. aa says:

    maaf mau tanya view untuk tampilannya ga ada ya???hanya controller dan model aja…..tp kan ga jalan ya..??trims

  2. martunis alfatih says:

    Terima kasih Fahmi Basya Kartapura

    Mau tanya, bagaimana cara mencetak ke pdf seperti tabel dibawah ini :

    Misal

    AB

    Nilainilainilai

  3. andhika says:

    load->model(‘ambildata_model’);
    }

    function index()
    {
    $this->ambildata();
    }
    function ambildata()
    {

    $this->load->library(‘cezpdf’);
    $data[‘agama’]=$this->agama->ambildata();
    $this->cezpdf->ezTable($data[‘agama’]);
    $this->cezpdf->ezStream();
    }
    }
    ?>

    ini model saya

    db->query($sql);

    if($q->num_rows()>0)
    {
    foreach($q->result_array()as $row)
    {
    $data[]=$row;
    }
    }
    $q->free_result();

    return $data;
    }
    }
    ?>

    trus saya manggil http://localhost/skripsi/ambildata_con
    saya menggunakan .htaccess jadi tidak perlu menuliskan index.php

    trus hasil eror nya gini mas

    A PHP Error was encountered

    Severity: Notice

    Message: Undefined property: Ambildata_con::$agama

    Filename: controllers/ambildata_con.php

    Line Number: 18

    Fatal error: Call to a member function ambildata() on a non-object in C:\xampp\htdocs\skripsi\application\controllers\ambildata_con.php on line 18

  4. andhika says:

    ada yg kepotong
    load->model(‘ambildata_model’);
    }

    function index()
    {
    $this->ambildata();
    }
    function ambildata()
    {

    $this->load->library(‘cezpdf’);
    $data[‘agama’]=$this->agama->ambildata();
    $this->cezpdf->ezTable($data[‘agama’]);
    $this->cezpdf->ezStream();
    }
    }
    ?>

Leave a Reply

Your email address will not be published. Required fields are marked *