Dalam postingan ini kita akan belajar Cara Generate PDF dari Database Mysql menggunakan PHP. Untuk Menghasilkan file PDF dengan konten dan output data mysql, kita akan menggunakan library FPDF yang merupakan library php yang populer yang akan membantu kita menghasilkan file PDF.
Apa itu FPDF?
- FPDF adalah PHP class library yang memungkinkan kita menghasilkan file PDF menggunakan PHP.
- Di FPDF, ‘F’ adalah singkatan dari Free. Jadi kita dapat mengatakan FPDF berarti PDF Gratis.
- Ini adalah perpustakaan Open Source. Anda dapat menggunakannya dan memodifikasi untuk segala jenis penggunaan yang sesuai dengan kebutuhan Anda.
Fitur atau Keunggulan Perpustakaan FPDF:
- Anda dapat mengatur format dan margin halaman.
- Manajemen Header dan Footer file PDF dengan mudah.
- Pemisahan Halaman Otomatis Jeda baris dan pembenaran teks secara otomatis.
- Dukungan Gambar dengan format JPEG,JPG,PNG,GIF.
- Tautan, Warna, Jenis Sejati, dan Dukungan pengodean.
- Kompresi Halaman
Proses Langkah demi Langkah untuk menghasilkan PDF menggunakan FPDF:
Langkah-1: Pilih data dari database MySQL ke dalam halaman
Langkah-2: Unduh perpustakaan FPDF dari fpdf.org
Langkah-3: Unggah file FPDF ke Folder aplikasi Anda
Langkah-4: Sertakan file fpdf.php ke dalam file aplikasi Anda
Sekarang mari kita terapkan ke-4 langkah diatas. Pertama kita buat database yang didalamnya terdapat table users. Berikut sql untuk table users.
-- -- Table structure for table `users` -- CREATE TABLE IF NOT EXISTS `users` ( `user_id` int(255) NOT NULL AUTO_INCREMENT, `name` varchar(1000) NOT NULL, `email` varchar(1000) NOT NULL, `department` varchar(1000) NOT NULL, `role` varchar(100) NOT NULL, `created_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; -- -- Dumping data for table `users` -- INSERT INTO `users` (`user_id`, `name`, `email`, `department`, `role`, `created_on`) VALUES (5, 'pradeep', '[email protected]', 'Admin', 'admin', '2017-06-29 03:42:04'), (6, 'vikas', '[email protected]', 'Web Development', 'employee', '2017-06-29 03:42:20'), (7, 'Suresh', '[email protected]','Web Development', 'employee', '2017-07-05 18:27:24'), (8, 'Mukesh', '[email protected]', 'SEO', 'employee', '2017-07-05 18:27:44'), (9, 'Sandeep', '[email protected]', 'SEO', 'employee', '2017-07-05 18:28:03');
Selanjutnya, kita buat file dbconfig.php sebagai koneksi mysql dengan php seperti berikut ini.
<?php session_start(); $host="localhost"; $username="root"; $pass=""; $db="tutorialswebsite"; $conn=mysqli_connect($host,$username,$pass,$db); if(!$conn){ die("Database connection error"); } ?>
Setelah itu, kita perlu buat generate-user-pdf.php yang bertujuan untuk melakukan generate pdf dari database mysql dengan php.
<?php //include connection file include "dbconfig.php"; include_once('pdf/fpdf.php'); class PDF extends FPDF { // Page header function Header() { // Logo $this->Image('https://i2.wp.com/tutorialswebsite.com/wp-content/uploads/2016/01/cropped-LOGO-1.png',10,10,50); $this->SetFont('Arial','B',13); // Move to the right $this->Cell(80); // Title $this->Cell(80,10,'Employee List',1,0,'C'); // Line break $this->Ln(20); } // Page footer function Footer() { // Position at 1.5 cm from bottom $this->SetY(-15); // Arial italic 8 $this->SetFont('Arial','I',8); // Page number $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C'); } } $display_heading = array('user_id'=>'ID', 'name'=> 'Name', 'email'=> 'Email','department'=> 'Department','role'=> 'Role'); $result = mysqli_query($conn, "SELECT user_id, name, email, department, role FROM users") or die("database error:". mysqli_error($conn)); $header = mysqli_query($conn, "SHOW columns FROM users WHERE field != 'created_on'"); $pdf = new PDF(); //header $pdf->AddPage(); //foter page $pdf->AliasNbPages(); $pdf->SetFont('Arial','B',16); foreach($header as $heading) { $pdf->Cell(35,10,$display_heading[$heading['Field']],1); } foreach($result as $row) { $pdf->SetFont('Arial','',10); $pdf->Ln(); foreach($row as $column) $pdf->Cell(35,10,$column,1); } $pdf->Output(); ?>