Monday, August 21, 2017

Membuat Laporan dengan FPDF

Setelah saya melihat banya pertanyaan yang muncul di group facebook mengenani bagaiman cara membuat laporan dengan PDF, kali ini saya akan membuat tutorial bagaimana cara membuat laporan dengan PDF, saya ambil contoh dari projrk skripsi saya dulu yang penampakanya seperti dibawah ini, contoh ini  saya buat berdasarkan kebutuhan saat mencetak tiket. untuk gambar saya buat dari coreldraw.

Membuat Laporan dengan FPDF Tiket bus GMS


Untuk membuat output PDF seperti gambar diatas adapun beberapa file yang di gunakan seperti:
1. File PDF yang nanti diinclude di header Script. untuk mendapatkannya bisa di download http://ceesty.com/q21zNe
2. File Berupa gambar agar terlihat profesional seperti aslinya, stap yang ini opsional, karena    tergantung kebutuhan


Untuk Scriptnya bisa dilihat dibawah ini.
<?php
include '../koneksi.php';
require('../../assets/pdf/fpdf.php');
$pdf = new FPDF("L","cm","A4");
$pdf->SetMargins(2.5,1,0.5);
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','B',14);
$pdf->Image('../../assets/img/lo.png',1.6,1,2,2);
$pdf->SetX(4);
$pdf->MultiCell(19.5,0.5,'PT. Gajah Mulia Sejahtera',0,'L');
$pdf->SetFont('Arial','B',9);
$pdf->SetX(4);
$pdf->MultiCell(19.5,0.5,'Telpon : (021) 8983 4339, 8983 4340 Fax. (021) 88983 4340',0,'L');
$pdf->SetFont('Arial','B',9);
$pdf->SetX(4);
$pdf->MultiCell(19.5,0.5,'JL. Industri Jababeka No.65 Pasir Gombong, Cikarang Utara, Bekasi',0,'L');
$pdf->SetX(4);
$pdf->MultiCell(19.5,0.5,'website : www.gms.com email : bis_gms@yahoo.com',0,'L');
$pdf->Line(1,3.1,28.5,3.1);
$pdf->SetLineWidth(0.1);
$pdf->Line(1,3.2,28.5,3.2);
$pdf->SetLineWidth(0);
$pdf->ln(1);
$pdf->SetFont('Arial','B',14);
$pdf->Cell(25.5,0.7,"Laporan Customer",0,10,'C');
$pdf->ln(1);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(5,0.7,"Di cetak pada : ".date("D-d/m/Y"),0,0,'C');
$pdf->ln(1);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(1, 0.7, 'No', 1, 0, 'C');
$pdf->Cell(2.5, 0.7, 'No Tiket', 1, 0, 'C');
$pdf->Cell(2.5, 0.7, 'No Pesan', 1, 0, 'C');
$pdf->Cell(3.5, 0.7, 'Nama', 1, 0, 'C');
$pdf->Cell(3, 0.7, 'Tujuan', 1, 0, 'C');
$pdf->Cell(3, 0.7, 'No HP', 1, 0, 'C');
$pdf->Cell(2.5, 0.7, 'TGL', 1, 0, 'C');
$pdf->Cell(3, 0.7, 'Kelas', 1, 0, 'C');
$pdf->Cell(1.7, 0.7, 'No kursi', 1, 0, 'C');
$pdf->Cell(3, 0.7, 'Kd Bus', 1, 0, 'C');
$pdf->ln(0.7);
$pdf->SetFont('Arial','',10);
$sql = myquery("SELECT pemesanan.id_pemesanan, detail_pemesanan.no_tiket, pemesanan.no_pemesanan, detail_pemesanan.nama, detail_pemesanan.no_hp, detail_pemesanan.no_seat, pemesanan.tujuan, pemesanan.tgl_berangkat, pemesanan.kd_bus, pemesanan.class_bus FROM pemesanan INNER JOIN detail_pemesanan ON pemesanan.id_pemesanan = detail_pemesanan.id_pemesanan");
$no=1;
while ($lihat = mysqli_fetch_array($sql)) {
$pdf->Cell(1, 0.7, $no , 1, 0, 'C');
$pdf->Cell(2.5, 0.7, $lihat['no_tiket'],1, 0, 'C');
$pdf->Cell(2.5, 0.7, $lihat['no_pemesanan'],1, 0, 'C');
$pdf->Cell(3.5, 0.7, $lihat['nama'], 1, 0,'C');
$pdf->Cell(3, 0.7, $lihat['tujuan'],1, 0, 'C');
$pdf->Cell(3, 0.7, $lihat['no_hp'], 1, 0,'C');
$pdf->Cell(2.5, 0.7, $lihat['tgl_berangkat'],1, 0, 'C');
$pdf->Cell(3, 0.7, $lihat['class_bus'],1, 0, 'C');
$pdf->Cell(1.7, 0.7, $lihat['no_seat'], 1, 0,'C');
$pdf->Cell(3, 0.7, $lihat['kd_bus'], 1, 1,'C');
$no++;
}
$pdf->Output("laporan_customer.pdf","I");
?>

Sedikit penjelasan tentang script.

Script diatas mengunakan koneksi untuk menghubungkan ke database
include '../koneksi.php';

Menarik file fpdf jika yang ini wajib digunakan
require('../../assets/pdf/fpdf.php');

Jenis kertas yang digunakan dan posisi laporan, Bisa landscape dan bisa potret, A4 adalah jenis kertas
$pdf = new FPDF("L","cm","A4");

Jika yang ini adalah menarik gambar yang akan digunakan biasanya Logo, tapi ini saya gambar full.
$pdf->Image('../../assets/img/lo.png',1.6,1,2,2);

Ini file query yang berfungsi untuk menarik data dari database, queri ini sama dengan query yang ada di view database,
$sql = myquery("SELECT pemesanan.id_pemesanan, detail_pemesanan.no_tiket, pemesanan.no_pemesanan, detail_pemesanan.nama, detail_pemesanan.no_hp, detail_pemesanan.no_seat, pemesanan.tujuan, pemesanan.tgl_berangkat, pemesanan.kd_bus, pemesanan.class_bus FROM pemesanan INNER JOIN detail_pemesanan ON pemesanan.id_pemesanan = detail_pemesanan.id_pemesanan");

yang ini adalah nama file ketika didownload, jika namanya di ganti mukidi maka nama yang muncul saat downloadpun jga mukidi :-)
$pdf->Output("laporan_customer.pdf","I");


Yaang terakir penjelasan angka dan huruf, jika angka itu untuk mengatur panjang, lebar dan tinggi posisi Tulisan.
Masih ada cara yang lebih praktis, bisa mengunakan DOMPDF, tinggal searcing aja di google Buanyak....
Sekian tutorial dari saya semoga bermanfaant buat kalian semua, jika sekiranya bermanfaan untuk anda jangan lpa like fans pages kami. tinggalkan komentar untuk bertanya