Konversi Database MySQL ke PDF


Data yang disimpan di dalam Database MySQL bukan hanya bisa ditampilkan kedalam bentuk dokumen html ataupun PHP. File yang berada dalam database juga bisa di konversi/ditampilkan kedalam bentuk file atau format PDF.

Anda bisa menggunakan aplikasi FPDF yang bisa di unduh pada halaman website resminya yaitu fpdf.org. Penggunaan FPDF ini sangat mudah, file yang sudah di download nanti di ekstrak di salah satu folder projek website kemudian nanti kita cukup memanggil file fpdf.php

Ada beberapa keuntungan jika kita melakukan konversi data dari database MySQL ke dalam format pdf, diantaranya :
  1. Proses print out data lebih mudah dan rapih dibandingkan dengan print biasa
  2. Proses unduh juga data juga lebih karena secara otomatis untuk browser – browser versi sekarang akan menampilkan tombol unduh untuk file pdf
Dalam contoh kali ini Saya ingin mencoba menampilkan data dari Database MySQL yang kemudian di konversi ke dalam format pdf. Disini ceritanya Saya memiliki tabel dengan nama hutangku, dimana data – datanya terdiri Nama Hutang dan Nominal Hutang. 


data yang akan di konversi ke pdf
data yang akan di konversi ke pdf
Untuk proses menampilkan data / mengambil data dari database masih menggunakan Query seperti biasa, hanya saja disini mungkin akan ada beberapa pengaturan tambahan lain, seperti pengaturan font, tabel, untuk ditampilkan di pada halaman pdf. Supaya lebih mudah dan tertata – tata, mungkin nantinya Anda bisa membuat tombol dari dari data yang bersangkutan seperti diatas

Contoh Script konversi seluruh data dari database mysql ke pdf 
<?php
 
 
include"fpdf16/fpdf.php"; //panggil file fpdf
include('koneksi.php');
 
 //Header untuk tabel simpan di array
$header = array( 
	array("label"=>"No", "length"=>10, "align"=>"C"), //C untuk posisi text (center) 
	array("label"=>"Nama Hutang", "length"=>40, "align"=>"C"), 
	array("label"=>"Nominal", "length"=>30, "align"=>"C") 

);
 
$pdf = new FPDF;
 
// Menambahkan halaman baru
$pdf->AddPage(); 
 
// set margin top
$pdf->SetLeftMargin(10);
 
// set font
$pdf->SetFont('Arial','B','12'); 
 
// set background tabel
$pdf->SetFillColor(207,223,233);
 
// set warna text
$pdf->SetTextColor(000); 
 
// Set warna garis
$pdf->SetDrawColor(000);
 
// Judul Dokumen Tulis Disini
$pdf->Cell(40, 8, 'Daftar Hutangku', 0, '0', "L", false);

 
// turun kebawah
$pdf->Ln(); 
 
//Header 
foreach ($header as $kolom) { 
	$pdf->Cell($kolom['length'], 8, $kolom['label'], 1, '0', $kolom['align'], true); 
} 
 
 
$pdf->Ln();
 
//tampilkan datanya
$pdf->SetFillColor(224,235,255);
$pdf->SetFont('Arial','','12'); 
 
$fill 	= false; 
$no		= 1;
 
# Query ke Database, ambil data dan sesuaikan dengan header

$hutang = mysql_query("SELECT * FROM hutangku ORDER BY id");
while( $data = mysql_fetch_array($hutang)){
	$i = 0; 
	$pdf->Cell($header[$i]['length'], 8, $no.'.', 1, '0','C', $fill); 
	$i++; 
	$pdf->Cell($header[$i]['length'], 8, $data['namahutang'], 1, '0','L', $fill); 
	$i++; 
	$pdf->Cell($header[$i]['length'], 8, $data['nominal'], 1, '0','L', $fill); 
	$no++;
	
	$fill = !$fill; 
	$pdf->Ln();
}
$pdf->Output('konverpdf.pdf','i'); // menampilkan di browser

 
?>




data yang berhasil di konversi ke pdf
Data yang berhasil di konversi ke PDF
Bila hanya ingin menampilkan data pada kolom tertentu nanti Anda bisa menggunakan perintah GET, nanti sertakan tombol/link pada setiap kolom. Kemudian selanjutnya buat variabel dengan mengambil id dari data yang bersangkutan $variabel=$_GET['namaid'] selanjutnya nanti sertakan pada query dengan perintah WHERE id='$variabel'.

Contoh Script konversi salah satu data MySQL ke PDF
<?php
 
 
include"fpdf16/fpdf.php"; //panggil file fpdf
include('koneksi.php');
 
 //Header untuk tabel simpan di array
$header = array( 
	array("label"=>"No", "length"=>10, "align"=>"C"), //C untuk posisi text (center) 
	array("label"=>"Nama Hutang", "length"=>40, "align"=>"C"), 
	array("label"=>"Nominal", "length"=>30, "align"=>"C") 
);
 
$pdf = new FPDF;
 
// Menambahkan halaman baru
$pdf->AddPage(); 
 
// set margin top
$pdf->SetLeftMargin(10);
 
// set font
$pdf->SetFont('Arial','B','12'); 
 
// set background tabel
$pdf->SetFillColor(207,223,233);
 
// set warna text
$pdf->SetTextColor(000); 
 
// Set warna garis
$pdf->SetDrawColor(000);
 
// Judul Dokumen Tulis Disini
$pdf->Cell(40, 8, 'Daftar Hutangku', 0, '0', "L", false);
 
// turun kebawah
$pdf->Ln(); 
 
//Header 
foreach ($header as $kolom) { 
	$pdf->Cell($kolom['length'], 8, $kolom['label'], 1, '0', $kolom['align'], true); 
} 
 
 
$pdf->Ln();
 
//tampilkan datanya
$pdf->SetFillColor(224,235,255);
$pdf->SetFont('Arial','','12'); 
 
$fill 	= false; 
$no		= 1;
 
# Query ke Database, ambil data dan sesuaikan dengan header
$ambil=$_GET['idpdf'];
$hutang = mysql_query("SELECT * FROM hutangku where id='$ambil'");
while( $data = mysql_fetch_array($hutang)){
	$i = 0; 
	$pdf->Cell($header[$i]['length'], 8, $no.'.', 1, '0','C', $fill); 
	$i++; 
	$pdf->Cell($header[$i]['length'], 8, $data['namahutang'], 1, '0','L', $fill); 
	$i++; 
	$pdf->Cell($header[$i]['length'], 8, $data['nominal'], 1, '0','L', $fill); 
	$no++;
	
	$fill = !$fill; 
	$pdf->Ln();
}

 
 
$pdf->Output('pdf.pdf','i'); // menampilkan di browser

 
?>

hanya konversi salah satu data ke pdf
Konversi salah satu data ke pdf
Dalam contoh penulisan kode diatas, terutama untuk penulisan tabelnya Saya pribadi merasa kesulitan, tidak ada kebebasan dalam penulisan seperti layaknya menulis tabel HTML biasa, mungkin karena Saya belum menemukan contoh yang pas dan lebih mudah cara penggunaannya. Setelah mencari ternyata saya menemukan contoh yang lebih mudah yaitu dengan menggunakan MPDF. Baca di artikel : Merubah Data Pendaftaran Dari Database MySQL ke PDF Menggunakan MPDF 



3 Responses to "Konversi Database MySQL ke PDF"

  1. saya mah selalu aneh sama mang admin, rumahnya teh di Pangandaran, tapi tiap bikin artikel blog, dari judulnya aja saya mah udah lungleng lieur, tah jiga nu ayeuna geura yeuh Konversi Database MySQL ke PDF
    urusan perdatabase-an mah kelas tinggi apanan ge kan

    ReplyDelete
  2. Bisa nih aku praktekan, akhir2 ini lagi belajar MySQL juga nih mas :)

    ReplyDelete
  3. Wuaduh, harus mulai belajar koding nih Kang

    ReplyDelete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin