< Browse > Home / Blog article: Membuat Laporan (Report) PDF dengan PHP dan HTML2FPDF

| Mobile | RSS

Membuat Laporan (Report) PDF dengan PHP dan HTML2FPDF

November 20th, 2008 | 28 Comments | Posted in php, web development

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

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?

Cara Kerja HTML2FPDF

Cara Kerja HTML2FPDF

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

Popularity: 29% [?]

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • PDF
  • RSS
  • StumbleUpon
  • Twitter
  • Yahoo! Bookmarks
  • Technorati
Leave a Reply 1368 views, 21 so far today |
Tags: , , ,

Related Post

Follow Discussion

28 Responses to “Membuat Laporan (Report) PDF dengan PHP dan HTML2FPDF”

  1. yitnoku Says:

    Wah, kalau yg ni otak ane lum mampu, dan mgkin g akn prnah mampu :D , lha wong sekolah aza cm SMP kok…

  2. Jawaad Says:

    OK sip mas Achmad, ikut unduh yaa.. :mrgreen:

  3. widik Says:

    Thanks infonya om.
    sekalian mau tanya untuk membuat tampilan script sepert di atas menggunakan plugin wordpress apa ya.

    salam

  4. achmatim Says:

    #yitnoku
    komputer 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.

  5. Didan Says:

    Kok aku coba di kombinasi sama file PHP jadi aneh tampilan ny??kacau balau
    cz buat nampilin tabel yg datanya berubah

  6. achmatim Says:

    #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. :D

  7. Didan Says:

    sebenernya yang mo di convert itu codenya php semua,
    btw email nya apa mas?

  8. hawru_uba Says:

    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

  9. Taufiq Says:

    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 Nuwun

    Taufiq’s last blog post..Lowongan PNS di PemDa

  10. ferryardhana Says:

    wokey mas… bakal aku coba artikelnye…
    thanx ya…

  11. mitsikuri Says:

    isinya bermanfaat semua,
    makasih ya pak atas ilmunya :)

    mitsikuri’s last blog post..Ketika Jenuh Menerpa

  12. yazid Says:

    mas , aku pakai html2fpdf setelah saya coba try-nya kok keluarnya seprti ini:
    AddPage(); $pdf->WriteHTML($buffer); $pdf->Output(‘doc.pdf’,'I’); ?>

  13. Yono Says:

    Mau tanya mas,,klo html2fpdf digabung dengan css bisa tidak.tp cssnya berbentuk external file bukan inline dengan html2fpdfnya.

    Thx

  14. sastia Says:

    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…thank

  15. Usman Ependi Says:

    Thank’s atas infonya..

  16. sapi_duduk Says:

    wah bole juga nih infonya

  17. Anggun Firdaus Says:

    Makasi artikelnya..great..kebetulan ada projek buat PDF

  18. ardik Says:

    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…???

  19. Yosep Says:

    Mas aku mau tanya kalo filenya php bagaimana? aku dah coba tapi error.

    coz aku buat query data n tampilan di php.

  20. achmatim Says:

    #Yosep
    kebetulan 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

  21. soeandri Says:

    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.

  22. nofal Says:

    mas , tolong kirim kodenya ke email ini dong, gak bisa didownload . makasih.

  23. oz Says:

    makasih atas pencerahanyya…slama ini aku pk fpdf
    oz´s last blog ..Menghitung selisih jam dengan PHP My ComLuv Profile

  24. endahdoang Says:

    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

  25. nunu Says:

    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 makasi

  26. Karsanto Says:

    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>&nbsp;
    <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….

  27. Suhardi Says:

    Kakak kalo mau entri Gambar bagaimana ya?? maaf nih repotin,tolong jawabannya di pm email aja yah..

  28. haris Says:

    salut sama bapak satu ini.
    makasih semua pencerahaanya… dan ilmu2 nya…

Leave a Reply

CommentLuv Enabled
  • banner

    Internet Sehat

  • Blog Friends