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

algoritma game pg soft dan mitos bahwa pergantian perangkat dapat mengubah peluangmengapa konsep benih acak perlu dipahami saat membahas algoritma game pg softalgoritma game pg soft dalam diskusi tentang perbedaan rtp teoretis dan hasil nyataketika pemain menghubungkan kecepatan internet dengan algoritma game pg softbagaimana algoritma game pg soft menjadi topik perdebatan seputar transparansi sistemalgoritma game pg soft dan kesalahan menafsirkan sampel permainan yang terlalu kecilmengapa istilah volatilitas sering dibahas bersama algoritma game pg softalgoritma game pg soft dalam kajian perbedaan antara acak semu dan acak sejatiketika teori pergantian taruhan dikaitkan dengan algoritma game pg softalgoritma game pg soft dan pentingnya memahami pengujian sistem secara independenkasino online dan pentingnya memahami perbedaan iklan berbayar serta ulasan independenmengapa penghapusan data akun menjadi isu privasi dalam pembahasan kasino onlinekasino online dan fenomena penggunaan identitas merek untuk membangun kepercayaan semubagaimana kasino online dibahas dalam upaya pencegahan penipuan berbasis internetketika konten kasino online menggunakan gambar hadiah tanpa konteks yang jelaskasino online dalam kajian peran literasi keuangan menghadapi penawaran digitalmengapa permintaan data pribadi pada layanan kasino online perlu dipertanyakankasino online dan perbedaan antara pengalaman pengguna dengan bukti keamananbagaimana teknik penyamaran domain memunculkan risiko bagi pencari kasino onlinekasino online dalam diskusi tanggung jawab media terhadap konten perjudian digitalkasino online dan risiko tautan palsu yang menyamar sebagai halaman layanan resmimengapa informasi biaya tersembunyi perlu diperhatikan dalam pembahasan kasino onlinekasino online dalam sorotan fenomena penyalahgunaan identitas pada akun digitalketika ulasan kasino online muncul tanpa identitas penulis yang jelasbagaimana kasino online menjadi bahan diskusi tentang pengawasan iklan daringkasino online dan tantangan melindungi pengguna dari rekayasa sosialmengapa bahasa promosi kasino online sering memerlukan pemeriksaan lebih mendalamfenomena penyebaran tautan kasino online melalui pesan pribadi dan risikonyakasino online dari perspektif hukum bagaimana perbedaan yurisdiksi menjadi tantanganketika konten kasino online disamarkan menjadi artikel informasi umumpertemuan tren mahjong dengan konsep festival permainan tradisional asiatren mahjong dan kreativitas penggunaan elemen ubin dalam desain posterbagaimana tren mahjong membuka ide pembuatan lokakarya pengenalan budayatren mahjong dalam kajian perubahan cara masyarakat memandang hobi koleksiketika tren mahjong menjadi topik eksplorasi dalam desain perhiasan miniaturtren mahjong dan potensi kolaborasi antara seniman visual dengan komunitas budayamembaca tren mahjong melalui perkembangan konsep restorasi barang permainan lamatren mahjong dalam diskusi mengenai keberlanjutan material produk hiburanbagaimana tren mahjong dapat diangkat menjadi topik pameran desain interaktiftren mahjong dan inspirasi penataan ruang kreatif dengan identitas budaya asiatren mahjong dalam eksplorasi desain kemasan produk bernuansa vintageketika tren mahjong dibahas sebagai inspirasi kegiatan sosial di akhir pekanmengulas tren mahjong dari perspektif kebangkitan minat terhadap kerajinan tangantren mahjong dan ide pembuatan konten dokumenter tentang hiburan tradisionalbagaimana tren mahjong menginspirasi konsep fotografi still life bertema asiatren mahjong dalam perancangan pernak pernik dengan sentuhan estetika klasikketika seni keramik bertemu tren mahjong dalam eksperimen desain kontemporertren mahjong dan gagasan menghidupkan kembali permainan meja di ruang komunalmengapa tren mahjong menarik dikaji melalui perkembangan budaya nostalgiatren mahjong sebagai inspirasi pembuatan pola tekstil dan ornamen dekoratifmahjong online dan perubahan pengalaman bermain melalui perangkat layar lipatmengapa sistem latihan mandiri menjadi aspek menarik dalam mahjong onlinedi balik mahjong online ada tantangan merancang tampilan untuk berbagai resolusimahjong online dalam pembahasan teknologi sinkronisasi permainan lintas perangkatbagaimana penggunaan avatar membentuk identitas pemain dalam mahjong onlinemahjong online dan pentingnya pengaturan privasi dalam komunitas permainanketika mahjong online menawarkan perspektif baru tentang interaksi tanpa suaraperan sistem penilaian performa dalam membentuk pengalaman mahjong onlinemahjong online dari sisi pengembangan bagaimana kualitas server memengaruhi responsmengapa panduan interaktif dibutuhkan untuk memahami variasi aturan mahjong onlinemahjong online dan perbedaan pengalaman pengguna pada jaringan cepat serta lambatbagaimana fitur undangan pribadi mengubah cara teman berkumpul di mahjong onlinemahjong online dalam sorotan tantangan pengembangan sistem anti kecuranganmengenal pendekatan desain ramah lansia dalam pengembangan mahjong onlinemahjong online dan pertanyaan tentang keamanan komunikasi antarpemainketika mahjong online mengadopsi prinsip desain sederhana untuk pengguna pemulabagaimana sistem pemulihan koneksi mendukung kelangsungan permainan mahjong onlinemahjong online dalam kajian manfaat dan keterbatasan lawan berbasis komputerperubahan kebutuhan penyimpanan data menjadi tantangan bagi platform mahjong onlinemahjong online dan masa depan pengalaman permainan berbasis teknologi browsermahjong dan kisah lahirnya kebiasaan bermain di lingkungan perdagangan asiamengapa ubin mahjong memiliki tekstur yang berbeda dari permainan meja lainnyaperjalanan mahjong dalam dunia sinema dari properti film hingga simbol budayamahjong di tengah perubahan tradisi perayaan tahun baru keluarga asiabagaimana karya sastra menggambarkan mahjong sebagai bagian dari kehidupan sosialmahjong dan peran pengrajin dalam mempertahankan teknik ukir ubin tradisionalkisah perkembangan mahjong dalam masyarakat pesisir dan jalur perdaganganmengapa mahjong sering muncul dalam penggambaran kehidupan kota di film klasikmahjong dari perspektif arsitektur ruang bermain dan kebiasaan berkumpulmenelusuri pengaruh bahan baku terhadap perubahan harga set mahjong koleksibagaimana mahjong mencerminkan perbedaan etika bermain di berbagai lingkunganmahjong dan cerita perubahan desain kotak penyimpanan dari generasi ke generasimengenal peran mahjong dalam pameran museum yang mengangkat sejarah permainanketika mahjong menjadi bahan penelitian tentang pengambilan keputusan kelompokmahjong dalam sejarah perkembangan perlengkapan hiburan rumah tanggamengapa istilah kemenangan mahjong memiliki sebutan berbeda antarkomunitascerita di balik penggunaan lambang musim dan bunga pada set mahjong tertentumahjong dan pengaruh lingkungan sosial terhadap cara pemain mempelajari aturanbagaimana permainan mahjong menjadi inspirasi dalam pendidikan desain produkmahjong dari sudut pandang sejarah bagaimana sebuah permainan merekam perubahan zamanbagaimana prinsip statistika membantu menguji klaim tentang algoritma game pg softalgoritma game pg soft dan fenomena pengguna yang menganggap hasil langka sebagai polamengapa perubahan tampilan tidak otomatis berarti perubahan algoritma game pg softalgoritma game pg soft dalam pembahasan mengenai batas prediksi sistem probabilistikketika analisis video singkat digunakan untuk menebak algoritma game pg softalgoritma game pg soft dan pertanyaan tentang perbedaan aturan serta mekanisme acakbagaimana kekeliruan statistik melahirkan cerita viral seputar algoritma game pg softalgoritma game pg soft dalam sorotan pentingnya membedakan data dan testimonimengapa riwayat kemenangan bukan bukti adanya celah algoritma game pg softalgoritma game pg soft dan tantangan menjelaskan probabilitas kepada pengguna awammahjongways menghadirkan evolusi visual digital melalui perpaduan animasi adaptif dan teknologi antarmuka modernintegrasi teknologi real time mengubah cara platform digital mengelola interaksi dan respons penggunaperan random number generator menjaga independensi hasil pada sistem permainan digital modernmengenal cara mahjongways mengembangkan pengalaman interaktif melalui sistem respons simbol dan desain grafis digitalarsitektur microservices menjadi fondasi penting dalam membangun infrastruktur platform digital yang lebih fleksibelmengenal volatilitas dan distribusi hasil dalam karakteristik matematis permainan digital berbasis rngmahjong ways dan evolusi budaya digital melalui perpaduan warisan tradisional dengan teknologi interaktif moderntransformasi infrastruktur digital memperlihatkan peran penting otomatisasi dalam menjaga stabilitas sistemmahjongways memperlihatkan perkembangan desain permainan digital melalui optimalisasi animasi dan transisi visualmahjong ways 2 dan fenomena perubahan cara pemain menafsirkan hasil permainanmengapa istilah pola gacor mahjong ways 2 sering menimbulkan perdebatan di internetketika mahjong ways 2 menjadi bahan kajian tentang pengaruh desain hadiah digitalperbedaan antara peluang teoretis dan pengalaman pemain dalam mahjong ways 2mahjong ways 2 dalam sorotan bagaimana video kemenangan membentuk opini publikmengulas fenomena pencarian jam hoki dan kaitannya dengan mahjong ways 2mahjong ways 2 dan pentingnya mengenali klaim algoritma yang belum terbuktiketika simbol beruntun di mahjong ways 2 dianggap sebagai petunjuk kemenanganbagaimana mahjong ways 2 memunculkan diskusi tentang literasi statistik pemainmahjong ways 2 dan tantangan memahami informasi permainan di tengah konten viral