Export PDF dari Database Dengan Menggunakan PHP dan TCPDF

Suggested by SMS

Assalamu’alaikum wr. wb, para pembaca yang budiman. Setelah sebelumnya kita mempelajari tentang query SQL, sekarang kita akan belajar cara untuk mengekspor data ke format PDF. Pada tutorial ini kita akan menggunakan PHP native (tanpa framework) dan library TCPDF yang dapat diunduh di www.tcpdf.org.

Data yang akan diekspor adalah data dari database SIAKAD, yaitu data tabel dosen. Berikut adalah hasil akhirnya:

export pdf

Untuk dapat mengekspor data ke PDF, berikut tahap-tahap yang perlu dilakukan:

  1. Download dan extract library TCPDF

Setelah berhasil mengunduh TCPDF dari www.tcpdf.org, extract ke root folder. Misalnya kalau web-nya ada di htdocs/export_pdf, maka bisa langsung extract folder “tcpdf” di dalam file zip ke htdocs/export__pdf sehingga struktur foldernya adalah:

export pdf2

  1. Require/include TCPDF

Setelah membuat file index.php, berikutnya adalah require library TCPDF dengan fungsi require_once(). Yang di-require adalah config dan file class utama dari TCPDF.

  1. Koneksi ke database

Setelah itu, tentu saja kita harus connect dulu ke database supaya bisa menjalankan query SQL. Karena kita menggunakan PHP native, maka cara connect-nya adalah seperti ini:

Kode di atas ditulis tepat setelah require_once().

4. Membuat Class PDF
Ini adalah tahapan utama dari tutorial ini, sekaligus yang paling panjang. Di sini kita akan membuat class PDF yang berbasiskan class TCPDF yang sudah di-require dari “tcpdf/tcpdf.php.” Tujuan pembuatan class ini adalah untuk ditambahkan method (fungsi) baru untuk mengisi data dan menampilkan tabel data di file pdf. Dua method baru yang akan kita buat adalah loadData() untuk mengambil data dari database, dan showTable() untuk menampilkan tabel ke file pdf. Kode pembuatan class ini ditulis tepat setelah koneksi ke database

Berikut adalah source code-nya:

Pertama, kita buat implementasi fungsi loadData()

Fungsi loadData() cukup sederhana karena hanya menjalankan query SQL lalu menyimpannya ke dalam array $data. Query yang dijalankan akan mengambil seluruh data tabel dosen.

Selanjutnya adalah fungsi showTable(), isinya adalah menampilkan tabel yang terdiri dari header dan data. Di sini kita mulai memakai fungsi-fungsi dari library TCPDF.

Kita bisa lihat yang pertama adalah dimulai dari “menggambar” bagian header, yaitu dari mulai fungsi setFillColor() sampai dengan SetFont(). Lima pemanggilan fungsi ini nantinya akan membuat header tabel menjadi berwarna biru dengan tulisan berwarna putih.

Setelah itu pada bagian di atas, diatur width atau lebar dari masing-masing kolom, lalu data $header dimasukkan ke Cell tabel. Kemudian fungsi $this->Ln() berguna untuk pindah ke baris berikutnya (enter).

Lalu pada bagian akhir fungsi showTable() ini, pertama-tama adalah mengatur warna background dari row data, mengubah warna font, dan mengembalikan font style yang awalnya BOLD menjadi normal. Kemudian pada bagian row data diatur agar warna background-nya selang-seling putih-biru muda. Caranya dengan “flag” yaitu $fill. Fill ini awalnya 0 (tidak ada warna), lalu tiap pengulangan dinegasikan menjadi 1 sehingga warna muncul lagi, kemudian di pengulangan berikutnya berubah lagi jadi 0, demikian seterusnya.

Bagian di atas berfungsi untuk menutup tabel dengan garis biru, karena jika tidak ada kode tersebut, tabel akan terbuka di bagian bawah seperti ini:pdf2

Oke, definisi class PDF sudah selesai, sekarang kita akan gunakan class PDF untuk menampilkan data. Kode ini diletakkan di bawah dan di luar class PDF, tentunya.

Pertama-tama adalah membuat object PDF dan mengisi metadata:

Kemudian isi headernya dengan konstanta-konstanta yang ada di file config (tcpdf/config/tcpdf_config.php). Kita dapat dengan mudah customize data header dan yang lainnya di file config tersebut.

Lalu atur margin dan font:

Buat halaman baru (page 1):

Tampilkan tabel, masukkan header dan data yang diambil dari database:

Terakhir, ekspor data ke PDF dengan fungsi Output():

Yak, selesai! Ini dia hasil akhirnya:
pdf2

Anda dapat melihat source code lengkapnya di sini:

Sederhana, bukan? Selamat mencoba, semoga bermanfaat!

Wassalamu’alaikum wr. wb.

(Visited 2,578 times, 4 visits today)

Leave a Reply

Your email address will not be published. Required fields are marked *