cara generate pdf dari database mysql dengan php

Cara Generate PDF Dari Database Mysql Dengan PHP

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();
?>

Leave a Comment

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

Scroll to Top