Menyambung artikel saya sebelumnya mengenai bagaimana cara konversi ke file CSV dengan PHP, pada kesempatan ini saya akan menulis artikel tentang export data ke format PDF dengan menggunakan PHP.
Seperti yang kita ketahui, PDF (Portable Document Format) adalah format file yang digunakan untuk menyajikan dokumen dengan cara yang independen dari perangkat lunak aplikasi, perangkat keras, dan sistem operasi. PDF didukung oleh semua sistem operasi, sehingga menjadi standarisasi di dalam pembuatan laporan.
Pada tutorial ini, saya menggunakan FPDF untuk membuat file PDF dengan PHP. FPDF adalah class PHP yang memungkinkan untuk menghasilkan file PDF dengan PHP murni, artinya tanpa menggunakan perpustakaan PDFLib. F dari FPDF merupakan singkatan dari Free. Anda dapat menggunakannya untuk setiap jenis penggunaan dan memodifikasi sesuai kebutuhan Anda. Silakan klik di sini untuk men-download FPDF.
Mengikuti tutorial sebelumnya, saya menggunakan database dengan nama db_belajar. Buat table tb_anggota, dengan script di bawah ini :
1 2 3 4 5 6 7 8 |
CREATE TABLE IF NOT EXISTS `tb_anggota` ( `anggota_id` int(5) NOT NULL AUTO_INCREMENT, `nama` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `alamat` varchar(50) NOT NULL, `umur` int(2) NOT NULL, PRIMARY KEY (`anggota_id`) ) ENGINE=INNODB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; |
Kemudian isi data pada table tersebut, dengan script :
1 2 3 4 5 6 |
INSERT INTO `tb_anggota` (`anggota_id`, `nama`, `email`, `alamat`, `umur`) VALUES (1, 'Wayan', 'wayan@email.com', 'Badung', 21), (2, 'Made', 'made@email.com', 'Gianyar', 19), (3, 'Nyoman', 'nyoman@email.com', 'Klungkung', 30), (4, 'Ketut', 'ketut@email.com', 'Tabanan', 23), (5, 'Gede', 'gede@email.com', 'Karangasem', 27); |
Buat file untuk koneksi ke database (db.php) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'db_belajar'); function connect() { $connect = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if (mysqli_connect_errno($connect)) { die("Failed to connect:" . mysqli_connect_error()); } mysqli_set_charset($connect, "utf8"); return $connect; } ?> |
Download FPDF dan extract di folder root atau di manapun dalam aplikasi Anda. Buat file untuk men-generate file PDF (createpdf.php), seperti contoh di bawah :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<?php require'fpdf/fpdf.php'; // load fpdf class require 'db.php'; // load koneksi database $connect = connect(); class PDF extends FPDF { // memberikan warna pada table function FancyTable($header, $data) { // warna, lebar dan font bold $this->SetFillColor(206, 206, 206); $this->SetTextColor(30, 30, 30); $this->SetDrawColor(89, 89, 89); $this->SetLineWidth(.2); $this->SetFont('', 'B'); // Header $w = array(40, 50, 50, 30); for ($i = 0; $i < count($header); $i++) $this->Cell($w[$i], 7, $header[$i], 1, 0, 'C', true); $this->Ln(); // warna line $this->SetFillColor(224, 235, 255); $this->SetTextColor(0); $this->SetFont(''); // Parsing Data $fill = false; foreach ($data as $row) { $this->Cell($w[0], 6, $row['nama'], 'LR', 0, 'L', $fill); $this->Cell($w[1], 6, $row['email'], 'LR', 0, 'L', $fill); $this->Cell($w[2], 6, $row['alamat'], 'LR', 0, 'L', $fill); $this->Cell($w[3], 6, $row['umur'], 'LR', 0, 'R', $fill); $this->Ln(); $fill = !$fill; } // tutup line $this->Cell(array_sum($w), 0, '', 'T'); } } $pdf = new PDF(); // tentukan header kolom $header = array('Nama', 'Email', 'Alamat', 'Umur'); // Data loading $sql = "SELECT * FROM tb_anggota ORDER BY anggota_id DESC"; $data = array(); if ($result = mysqli_query($connect, $sql)) { while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; } } $pdf->SetFont('Arial', '', 11); $pdf->AddPage(); $pdf->FancyTable($header, $data); $pdf->Output(); ?> |
Contoh di atas masih sangat sederhana sekali. Anda bisa menambahkan header, link, gambar, dan lainnya dengan menggunakan FPDF. Selamat berkreasi 🙂
Klik di sini untuk tutorial PHP lainnya.
Kasih contoh yang rumit donk, bro! =)
rumit kayak gimana bro? hehehe
om biar diatasnya tabel ada nama alamat sama umur gmna
ini maksudnya ada text di atas table atau gimana?
iya mohon pencerahannya gimana caranya ada tulisabn text diatas tabelnya bosque
mas cara agar cellnya dinamis gmna yah?
tinggal atur aja, ditentukan field mana aja yang bakal ditampilkan
bang mau tanya bikin judulnya gimana..?
Caranya buat Judulnya bagaimana pak mohon dibantu..?
lebih jelasnya bisa di sini : http://www.fpdf.org/ 🙂