Membuat Laporan (Report) PDF dengan PHP dan HTML2FPDF
Bagi kita yang sering berkecimpung di dunia web development, termasuk saya, tentunya pernah diminta membuat suatu aplikasi yang didalamnya terdapat modul laporan. Dalam hal pembuatan laporan tersebut, terkadang kita kesulitan dalam menentukan format dan library yang akan kita gunakan. Beberapa format laporan yang sering digunakan adalah format HTML (dan CSS), PDF, Image, CSV dan Excel (Spreadsheet). Masing-masing format tersebut memiliki kelebihan dan keterbatasannya masing-masing.
PDF (Portable Document Format) merupakan salah satu pilihan format laporan yang sering digunakan dalam aplikasi berbasis web. Kelebihannya antara lain formatnya yang standar dan dapat ditampilkan di semua platform sistem operasi (cross platform). Selain itu, format PDF lebih terjamin dari sisi keamanan dan kevalidan data yang disajikan. PDF juga lebih mudah disimpan atau diarsip karena dalam bentuk file. Namun disisi lain, kekurangan dari PDF adalah saat ini masih jarang tersedia library pembuatan PDF berbasis web yang cukup mudah digunakan namun handal.
PHP merupakan bahasa pemrograman berbasis web yang saat ini banyak digunakan dalam membangun aplikasi web. Alasannya karena PHP itu open source (free), mudah dipelajari dan memiliki banyak library untuk berbagai keperluan. Termasuk diantara library yang didukung oleh PHP adalah yang berhubungan dengan manipulasi PDF on-the-fly. Beberapa contoh library PHP untuk manipulasi PDF yaitu FPDF (http://www.fpdf.org), TCPDF (http://www.tcpdf.org), PDFLib dan beberapa library lainnya.
Untuk urusan manipulasi PDF, memang library seperti FPDF dan TCPDF memang cukup handal. Library tersebut dapat digunakan untuk meng-generate file PDF secara on-the-fly di browser. Namun bagi kita yang masih pemula, agak kesulitan dalam mengimplementasikan library tersebut, karena cukup susah dalam penempatan objek-objek laporan, terutama jika laporannya sudah kompleks.
HTML2FPDF
Setelah melakukan pencarian di internet, akhirnya saya menemukan satu class (library) PHP yang cukup handal dan mudah dalam hal pembuatan file PDF. Library tersebut bernama HTML2FPDF, dan beralamat di http://html2fpdf.sourceforge.net/. Pada intinya cara kerja yang dilakukan oleh library tersebut adalah mengubah perintah-perintah HTML menjadi PDF. Jadi, bagi kita yang akan membuat laporan cukup membuatnya melalui perintah-perintah HTML yang tentunya kita sudah lebih familiar. Selanjutnya kita tinggal “menyuruh” librari HTML2FPDF untuk mengubahnya menjadi file PDF. Cukup mudah kan?
HTML2FPDF sendiri menggunakan library FPDF dalam hal pembuatan file PDF. Sehingga selain class-nya, kita juga memerlukan library dari FPDF di server kita. HTML2FPDF dapat didapatkan dari situs resminya di http://html2fpdf.sourceforge.net/ secara cuma-cuma (gratis). Namun di situs tersebut tidak disertakan library FPDF, jadi kita harus menambahkannya sendiri. Sebagai alternatif, Anda dapat mendapatkan versi lengkap dari library HTML2FPDF (termasuk FPDF dan beberapa contoh programnya) di alamat berikut ini:
HTML2FPDF (327.4 KiB, 5,463 hits)Contoh Penggunaan HTML2FPDF
Untuk membuat laporan PDF dengan class (library) HTML2FPDF, pada dasarnya dapat dilakukan melalui 2 (dua) cara. Cara yang pertama adalah dengan membuat file HTML terlebih dahulu lalu membaca isinya dan mengirimkannya ke class untuk dikonvert ke PDF. Lalu cara yang kedua adalah dengan membuat file HTML secara langsung di code program (PHP). Keduanya pada dasarnya sama.
Berikut ini contoh program untuk mengkonversi file “sample.html” ke PDF.
[sourcecode language="php"]
require('html2fpdf.php');
$pdf=new HTML2FPDF();
$pdf->AddPage();
$fp = fopen(“sample.html”,”r”);
$strContent = fread($fp, filesize(“sample.html”));
fclose($fp);
$pdf->WriteHTML($strContent);
$pdf->Output(“sample.pdf”);
echo “PDF file is generated successfully!”;
?>
[/sourcecode]
Hasil program diatas dapat dicoba di sini.
Dan berikut ini contoh program untuk meng-generate PDF dimana code HTML langsung dituliskan di PHP.
[sourcecode language="php"]
require('html2fpdf.php');
$pdf=new HTML2FPDF();
$pdf->AddPage();
$strContent = “
Hello World!
Sekarang saya bisa bikin laporan PDF dengan mudah
“;
$pdf->WriteHTML($strContent);
$pdf->Output(“sample.pdf”);
echo “PDF file is generated successfully!”;
?>
[/sourcecode]
Demo program di atas dapat dilihat di sini.
Semoga bermanfaat.
Referensi
- http://html2fpdf.sourceforge.net, Situs Resmi HTML2FPDF
- HTML2FPDF using PHP
Popularity: 29% [?]







November 20th, 2008 at 14:51
Wah, kalau yg ni otak ane lum mampu, dan mgkin g akn prnah mampu
, lha wong sekolah aza cm SMP kok…November 20th, 2008 at 18:07
OK sip mas Achmad, ikut unduh yaa..
November 21st, 2008 at 05:46
Thanks infonya om.sekalian mau tanya untuk membuat tampilan script sepert di atas menggunakan plugin wordpress apa ya.
salam
November 21st, 2008 at 10:45
#yitnokukomputer ga mengenal umur, banyak kok anak2 smp yg dah jago2 komputer, bahkan jadi hacker juga banyak.
#jawaad
oke, sama-sama
#widik
itu pake plugin “Syntax Highlighter”, coba cari di situsnya plugin wp, atau di google.
November 22nd, 2008 at 15:32
Kok aku coba di kombinasi sama file PHP jadi aneh tampilan ny??kacau balaucz buat nampilin tabel yg datanya berubah
November 24th, 2008 at 11:27
#Didan
kacau balaunya gmana? mungkin code html-nya ada yang salah, kalo mau silahkan japri ke email saya code-nya, sapa tau saya bisa bantu.
November 27th, 2008 at 03:28
sebenernya yang mo di convert itu codenya php semua,btw email nya apa mas?
December 2nd, 2008 at 03:54
Mas, saya pake appserv, td dah coba sedot file-nya terus setelah diekstrak mau ditaruh dimana? saya coba taruh di localhost kok keluarnya kayak gini :Fatal error: Call to undefined method HTML2FPDF::DisplayPreferences() in C:\AppServ\www\html2fpdf.php on line 155
December 24th, 2008 at 09:12
Mas kalau mau buat file pdf yang otomatis tercreate dan tersimpan pada waktu saya buat suatu halaman berita yang tersimpan di MySQL bisa tidak? Mohon pencerahannya. Matur NuwunTaufiq’s last blog post..Lowongan PNS di PemDa
January 19th, 2009 at 19:25
wokey mas… bakal aku coba artikelnye…thanx ya…
February 4th, 2009 at 04:08
isinya bermanfaat semua,
makasih ya pak atas ilmunya
mitsikuri’s last blog post..Ketika Jenuh Menerpa
February 26th, 2009 at 21:48
mas , aku pakai html2fpdf setelah saya coba try-nya kok keluarnya seprti ini:AddPage(); $pdf->WriteHTML($buffer); $pdf->Output(‘doc.pdf’,'I’); ?>
March 17th, 2009 at 11:46
Mau tanya mas,,klo html2fpdf digabung dengan css bisa tidak.tp cssnya berbentuk external file bukan inline dengan html2fpdfnya.Thx
March 30th, 2009 at 02:03
mas aku mau tanya aku buat prgram pke php n dreamweaver yang jalan di joomla trus cara buat report dara program yg aku buat gmn ya conohnya buat report data pegawai per NIK dll…thankApril 29th, 2009 at 08:00
Thank’s atas infonya..May 12th, 2009 at 04:05
wah bole juga nih infonyaJune 4th, 2009 at 12:54
Makasi artikelnya..great..kebetulan ada projek buat PDFJune 16th, 2009 at 03:26
mau nanya nih mas.. kalo membuat report di PHP gimana y? tapi bukan bentuk PDF. yg klo di VB, byasana pake crystal report. nah, klo di PHP gimana y…???June 17th, 2009 at 04:10
Mas aku mau tanya kalo filenya php bagaimana? aku dah coba tapi error.coz aku buat query data n tampilan di php.
June 17th, 2009 at 04:28
#Yosepkebetulan library tersebut fungsinya untuk mengubah HTML ke pdf. Kalo mau lebih fleksibel, bisa gunakan library fpdf (http://fpdf.org)
#ardik
coba cari mengenai agatha report
July 30th, 2009 at 09:28
pak,,tlg bri tau saya bagaimana cara membuat laporan absensi mingguan. laporan tsb berisi 6 tgl krna laporan tsb mingguan..tlg y pak,,krna stelah saya tmpilkan d website dgn PHP, saya akan buat laporan tsb dgn format PDF.
thnx b4.
August 12th, 2009 at 13:12
mas , tolong kirim kodenya ke email ini dong, gak bisa didownload . makasih.October 24th, 2009 at 05:12
makasih atas pencerahanyya…slama ini aku pk fpdf
oz´s last blog ..Menghitung selisih jam dengan PHP
October 30th, 2009 at 02:04
mas, kalo di php, biasanya untuk report kita sudah punya template sendiri. nah gimana atau dengan cara apa, kalo kita punya aplikasi yang templatenya itu bisa kita tambahin pada saat aplikasi telah diimplemen tapi tanpa ngubah coding:contoh kasus:
aplikasi saya berguna untuk membuat laporan setoran tuna ke beberapa bank. oke, pada saat develop saya bisa bikin template yang dibutuhkan, misal template untuk bank A. tapi setelah implement ternyata saya butuh template bank B, gmn caranya saya nambah template tanpa ubah coding didalam??
kalo aplikasi dekstop kan biasanya pake Crytal Report
makasih
January 22nd, 2010 at 07:48
makasi Infonya ya bang. Indah rasanya dunia ini klau smua orang mau berbagi ilmu.nanti saya akan coba. mngkin berguna utk skripsi saya. skli lgi makasiFebruary 2nd, 2010 at 13:48
Terimakasih buanyak atas sharenya…. Bermanfaat sekali. Saya sekarang juga pakai html2pdf untuk reporting.But…..
Ada yang sedikit aneh nih (apa gw yang gak ngerti??) mohon petunjuk.
Kemaren pengen masukin tag “<ul></ul>” dalam “<td></td>”, tapi mengapa hasilnya tidak terlalu memuaskan yach? sepertinya numbering di dalam kolom di abaikan waktu di convert jadi pdf.
Ini kodenya :
<table>
<tr>
<td>
<ul>
<li>ini nomer satu</li>
<li>ini nomer dua</li>
<li>ini nomer tiga</li>
<li>dan seterusnya</li>
</ul>
</td>
</tr>
</table>
Output PDF-nya :
——————————————————–
| ini nomer satu ini nomer dua ini nomer tiga |
——————————————————–
Jika berkenan mohon petunjuknya….
February 11th, 2010 at 09:41
Kakak kalo mau entri Gambar bagaimana ya?? maaf nih repotin,tolong jawabannya di pm email aja yah..February 17th, 2010 at 19:01
salut sama bapak satu ini.makasih semua pencerahaanya… dan ilmu2 nya…