Suatu saat mungkin anda butuh membuat laporan kedalam PDF di CodeIgniter. Sebenarnya caranya hampir sama tanpa framework.

Library untuk membuat PDF yang akan kita gunakan adalah TCPDF, ada baiknya bila dokumentasinya dibaca sampai selesai baru mulai coding.

1. Download TCPDF

Download TCPDF dari github resmi TCPDF download versi terbaru, saat ini versinya 6.2.26

Extract file yang baru di download ke application/third_party, hingga strukturnya mirip seperti dibawah ini

> ls application/third_party/TCPDF-6.2.26
CHANGELOG.TXT  config    fonts    LICENSE.TXT  tcpdf_autoconfig.php   tcpdf_barcodes_2d.php  tcpdf_parser.php  tools
composer.json  examples  include  README.md    tcpdf_barcodes_1d.php  tcpdf_import.php       tcpdf.php

2. File Library

Buat file baru Pdf.php di application/libraries/Pdf.php, isi file tersebut dengan coding dibawah

<?php
class pdf {
 
    function __construct() {
        include_once APPPATH . '/third_party/TCPDF-6.2.26/tcpdf.php';
    }
}

3. Contoh Data

Data yang akan kita export ke PDF adalah tabel dibawah ini

Provinsi Jumlah Penduduk
Aceh 5.189.500
Bali 4.246.500
Banten 12.448.200
Bengkulu 1.934.300
DI Yogyakarta 3.762.200
DKI Jakarta 10.374.200
Gorontalo 1.168.200
Jambi 3.515.000
Jawa Barat 48.037.600
Jawa Tengah 34.257.900
Jawa Timur 39.293.000
Kalimantan Barat 4.932.500
Kalimantan Selatan 4.119.800
Kalimantan Tengah 2.605.300
Kalimantan Timur 3.575.400
Kalimantan Utara 691.100
Kepulauan Bangka Belitung 1.430.900

4. Controller

Library TCPDF ngga akan menampilkan tabel bila menggunakan ‘ (tanda petik satu/single quotation), harus menggunakan ” (tanda petik dua/double quotation). Buat controller baru application/controllers/Data.php

<?php
class Data extends CI_Controller {
 
    public function __construct()
    {
        parent::__construct();
        $this->load->library('pdf');
    }
 
    public function pdf()
    {
        $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
        $pdf->setPrintFooter(false);
        $pdf->setPrintHeader(false);
        $pdf->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM);
        $pdf->AddPage('');
        $pdf->Write(0, 'Simpan ke PDF - Jaranguda.com', '', 0, 'L', true, 0, false, false, 0);
        $pdf->SetFont('');
 
        $tabel = '
        <table border="1">
              <tr>
                    <th> <b>Provinsi</b> </th>
                    <th> <b>Jumlah Penduduk</b> </th>
              </tr>
 
              <tr>
                    <td> Aceh </td>
                    <td> 5.189.500 </td>
              </tr>
              <tr>
                    <td> Bali </td>
                    <td> 4.246.500 </td>
              </tr>
              <tr>
                    <td> Banten </td>
                    <td> 12.448.200 </td>
              </tr>
              <tr>
                    <td> Bengkulu </td>
                    <td> 1.934.300 </td>
              </tr>
              <tr>
                    <td> DI Yogyakarta </td>
                    <td> 3.762.200 </td>
              </tr>
              <tr>
                    <td> DKI Jakarta </td>
                    <td> 10.374.200 </td>
              </tr>
              <tr>
                    <td> Gorontalo </td>
                    <td> 1.168.200 </td>
              </tr>
              <tr>
                    <td> Jambi </td>
                    <td> 3.515.000 </td>
              </tr>
              <tr>
                    <td> Jawa Barat </td>
                    <td> 48.037.600 </td>
              </tr>
              <tr>
                    <td> Jawa Tengah </td>
                    <td> 34.257.900 </td>
              </tr>
              <tr>
                    <td> Jawa Timur </td>
                    <td> 39.293.000 </td>
              </tr>
              <tr>
                    <td> Kalimantan Barat </td>
                    <td> 4.932.500 </td>
              </tr>
              <tr>
                    <td> Kalimantan Selatan </td>
                    <td> 4.119.800 </td>
              </tr>
              <tr>
                    <td> Kalimantan Tengah </td>
                    <td> 2.605.300 </td>
              </tr>
              <tr>
                    <td> Kalimantan Timur </td>
                    <td> 3.575.400 </td>
              </tr>
              <tr>
                    <td> Kalimantan Utara </td>
                    <td> 691.100 </td>
              </tr>
              <tr>
                    <td> Kepulauan Bangka Belitung </td>
                    <td> 1.430.900 </td>
              </tr>
        </table>
        ';
        $pdf->writeHTML($tabel);
        $pdf->Output('file-pdf-codeigniter.pdf', 'I');
    }
 
}

Buka di browser http://localhost/Data/pdf
Tampilan PDF di browser

bila browser yang anda gunakan memiliki PDF Viewer makan akan ditampilkan, selebihnya di download. Agar file PDF tersebut otomatis di download ubah

$pdf->Output('file-pdf-codeigniter.pdf', 'I');

menjadi

$pdf->Output('file-pdf-codeigniter.pdf', 'D');

Join the Conversation

2 Comments

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