Powered by Blogger.

Wednesday 15 April 2015

Tutorial Cara membuat Report PDF di PHP menggunakan HTML2PDF

Posted by Creative Recipes  |  4 comments

Selamat sore pecinta PHP, kali ini saya akan memberikan contoh kodingan membuat report atau laporan dalam format pdf di PHP dengan menggunakan library HTML2PDF dan menggunakan database MySQL. Convert HTML ke PDF ini banyak sekali caranya, baik dengan menggunakan library MPDF5, FPDF, maupun HTML2PDF.
Sebelum mulai koding, download dulu library  HTML2PDF disini.
Setelah di download, seperti biasa kita harus create database dan tablenya.
Contoh databasenya mahasiswa dengan tabel siswa.
Create Table 

  1. CREATE TABLE SISWA (  
  2. NIS VARCHAR(10) NOT NULL PRIMARY KEY,  
  3. NAMA VARCHAR(30) NOT NULL,  
  4. ALAMAT VARCHAR(255) NOT NULL,  
  5. TGL_LAHIR DATE NOT NULL,  
  6. TELP VARCHAR(30) NOT NULL,  
  7. ANGKATAN VARCHAR(2) NOT NULL  
  8. )  
Jangan lupa insert tabelnya 
Insert Table 
  1. INSERT INTO siswa (NIS, Nama, Alamat, TGL_LAHIR , Telp, Angkatan )   
  2.             values ('0912912','ALETA GAOS''JAKARTA''1991-03-01','0341 567890','2009');  
  3. INSERT INTO siswa (NIS, Nama, Alamat, TGL_LAHIR , Telp, Angkatan )   
  4.             values ('12345','ANGGUN PATRIANA''JAKARTA''07-04-1990','021886968','2008');  
  5. INSERT INTO siswa (NIS, Nama, Alamat, TGL_LAHIR , Telp, Angkatan )   
  6.             values ('13456','FERI ALGIFARI GAOS''CIAMIS''19-02-1989','081256985','2007');  
  7. )  
Langkah pertama, buat file koneksi yang biasa diberi nama config. Simpan saja file koneksinya dengan nama config.php.
  1. <?php  
  2. //============================================  
  3. //@author : Anggun Patriana  
  4. //============================================  
  5.   
  6. //setting koneksi php dan mysql anda  
  7. $root = "root"; //username db anda  
  8. $pass = ""; //password database anda  
  9. $db  = "mahasiswa"; //nama database anda  
  10. $host = "localhost";  
  11.   
  12. if($connect = mysql_connect($host,$root,$pass)==true){  
  13.  $sel = mysql_select_db($db);  
  14. }  
  15. else{  
  16.  echo "Koneksi database Gagal !!";  
  17. }  
  18.   
  19. ?>  
Selanjutnya kita bikin file siswa.php yang kodingannya seperti di bawah ini.
  1. <?php  
  2. include_once("config.php");  
  3.   
  4. //buat query untuk menampilkan berita  
  5. $query = mysql_query("SELECT * FROM SISWA ORDER BY NAMA");  
  6.   
  7. ?>  
  8. <style>  
  9.  table{  
  10.   border:silver 1px solid;  
  11.  }  
  12.  table td{  
  13.   border-bottom:silver 1px solid;  
  14.   border-right:silver 1px solid;  
  15.   padding:0 0 0 5px;  
  16.  }  
  17. </style>  
  18. <table cellpadding="0" cellspacing="0" style="font-family:Verdana, Geneva, sans-serif">  
  19.   <!--DWLayoutTable-->  
  20.   <tr>  
  21.     <td height="25" colspan="7" align="center"><strong>DAFTAR MAHASISWA</strong></td>  
  22.   </tr>  
  23.   <tr>  
  24.     <td height="25" align="center" style="background-color:#CCC"><strong>NO</strong></td>  
  25.     <td width="100" align="center" style="background-color:#CCC"><strong>NIS</strong></td>  
  26.     <td width="250" align="center" style="background-color:#CCC"><strong>NAMA</strong></td>  
  27.     <td width="150" align="center" style="background-color:#CCC"><strong>ALAMAT</strong></td>  
  28.     <td width="150" align="center" style="background-color:#CCC"><strong>TGL LAHIR</strong></td>  
  29.     <td width="150" align="center" style="background-color:#CCC"><strong>TELEPON</strong></td>  
  30.      <td width="100" align="center" style="background-color:#CCC"><strong>ANGKATAN</strong></td>  
  31.   </tr>  
  32. <?php  
  33. $nomor = 1;  
  34. while($data = mysql_fetch_array($query)){  
  35. $kode = $data['NIS']; // ambil nis siswa (unik)  
  36. ?>  
  37.   <tr>  
  38.     <td width="38" height="25" valign="middle"><?php echo $nomor; ?></td>  
  39.     <td valign="middle"><?php echo $data['NIS']; ?></td>  
  40.     <td valign="middle"><?php echo $data['NAMA']; ?></td>  
  41.     <td valign="middle"><?php echo $data['ALAMAT']; ?></td>  
  42.     <td valign="middle"><?php echo $data['TGL_LAHIR']; ?></td>  
  43.     <td valign="middle"><?php echo $data['TELP']; ?></td>  
  44.     <td valign="middle"><?php echo $data['ANGKATAN']; ?></td>  
  45.     <td valign="middle">  
  46.  <!-- BUAT LINK POP UP KE HALAMAN PDF KONVERTER SEPERTI PADA CONTOH BERIKUT -->  
  47.  <a href="javascript:void(0);"  
  48.     onclick="window.open('report.php?kode=<?php echo $kode; ?>','nama_window_pop_up','size=800,height=800,scrollbars=yes,resizeable=no')">PDF</a>  
  49.  </td>  
  50.    </tr>  
  51. <?php  
  52. $nomor++;  
  53. }  
  54. ?>  
  55. </table>  
Setelah bikin file siswa.php, selanjutnya kita buat halaman report PDFnya, simpan dengan file report.php
  1. <?php  
  2. session_start();  
  3. ob_start();  
  4. include_once("config.php"); //buat koneksi ke database  
  5. $kode   = $_GET['kode']; //kode berita yang akan dikonvert  
  6. $query  = mysql_query("SELECT * FROM SISWA WHERE NIS='".$kode."'");  
  7. $data   = mysql_fetch_array($query);  
  8.   
  9. ?>  
  10. <html xmlns="http://www.w3.org/1999/xhtml"> <!-- Bagian halaman HTML yang akan konvert -->  
  11. <head>  
  12. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
  13. <title><?php echo $data['NIS']; ?></title>  
  14. </head>  
  15. <body>  
  16. <?php  
  17. echo "<h1>".$data['NIS']."</h1>";   
  18. echo '<table border="0">  
  19.   <tr>  
  20.     <td width="100">NAMA</td>  
  21.     <td width="10">:</td>  
  22.     <td width="250">'.$data['NAMA'].'</td>  
  23.   </tr>  
  24.   <tr>  
  25.     <td>TGL LAHIR</td>  
  26.     <td>:</td>  
  27.     <td>'.$data['TGL_LAHIR'].'</td>  
  28.   </tr>  
  29.   <tr>  
  30.     <td>ALAMAT</td>  
  31.     <td>:</td>  
  32.     <td>'.$data['ALAMAT'].'</td>  
  33.   </tr>  
  34.    <tr>  
  35.     <td>TELEPON</td>  
  36.     <td>:</td>  
  37.     <td>'.$data['TELP'].'</td>  
  38.   </tr>  
  39.   <tr>  
  40.     <td>ANGKATAN</td>  
  41.     <td>:</td>  
  42.     <td>'.$data['ANGKATAN'].'</td>  
  43.   </tr>  
  44. </table>';  
  45.   
  46. echo "<p>data yang tertera di atas adalah mahasiswa universitas ini.</p>";  
  47. echo "<p align='right'>JAKARTA, ".date('d-m-Y')."  
  48. <img src='ttd.png' width='120'>  
  49. ( Anggun Patriana )</p>";  
  50. ?>  
  51. </body>  
  52. </html><!-- Akhir halaman HTML yang akan di konvert -->  
  53. <?php  
  54. $filename="mhs-".$kode.".pdf"; //ubah untuk menentukan nama file pdf yang dihasilkan nantinya  
  55. //==========================================================================================================  
  56. //Copy dan paste langsung script dibawah ini,untuk mengetahui lebih jelas tentang fungsinya silahkan baca-baca tutorial tentang HTML2PDF  
  57. //==========================================================================================================  
  58. $content = ob_get_clean();  
  59. $content = '<page style="font-family: freeserif">'.nl2br($content).'</page>';  
  60.  require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');  
  61.  try  
  62.  {  
  63.   $html2pdf = new HTML2PDF('P','A4','en', false, 'ISO-8859-15',array(30, 0, 20, 0));  
  64.   $html2pdf->setDefaultFont('Arial');  
  65.   $html2pdf->writeHTML($content, isset($_GET['vuehtml']));  
  66.   $html2pdf->Output($filename);  
  67.  }  
  68.  catch(HTML2PDF_exception $e) { echo $e; }  
  69. ?>  
Hasilnya seperti di bawah ini. 


Semoga bermanfaat

06:47 Share:
About Naveed Iqbal

Nulla sagittis convallis arcu. Sed sed nunc. Curabitur consequat. Quisque metus enim venenatis fermentum mollis. Duis vulputate elit in elit. Follow him on Google+.

4 comments:

  1. Artikel copas?
    http://anggun43ana.blogspot.co.id/2014/03/cara-membuat-report-pdf-di-php.html

    Btw, terima kasih.

    ReplyDelete
  2. TCPDF ERROR: Some data has already been output, can't send PDF file

    ReplyDelete
  3. Sudah saya ikuti tapi error kenapa ya ada pesan seperti ini "Object not found" !

    ReplyDelete
  4. kalo datanya banyak dan kepotong gimana gan

    ReplyDelete

Get updates in your email box
Complete the form below, and we'll send you the best coupons.

Deliver via FeedBurner

Text Widget

About Us

© 2014 .Programmer Mania. Shared by WpCoderX
Proudly Powered by Blogger.
back to top