Silahkan Melihat Tutorial di website kami dengan nyaman ENJOY YOUR LIFE ☕

PHP :: Membuat Laporan PDF Dengan FPDF Pada PHP


Pernahkah kalian merasa kesulitan membuat laporan pada aplikasi yang berbasis web? Karena biasanya, laporan yang ditunjukkan hanyalah halaman html yang otomatis di print. Tentu saja, ada banyak kelemahan membuat laporan dengan cara itu. Salah satunya adalah penomoran halaman. Di html kita tidak bisa memecah halaman dan memberi nomor halaman. Selain itu, tidak semua browser memberikan fitur print preview sehingga kita tidak bisa melihat apakah hasil yang akan dicetak sesuai atau tidak. Berbeda dengan Visual Basic atau Delphi yang memiliki Cristal Report.

Untuk mengatasi masalah tersebut, kita bisa membuat laporan dalam bentuk pdf menggunakan library php. Tentunya ini cukup memudahkan bagi para programmer web untuk membuat laporan yang lebih rapi, dan sesuai dengan kebutuhan dari aplikasi web yang sedang dibuat.

Ada banyak sekali library php yang bisa digunakan untuk membuat laporan dalam bentuk pdf. Tapi di sini kita akan sama-sama belajar membuat laporan menggunakan library FPDF.

Untuk mengawalinya, mari kita berkenalan dengan FPDF terlebih dahulu.

FPDF adalah PHP class yang memungkinkan untuk menghasilkan file PDF dengan PHP murni, artinya tanpa menggunakan library PDFLib. F dari FPDF singkatan Free. Anda dapat menggunakannya untuk setiap jenis penggunaan dan memodifikasi sesuai kebutuhan Anda.

FPDF memiliki keuntungan lain: fungsi tingkat tinggi. Berikut adalah daftar fitur utama:
  • Pilihan ukuran Unit, format halaman dan margin
  • Halaman header dan footer manajemen
  • Halaman otomatis istirahat
  • Otomatis istirahat garis dan teks pembenaran
  • Dukungan gambar (JPEG, PNG dan GIF)
  • Warna
  • Link
  • TrueType, Type1 dan dukungan encoding
  • Kompresi halaman
FPDF tidak memerlukan ekstensi (kecuali zlib untuk mengaktifkan kompresi dan GD untuk dukungan GIF). Ia bekerja dengan PHP 4 dan PHP 5 (versi terbaru membutuhkan setidaknya PHP 4.3.10).

Baiklah. Setelah kita kenalan dengan FPDF sekarang kita akan memasang FPDF itu pada projek aplikasi web kita. Tapi, sebelum itu unduh dulu FPDF di http://fpdf.org/en/download.php. Pilih versi yang ingin kalian unduh, kemudian tekan link ZIP yang ada di bawahnya. Versi terbaru dari FPDF ketika saya menulis ini adalah v1.7.



Sebenarnya, di dalam file yang kita unduh tadi sudah ada referensi perintah-perintah yang digunakan dalam FPDF dan juga tutorialnya. Tentu saja berbahasa inggris. Kalau mau referensi yang berbahasa indonesia, ada juga kok. Tinggal tekan link seperti dalam gambar.


Memasang FPDF

Setelah kita mengunduh FPDF, ektrak file zip itu dan salin hasil ekstak itu ke dalam folder projek kita. Oh, iya. Pastikan komputer atau laptop yang kita gunakan sudah terinstall aplikasi untuk membaca file PDF seperti Foxit Reader atau Adobe Acrobat agar browser bisa menampilkan dokumen PDF dengan baik.

Menggunakan FPDF 

Untuk sampel pertama, kita akan membuat sebuah kalimat sederhana menggunakan FPDF.

<?php
require('FPDF/fpdf.php'); //pastikan path atau alamat FPDF sesuai
$pdf = new FPDF();
$pdf->AddPage(); //membuat halaman baru
$pdf->SetFont('Arial','B',16); //memilih font Arial Bold dengan ukuran 16pt
$pdf->Cell(40,10,'Selamat Datang di FPDF!'); //membuat sebuah cell dengan panjang 40 dan tinggi 10
//yang berisi tulisan 'Selamat Datang di FPDF'

$pdf->Output(); //hasilnya dicetak
?>

Dan hasilnya sebagai berikut.


Membuat Header, Footer, Penomoran Halaman dan Gambar

Perhatikan script berikut :

<?php
require('FPDF/fpdf.php');

// kita akan membuat class baru yang mewarisi sifat dari class FPDF
// tujuannya agar lebih memudahkan editing
class PDF extends FPDF{
// function Header dan Footer akan otomatis dipanggil untuk membuat header dan footer

function Header()
{
// logo atau gambar, 
// 'logo.php' di bawah berarti path atau alamat gambar
// dengan panjang posisi X = 10, Y = 6, dan panjang 30
$this->Image('logo.png',10,6,30);
// arial bold 15
$this->SetFont('Arial','B',15);
// membuat cell kosong dengan panjang 80
$this->Cell(80);
// judul
$this->Cell(30,10,'Ini Judul',1,0,'C');
// line break dengan tinggi 20
$this->Ln(20);
}

function Footer()
{
// mengatur posisi 1,5 cm ke bawah
$this->SetY(-15);
// arial italic 8
$this->SetFont('Arial','I',8);
// penomoran halaman
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}

$pdf = new PDF();
$pdf->AliasNbPages(); // fungsi untuk mengitung jumlah total halaman
$pdf->AddPage(); // membuat halaman
$pdf->SetFont('Times','',12); // Times 12

// pengulangan agar dokumen ada isinya dan kelihatan penomorannya
for($i=1;$i<=40;$i++){
$pdf->Cell(0,10,'Baris dalam dokumen yang ke '.$i,0,1);
}

$pdf->Output(); // menampilkan hasil...
?>
Silahkan perhatikan kode di atas. Sudah ada komentar yang saya sisipkan pada kode.

Hasilnya adalah:




FPDF Dengan MySQL

Saya memiliki tabel yang bernama tbl dalam database data, dan saya akan menampilkan seluruh data yang ada dalam tabel tbl. Perhatikan script berikut:

<?php
// pendefinisian folder font pada FPDF
define('FPDF_FONTPATH', 'FPDF/font/');
require('FPDF/fpdf.php');

// seperti sebelunya, kita membuat class anakan dari class FPDF
class PDF extends FPDF{

function Header(){
$this->Image('logo.png',1,1,2.25); // logo
$this->SetTextColor(128,0,0); // warna tulisan
$this->SetFont('Arial','B','12'); // font yang digunakan
// membuat cell dg panjang 19 dan align center 'C'
$this->Cell(19,1,'LAPORAN SISWA',0,0,'C');
$this->Ln();
$this->Cell(19,1,'Sekolah Sementara',0,0,'C');
$this->Ln();
$this->SetFont('Arial','B','9');
$this->SetFillColor(192,192,192); // warna isi
$this->SetTextColor(0,0,0); // warna teks untuk th
$this->Cell(6);
$this->Cell(1,1,'No','TB',0,'L',1); // cell dengan panjang 1
$this->Cell(1,1,'Kode','TB',0,'L',1); // cell dengan panjang 1
$this->Cell(2,1,'Nama','TB',0,'L',1); // cell dengan panjang 2
$this->Cell(3,1,'Alamat','TB',0,'L',1); // cell dengan panjang 3
// panjang cell bisa disesuaikan
$this->Ln();
}

function Footer(){
$this->SetY(-2,5);
$this->Cell(0,1,$this->PageNo(),0,0,'C');
}
}

$server = "localhost";
$user = "root";
$pass = "";
$data = "data";

$net = new mysqli($server, $user, $pass, $data);

if($net->connect_error){
die("Koneksi gagal: ".$net->connect_error);
}

$q = "select * from tbl";
$h = $net->query($q) or die($net->error);
$i = 0;

while($d=$h->fetch_array()){
$cell[$i][0]=$d[0];
$cell[$i][1]=$d[1];
$cell[$i][2]=$d[2];
$i++;
}
// orientasi Potrait
// ukuran cm
// kertas A4
$pdf = new PDF('P','cm','A4');
$pdf->Open();
$pdf->AliasNbPages();
$pdf->AddPage();

$pdf->SetFont('Arial','','8');
//perulangan untuk membuat tabel
for($j=0;$j<$i;$j++){
$pdf->Cell(6);
$pdf->Cell(1,1,$j+1,'B',0,'C');
$pdf->Cell(1,1,$cell[$j][0],'B',0,'C');
$pdf->Cell(2,1,$cell[$j][1],'B',0,'L');
$pdf->Cell(3,1,$cell[$j][2],'B',0,'L');
$pdf->Ln();
}

$pdf->Output(); // ditampilkan

?>
Dan hasilnya...




Saya rasa sudah cukup yang saya sampaikan. Tutorial lengkap silahkan kunjungihttp://fpdf.org/en/tutorial/index.php, walaupun bahasa inggris ya. Tapi, jika ada pertanyaan jangan sungkan untuk bertanya atau komen.




0 komentar:

Post a Comment

PHP :: Membuat Laporan PDF Dengan FPDF Pada PHP