Merubah Data Pendaftaran Dari Database MySQL ke PDF Menggunakan MPDF


Sebelumnya Saya pernah membahas tentang bagaimana konversi data dari database mysql ke dalam pdf menggunakan plugin fpdf [baca : Konversi Database MySQL ke PDF ]. Namun sebenarnya untuk saya pribadi kurang mengerti dengan cara penulisan kodenya, meskipun penulisan kodenya (FPDF) sangat ringat dan simpel namun dalam praktiknya saya sulit untuk mengimplementasikannya untuk beberapa keperluan. Maksud simple disini misalnya saja, dalam membuat tabel Saya tidak perlu menggunakan kode – kode HTML, saya cukup menggunakan fungsi CELL yang sudah dibuat dalam aplikasi, sehingga saya merasa kesulitan untuk melakukan eksplorasi seperti halnya menulis kode – kode dengan HTML ataupun PHP, mungkin beberapa orang ada yang bisa dan mengerti secara detail  tentang FPDF namun saya merasa lebih mudah menggunakan MPDF. Intinya saya belum menemukan contoh implementasi yang pas dengan aplikasi yang saya buat

Saya menemukan beberapa contoh yang pas dengan kebutuhan dari aplikasi berbasis web yang akan saya kembangkan, yaitu dengan menggunakan MPDF. Saya pernah melihat contoh penulisan konversi file PHP ke PDF dengan cara yang sangat mudah, dimana Saya masih bisa menulis kode HTML ataupun PHP secara bebas, baik kode PHP atau HTML yang berjalan atau di konversi oleh MPDF ini akan ditampilkan seperti halnya tampil dalam format dokumen web.


Dalam contoh studi kasus kali ini Saya ingin mencoba merubah isi data (dokumen PHP) yang menampilkan data pendaftaran siswa yang berada dalam database MySQL ke dalam format PDF. Isi data yang ditampilkan dalam dokumen PDF bisa berubah – ubah (dinamis). Dalam contoh tampilan "gambar 3" url menunjukan pdf=18 maka dokumen akan mengambil data dari database dengan id 18, dan seterusnya.


Merubah Data Pendaftaran Dari Database MySQL ke PDF Menggunakan MPDF

Sebelum merubah data dari database kedalam format pdf, sebaiknya unduh dulu aplikasi/plugin MPDF dari situs resmi mpdf.com / mpdf1.com lalu ekstrak kesalah satu folder projek website Anda

#1 
Kerangka Awal Konversi ke PDF
Sebelumnya harus tetap dipahami terlebih dahulu bagaimana proses sebelum penulisan kode untuk konversinya. Berikut ini Saya contohkan kerangka penulisan kode

<?php
 // Define relative path from this script to mPDF
 $dokumen='COBA SAJA'; //Nama Dokumen
define('_MPDF_PATH','mpdf/'); //letak folder mpdf
include(_MPDF_PATH . "mpdf.php"); //panggil mpdf.php
$mpdf=new mPDF('utf-8', 'A4'); // Create new mPDF Document
 
//Beginning Buffer to save PHP variables and HTML tags
ob_start();
?>
<!--Koding mulai, mulai nyekrip PHP, HTML, atau CSSS pada bagian ini.-->
<!-- contoh --><?php echo "Helo world"; ?>
<?php
//batas kodingan 
$html = ob_get_contents(); //Proses untuk mengambil hasil dari OB..
ob_end_clean();
//Here convert the encode for UTF-8, if you prefer the ISO-8859-1 just change for $mpdf->WriteHTML($html);

$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML(utf8_encode($html));
$mpdf->Output($dokumen.".pdf" ,'I');
exit;
?>


Bila kode diatas di eksekusi oleh browser, maka browser akan menampilkan pesan Hello Word dalam bentuk dokumen berformat PDF 

menampilkan teks hello world
Menampilkan pesan Hello World
#2
Supaya lebih mudah tampilkan terlebih dahulu data dari database mysql seperti biasa. Buat dokumen PHP yang bertugas untuk menampilkan database MySQL, selanjutnya bila sudah, nanti buat tombol/link yang mengarah ke file konversi pdf yang menyimpan variabel id data yang bersangkutan

Contoh :
<a href="printpdf.php?pdf=<?php echo $data['id']?>" target=_"blank"><i class="fa fa-print fa-fw" alt="print" title="Print"></i></a>

implementasi dari mpdf



Ketika icon print diklik, maka user akan dibawa ke halaman printpdf.php dengan membawa variabel id dari data yang bersangkutan.

#3
File pada tahap pertama membawa variabel dari data yang bersangkutan, untuk itu supaya proses konversi datanya sesuai data id yang bersangkautan, maka nanti Anda harus tangkap dulu variabelnya dengan perintah GET, supaya tidak bermasalah, filter variabel GET nya dengan htmlentities, contoh :


$detail=mysql_real_escape_string(htmlentities($_GET['pdf'])); //filter saat ambil data, tidak pakai htmlentities juga tidak apa - apa
$query="select * from daftar where id='$detail'";

Baca : Memahami Penggunaan mysql escape string dan htmlentities

Contoh script : printpdf.php

<?php
 // Define relative path from this script to mPDF
 $dokumen='Formulir Pendaftaran Siswa'; //Nama Dokumen
define('_MPDF_PATH','mpdf/'); //letak folder mpdf
include(_MPDF_PATH . "mpdf.php"); //panggil mpdf.php
$mpdf=new mPDF('utf-8', 'A4'); // Create new mPDF Document
 
//Beginning Buffer to save PHP variables and HTML tags
ob_start();
?>
<!--Koding mulai, Anda bisa jalankan kode php,html, css pada baris ini.-->
<?php

//This code created by root93.co.id
//if you have any question
//contact me : myroot593@gmail.com
include('system/conf/koneksi.php');

$detail=mysql_real_escape_string(htmlentities($_GET['pdf']));
$query="select * from daftar where id='$detail'";
$perintah=@mysql_query ($query,$koneksi) 
or die ("Gagal konek".mysql_error());
$dta_sws=mysql_fetch_array($perintah);
$dta_id=$dta_sws['id'];
$dta_namasiswa=$dta_sws['nama_siswa'];
$dta_tempatlahir=$dta_sws['tempat_lahir'];
$dta_tanggallahir=$dta_sws['tanggal_lahir'];
$dta_jeniskelamin=$dta_sws['jenis_kelamin'];
$dta_sekolah=$dta_sws['sekolah'];
$dta_nisn=$dta_sws['nisn'];
$dta_orangtua=$dta_sws['orang_tua'];
$dta_alamat=$dta_sws['alamat'];
$dta_alamat2=$dta_sws['rt'];
$dta_alamat3=$dta_sws['rw'];
$dta_alamat4=$dta_sws['desa'];
$dta_alamat5=$dta_sws['kecamatan'];
$dta_kota=$dta_sws['kota'];
$dta_provinsi=$dta_sws['provinsi'];
$dta_notlp=$dta_sws['no_tlp'];
$dta_statussiswa=$dta_sws['status_siswa'];
$dta_foto=$dta_sws['foto'];
?>
<html>
<head>
<title>Pendaftaran</title>
</head>
<body>
<table border="0">

<tr>
    <td colspan="2" align="center"><strong>SURAT PERNYATAAN PESERTA DIDIK</strong></td>
  </tr>
<tr>
    <td colspan="2" align="center"><strong>SMKN 1 ROOT93</strong></td>
  </tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center"><img src="../psb/gambar/<?php echo $dta_foto; ?>" width="100" height="120"/></td>
</tr>
 
  <tr>
    <td width="295">Nama</td>
    <td width="406">: <?php echo "$dta_namasiswa"; ?></td>
  </tr>
  <tr>
    <td>Tempat Tanggal Lahir </td>
    <td>: <?php echo "$dta_tempatlahir $dta_tanggallahir"; ?></td>
  </tr>
  <tr>
    <td>Jenis Kelamin </td>
    <td>: <?php echo "$dta_jeniskelamin"; ?></td>
  </tr>
  <tr>
  <td>Alamat Lengkap </td>
 <td>: <?php echo "$dta_alamat RT $dta_alamat2 RW $dta_alamat3 Ds.$dta_alamat4";?></td>
 <tr>
 <td></td>
 <td>: <?php echo "Kec. $dta_alamat5 Kab.$dta_kota"?></td>
 </tr>
  </tr>
  <tr>
    <td>Paket Kehalian </td>
    <td>:</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
 
</table>
<table width="723" border="0" style="margin-top: 50px 0;">
  <tr>
    <td colspan="2" align="center"><strong>Menyatakan</strong></td>
  </tr>
  <tr>
    <td colspan="2" align="center"><strong>Bahwa selama menjadi Peserta Didik, saya:</strong></td>
  </tr>
  <tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
  <tr>
    <td width="20">1</td>
    <td width="673"><p align="left">Bahwa selama mejadi Peserta Didik, saya:</p>    </td>
  </tr>
  <tr>
    <td>2</td>
    <td>Akan belajar dengan tekun dan penuh  semangat;</td>
  </tr>
  <tr>
    <td>3</td>
    <td>Akan menjaga nama baik Pribadi,  Keluarga, dan Sekolah;</td>
  </tr>
  <tr>
    <td>4</td>
    <td>Sanggup mentaati dan mematuhi Tata  Tertib Peserta Didikserta Peraturan SMKN 1 Root93;</td>
  </tr>
  <tr>
    <td>5</td>
    <td>Akan mengikuti pendidikan Agama  Islam;</td>
  </tr>
  <tr>
    <td>6</td>
    <td>Akan Mengikuti kegiatan ekstra  kurikuler yang dilaksanakan di sekolah;</td>
  </tr>
  <tr>
    <td>7</td>
    <td>Apabila saya tidak mentaati  Peraturan yang ditetapkan oleh sekolah, saya sanggup menerima sanksi yang berlaku</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2"><p align="left">Demikian surat pernyataan ini saya buat dengan  sebenar-benarnya dengan penuh tanggung jawab</p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>

</table>
<table border="0">
<tr>
    <td width="295">&nbsp;</td>
    <td width="406">&nbsp;</td>
  </tr>
<tr>
    <td align="center">Mengetahui</td>
    <td align="center">Pangandaran, <?php echo date("d-m-y");?> </td>

  </tr>
  <tr>
    <td align="center">Orang Tua/Wali </td>
    <td align="center">Yang membuat Pernyataan </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td align="center" ><strong><u><?php echo"$dta_orangtua";?></u></strong></td>
    <td align="center"><strong><u><?php echo"$dta_namasiswa";?></u></strong></td>
  </tr>
 </table>

</body>
</html>
<?php
//batas kodingan 
$html = ob_get_contents(); //Proses untuk mengambil hasil dari OB..
ob_end_clean();
//Here convert the encode for UTF-8, if you prefer the ISO-8859-1 just change for $mpdf->WriteHTML($html);

$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML(utf8_encode($html));
$mpdf->Output($dokumen.".pdf" ,'I');
exit;
?>

Intinya membuat query seperti biasa, menulis kode HTML ataupun PHP seperti biasa. Bila kode diatas di eksekusi oleh browser, maka nanti secara otomatis datanya akan ditampilkan kedalam format dukomen PDF yang kurang lebihnya akan terlihat seperti berikut 

data registrasi
Gambar 3. Data Registrasi yang ditampilkan kedalam format dokumen PDF


#Kesimpulan
Jadi untuk konversi menggunakan MFPDF ini nantinya Anda panggil file dari MPDFlalu buat kerangka kodenya dan selanjutnya menulis kode PHP, HTML atau CSS seperti biasa

0 Response to "Merubah Data Pendaftaran Dari Database MySQL ke PDF Menggunakan MPDF"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin