Membuat Laporan dalam bentuk PDF di PHP terutama yang menggunakan framework Code Igniter 4 (CI4), sebenarnya sangat mudah, ada banyak library yang dapat digunakan untuk mempermudah pembuatan laporan pdf tersebut yang sifatnya open source dan mudah digunakan, serta ada banyak sekali tutorial di youtube maupun artikel blog yang membahas akan hal tersebut.


Namun karena pemrograman web saya masih pemula dan bahkan hanya selingan saja, terkadang jarang sekali berinteraksi dengan CI4 hanya untuk kasus-kasus tertentu saja, jadi untuk kasus-kasus tertentu saya sering lupa lagi langkah-langkahnya jika dikemudian hari saya harus berinteraksi lagi dengan CI4.

 

So melalui artikel ini saya hanya ingin mendokumentasikan beberapa catatan penting bagaimana cara mengintegrasikan TCPDF pada CI4 versi saya.

 

Mengintegrasikan dan menggunakan TCPDF di CI4 untuk membuat laporan PDF

Berikut adalah langkah-langkah yang bisa kita coba untuk mengintegrasikan TCPDF di CI 4 agar dapat digunakan untuk membuat laporan dalam bentuk file PDF.


Oh ya saya disini kebetulan tidak menggunakan composer, jadi yang saya gunakan adalah cara manual saja. langkahnya adalah sebagai berikut:

 

1. download library TCPDF

    download saja disini:https://github.com/tecnickcom/tc-lib-pdf

 

2. Extract dan letakan dilokasi projek ci4 kamu di folder app\Config\Libraries\

 Ganti saja nama folder hasil extract misal menjadi tcpdf seperti gambar di bawah ini:



3. pada projek ci4 kamu, buka file App\Config\Autoload.php, kemudian modifikasi sedikit di bagian dalamnya menjadi:


4. Untuk mencetak laporan PDF, saya buat file ProdukModel.php di folder models ci4, seperti kode berikut:

<?php

namespace App\Models;

use CodeIgniter\Model;

class ProdukModel extends Model {

    protected $table = 'produk';
    protected $primaryKey = 'ProdukID';
    protected $allowedFields = [
        'ProdukID',
        'NamaProduk',
        'Harga',
        'Stok'];


Kemudian selanjutnya saya buat  file PDFReport.php di Controllers, dengan isi seperti kode di bawah ini:

<?php

namespace App\Controllers;

use App\Models\ProdukModel;
use TCPDF;

class PDFReport extends BaseController {

    protected $pModel;

    public function __construct()
        {     

            $this->pModel=new ProdukModel();
        }


    public function produk()
        {
            $data =  $this->pModel->findAll();

            $pdf = new TCPDF();
    $pdf->AddPage('P', 'mm', 'A4');
    $pdf->SetFont('', 'B', 12);
    $pdf->Cell(210, 10, "DAFTAR STOK BARANG", 0, 1, 'C');
    $pdf->SetAutoPageBreak(true, 0);
    // Add Header
    $pdf->Ln(10);
    $pdf->SetFont('', 'B', 12);
    $pdf->Cell(10, 8, "No", 1, 0, 'C');
    $pdf->Cell(130, 8, "Nama Barang", 1, 0, 'C');
    $pdf->Cell(35, 8, "Harga", 1, 0, 'R');
    $pdf->Cell(15, 8, "Stok", 1, 1, 'C');
    $pdf->SetFont('', '', 12);
    
    //Add Detail
    $no=0;
    foreach ($data as $row){
        $no++;
        $pdf->Cell(10,8,$no,1,0, 'C');
        $pdf->Cell(130,8,$row['NamaProduk'],1,0);
        $pdf->Cell(35,8,number_format($row['Harga'],2,',','.'),1,0,'R');
        $pdf->Cell(15,8,$row['Stok'],1,1,'C');
    }
    $pdf->SetFont('', 'B', 10);
    $pdf->Cell(210, 10, "Laporan Pdf Menggunakan Tcpdf, Instalasi Tcpdf dengan Download Library", 0, 1, 'L');
    $this->response->setContentType('application/pdf');
    $pdf->Output('Laporan-stok-barang.pdf');
        }
}
Jika bingung dengan perintah di atas, anda bisa baca dokumentasi lengkap TCPDF agar lebih paham.


Kemudian buat route:

//print
$routes->get('produk-pdf/','PDFReport::produk);

hasilnya kurang lebih seperti gambar di bawah ini:






No comments:

Post a Comment

Silahkan berkomentar yang sesuai dengan topik, Mohon Maaf komentar dengan nama komentator dan isi komentar yang berbau P*RN*GRAFI, OB*T, H*CK, J*DI dan komentar yang mengandung link aktif, Tidak akan ditampilkan!