Laporan PDF dengan PHP
PHP
merupakansalahsatubahasapemrogramanberbasisweb
yang banyakdigunakansaatini. Tidakhanyadigunakanuntukmembuatsebuah website,
tetapijugauntukberbagaiaplikasidansistemberbasis web sepertisistempenjualan,
sistemkeuangan, hinggasistemadministrasisekolah. Salah satubagian yang
tidakterpisahkandarisebuahsistem, adalahlaporan.
Dalamsebuahaplikasiberbasis web (web application),
laporandapatdibuatdandisajikandalamberbagaibentuksepertilaporan PDF, laporanberbasis CSS (CSS
reporting) dansebagainya. Dari berbagaipilihantersebut, laporandalambentuk PDF
memilikikeunggulankarenamemiliki format standar, keamananterhadapperubahan data
sertadukunganberbagai browser dansistemoperasidalammembuka file PDF.
Dalam tutorial
iniakandibahasmengenaibagaimanamembuatlaporan PDF dengan PHPmenggunakan library FPDF. FPDF (http://fpdf.org) merupakansalahsatu library PHP
yang memungkinkanuntukmembuat / generate file PDF secaralangsungdari PHP (on-the-fly)
tanpaharusmenginstallataumengaktifkanmodul PHP tertentu (sepertiPDFLib).
Tutorial iniakandiawalidenganpenjelasansingkatmengenai FPDF besertakeunggulannya,
laludilanjutkandengancontohsederhanapenggunaan FPDF untukmeng-generate file
PDF.
Setelahituakandibahasmengenaicontohmembuatlaporansederhanadimanadatanyadiambildari
database MySQL. Di bagianakhir tutorial,
akandisertakansumberdanreferensiterkaitdengan tutorial ini.
Apaitu
FPDF?
Sepertisudahdisebutkan di atas, FPDF
merupakansuatukumpulan class (library) PHP yang
memungkinkanpenggunanyadapatmembuathalaman PDF
denganmudahdantanpaperlumenginstallmodultambahan. Fdarinama FPDF
merupakansingkatandariFree, jadi FPDF dapatdidownload,
digunakandandikembangkansecarabebas. FPDF dapatdidownloadsecara gratis di http://fpdf.org/en/download.phpbesertadokumentasilengkapnya di http://fpdf.org/en/doc/index.php. Tersediajugadokumentasidalambahasa Indonesia.
- Choice of measure unit, page format and margins
- Page header and footer management
- Automatic page break
- Automatic line break and text justification
- Image support (JPEG, PNG and GIF)
- Colors
- Links
- TrueType, Type1 and encoding support
- Page compression
Download
danInstalasi FPDF
FPDFdapatdidownload di situsresminya di http://fpdf.org/en/download.php. Setelah download selesai, ekstrak file FPDF di
document-root komputerAnda. Letakkan library FPDF pada folder khusus yang
terpisahdengan file aplikasi agar lebihmudahdalampengaturannya.
Sepertisudahdisebutkan di atas, FPDF merupakansebuah library yang
tidakmemerlukan proses instalasi, cukupdipanggil (include) di program. Seluruh
program dalamtutorial inisudahdicobadanmenggunakan
FPDF versi 1.6.
Hello
World! SebuahContohSederhana
Contohsederhanauntukmembuat file PDF
melalui PHP dengan library FPDF dapatdilihatpada program berikutini.
1.
<?php
2.
require('fpdf16/fpdf.php');
3.
4.
$pdf = new
FPDF();
5.
$pdf->AddPage();
6.
$pdf->SetFont('Arial','B',16);
7.
$pdf->Cell(40,10,'Hello
World!');
8.
$pdf->Output();
9.
?>
Penjelasan
program
- Baris 2. Menyertakan file library FPDF. Jika library disimpan di dalam folder tertentu, sertakannamafoldernya. Fungsirequire() di atasdapatdigantidengan include(), include_once() maupunrequire_once() (Lihatmanual PHPuntukketeranganlebihlanjutmengenaifungsitersebut).
- Baris 4. Membuat object barubernama $pdf dari class FPDF(). Denganterbentuknya object tersebut, makakonstruktordari class FPDF akanotomatisdijalankan. Konstruktorantara lain mengaturorientasikertas, ukurankertas (paper size) dansatuanukurankertas. Sebagaicontohlain, jikakitainginmembuathalaman FPDF denganukurankertas Letter, orientasiLanscape, dansatuanukurankertasdalamcentimetres (cm) makapembentukan object menjadi $pdf = new FPDF(‘L’, ‘cm’, ‘Letter’).
- Baris 5. FungsiAddPage() digunakanuntukmembuathalaman PDF baru (insert new page). Jikadiinginkansuatuhalamandenganukuranmaupunorientasiberbeda, makadapatditambahkan parameter di fungsiini. ContohnyaAddPage(‘P’, ’A4’)
- Baris 6. FungsiSetFont() digunakanuntukmengatur font tulisan yang akanditampilkan. Dalam program diatasdiatur font tulisansebagai Arial, ukuran 16 danhuruftebal (bold).
- Baris 7. FungsiCell() digunakanuntukmenampilkansuatu text di halaman. Text akanditampilkandenganukuransesuai yang sudahdiaturdenganSetFont(). Parameter yang dapatdisertakandalamfungsi Cell() secaraberurutanadalahlebar cell, tinggi cell, text yang akanditampilkan, border cell, pilihanpindahbarissetelah cell, perataan text, isidari cell danterakhirpilihanuntukmenambahkan link pada text.
- Baris 8. FungsiOutput() digunakanuntukmenampilkanataumeng-generate halaman PDF. Kita jugadapatmenentukannama file dan target output dari PDF yang dihasilkan. Target dapatke file, browser atau download.
MembuatLaporan
PDF dari MySQL
Padacontohselanjutnya,
kitaakanmembuatlaporan PDF dalambentuktabel, dimana data diambildari database,
dalamhalini MySQL. Untukitu, sebelummencoba program berikutini, pastikanbahwa
database dantabelsudahdibuat. Sebagaicontoh, akandigunakantabeldengannama ‘mhs’dan
field nim, nama, alamatdantgllahir. Di tutorial ini,
tidakakandibahasmengenaibagaimanamembuattabeltersebut,
namunAndadapatmemanfaatkan tools MySQL Front atauPHPMyAdminuntukmempermudah.
Pelajarikembalibeberapatutorial tentangadministrasi database MySQL di Achmatim.Net.
1.
<?php
2.
//koneksike
database
3.
$host =
"localhost";
4.
$user =
"root";
5.
$pass =
"";
6.
$dbnm =
"dbmahasiswa";
7.
9.
if ($conn)
{
11. if (!$open) {
13. }
14.} else {
16.}
17.//akhirkoneksi
18.
19.#ambil data di tabeldanmasukkanke array
20.$query = "SELECT * FROM mhs ORDER BY nama";
25.}
26.
27.#setting judullaporandan header tabel
28.$judul = "LAPORAN DATA MAHASISWA";
34. );
35.
36.#sertakan library FPDF danbentukobjek
37.require_once ("fpdf16/fpdf.php");
38.$pdf = new FPDF();
39.$pdf->AddPage();
40.
41.#tampilkanjudullaporan
42.$pdf->SetFont('Arial','B','16');
43.$pdf->Cell(0,20, $judul, '0', 1, 'C');
44.
45.#buat header tabel
46.$pdf->SetFont('Arial','','10');
47.$pdf->SetFillColor(255,0,0);
48.$pdf->SetTextColor(255);
49.$pdf->SetDrawColor(128,0,0);
50.foreach ($header as $kolom) {
51. $pdf->Cell($kolom['length'],
5, $kolom['label'], 1, '0', $kolom['align'], true);
52.}
53.$pdf->Ln();
54.
55.#tampilkan data tabelnya
56.$pdf->SetFillColor(224,235,255);
57.$pdf->SetTextColor(0);
58.$pdf->SetFont('');
59.$fill=false;
60.foreach ($data as $baris) {
61. $i = 0;
62. foreach ($baris as
$cell) {
63. $pdf->Cell($header[$i]['length'],
5, $cell, 1, '0', $kolom['align'], $fill);
64. $i++;
65. }
66. $fill = !$fill;
67. $pdf->Ln();
68.}
69.
70.#output file PDF
71.$pdf->Output();
72.?>
Berikutinipenjelasandari program
diatas:
- Baris 2-17. Koneksidengan server MySQL danmembuka database yang digunakandalam program. Lakukanperubahan $host, $user, $pass dan $dbnmsesuaidengankondisikomputer yang Andagunakan.
- Baris 19-25. Mengambil data dari database yang akanditampilkan di laporandanmasukkankesebuah array $data. Padabaris 20 perintah query untukmengambil data didefinisikandanpadabarisberikutnyaperintah query tersebutdijalankandenganmenggunakanfungsimysql_query(). Selanjutnyauntuksetiapbaris yang dihasilkandariperintah query tersebut, masukkanke array $row denganfungsimysql_fetch_assoc()dantambahkanke array $data denganfungsiarray_push().
- Baris 27-34. Menyusun array yang akanmembentuk header tabeldarilaporan. Jumlahelemendari array header yang dibentukharuslahsamadenganjumlahkolomdari array $data. Di dalam array $header jugadiaturukuran / lebarkolomdanperataandarikolom.
- Baris 36-39. Panggil library FPDF, bentuk object dari class FPDF danbuathalamanbaru (fungsiAddPage()).
- Baris 41-43. Menampilkanjudullaporan yang sudahdiatursebelumnya.
- Baris 45-53. Menampilkanjudul / header tabellaporansesuaidengan header yang telahditentukansebelumnya. Dalam program diatasdiatur agar text dari header tabelberwarnaputih (baris 48), background berwarnamerah (baris 47), border cell berwarnaRGB(128,0,0) (baris 49) dan font text adalah Arial ukuran 10 (baris 47).
- Baris 55-68. Menampilkan data daritabelberdasarkanisivariabel array $data yang diambildari database. Di bagianini, sebelum data ditampilkanjugadiaturwarna text dan background.
- Baris 71. Hasildarihalaman PDF akanditampilkan di browser.
Hasildari program
tersebutsebagaiberikut:
Kesimpulan
PHP memilikikemampuan yang
sangatbaikdalammembuat file PDF on-the-fly. FPDF merupakansalahsatu
library PHP yang dapatdigunakanuntukmembuatlaporanmaupundokumen PDF
lainnyasecaramudah, tanpaperlumenginstallataumengaktifkanmodultertentu. Laporan
PDF yang dihasilkanjugamemilikitampilan yang baikdanberkualitas.
Semoga tutorial inibermanfaat
Tidak ada komentar:
Posting Komentar