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
- CREATE TABLE SISWA (
- NIS VARCHAR(10) NOT NULL PRIMARY KEY,
- NAMA VARCHAR(30) NOT NULL,
- ALAMAT VARCHAR(255) NOT NULL,
- TGL_LAHIR DATE NOT NULL,
- TELP VARCHAR(30) NOT NULL,
- ANGKATAN VARCHAR(2) NOT NULL
- )
Insert Table
- INSERT INTO siswa (NIS, Nama, Alamat, TGL_LAHIR , Telp, Angkatan )
- values ('0912912','ALETA GAOS', 'JAKARTA', '1991-03-01','0341 567890','2009');
- INSERT INTO siswa (NIS, Nama, Alamat, TGL_LAHIR , Telp, Angkatan )
- values ('12345','ANGGUN PATRIANA', 'JAKARTA', '07-04-1990','021886968','2008');
- INSERT INTO siswa (NIS, Nama, Alamat, TGL_LAHIR , Telp, Angkatan )
- values ('13456','FERI ALGIFARI GAOS', 'CIAMIS', '19-02-1989','081256985','2007');
- )
- <?php
- //============================================
- //@author : Anggun Patriana
- //============================================
- //setting koneksi php dan mysql anda
- $root = "root"; //username db anda
- $pass = ""; //password database anda
- $db = "mahasiswa"; //nama database anda
- $host = "localhost";
- if($connect = mysql_connect($host,$root,$pass)==true){
- $sel = mysql_select_db($db);
- }
- else{
- echo "Koneksi database Gagal !!";
- }
- ?>
- <?php
- include_once("config.php");
- //buat query untuk menampilkan berita
- $query = mysql_query("SELECT * FROM SISWA ORDER BY NAMA");
- ?>
- <style>
- table{
- border:silver 1px solid;
- }
- table td{
- border-bottom:silver 1px solid;
- border-right:silver 1px solid;
- padding:0 0 0 5px;
- }
- </style>
- <table cellpadding="0" cellspacing="0" style="font-family:Verdana, Geneva, sans-serif">
- <!--DWLayoutTable-->
- <tr>
- <td height="25" colspan="7" align="center"><strong>DAFTAR MAHASISWA</strong></td>
- </tr>
- <tr>
- <td height="25" align="center" style="background-color:#CCC"><strong>NO</strong></td>
- <td width="100" align="center" style="background-color:#CCC"><strong>NIS</strong></td>
- <td width="250" align="center" style="background-color:#CCC"><strong>NAMA</strong></td>
- <td width="150" align="center" style="background-color:#CCC"><strong>ALAMAT</strong></td>
- <td width="150" align="center" style="background-color:#CCC"><strong>TGL LAHIR</strong></td>
- <td width="150" align="center" style="background-color:#CCC"><strong>TELEPON</strong></td>
- <td width="100" align="center" style="background-color:#CCC"><strong>ANGKATAN</strong></td>
- </tr>
- <?php
- $nomor = 1;
- while($data = mysql_fetch_array($query)){
- $kode = $data['NIS']; // ambil nis siswa (unik)
- ?>
- <tr>
- <td width="38" height="25" valign="middle"><?php echo $nomor; ?></td>
- <td valign="middle"><?php echo $data['NIS']; ?></td>
- <td valign="middle"><?php echo $data['NAMA']; ?></td>
- <td valign="middle"><?php echo $data['ALAMAT']; ?></td>
- <td valign="middle"><?php echo $data['TGL_LAHIR']; ?></td>
- <td valign="middle"><?php echo $data['TELP']; ?></td>
- <td valign="middle"><?php echo $data['ANGKATAN']; ?></td>
- <td valign="middle">
- <!-- BUAT LINK POP UP KE HALAMAN PDF KONVERTER SEPERTI PADA CONTOH BERIKUT -->
- <a href="javascript:void(0);"
- onclick="window.open('report.php?kode=<?php echo $kode; ?>','nama_window_pop_up','size=800,height=800,scrollbars=yes,resizeable=no')">PDF</a>
- </td>
- </tr>
- <?php
- $nomor++;
- }
- ?>
- </table>
- <?php
- session_start();
- ob_start();
- include_once("config.php"); //buat koneksi ke database
- $kode = $_GET['kode']; //kode berita yang akan dikonvert
- $query = mysql_query("SELECT * FROM SISWA WHERE NIS='".$kode."'");
- $data = mysql_fetch_array($query);
- ?>
- <html xmlns="http://www.w3.org/1999/xhtml"> <!-- Bagian halaman HTML yang akan konvert -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- <title><?php echo $data['NIS']; ?></title>
- </head>
- <body>
- <?php
- echo "<h1>".$data['NIS']."</h1>";
- echo '<table border="0">
- <tr>
- <td width="100">NAMA</td>
- <td width="10">:</td>
- <td width="250">'.$data['NAMA'].'</td>
- </tr>
- <tr>
- <td>TGL LAHIR</td>
- <td>:</td>
- <td>'.$data['TGL_LAHIR'].'</td>
- </tr>
- <tr>
- <td>ALAMAT</td>
- <td>:</td>
- <td>'.$data['ALAMAT'].'</td>
- </tr>
- <tr>
- <td>TELEPON</td>
- <td>:</td>
- <td>'.$data['TELP'].'</td>
- </tr>
- <tr>
- <td>ANGKATAN</td>
- <td>:</td>
- <td>'.$data['ANGKATAN'].'</td>
- </tr>
- </table>';
- echo "<p>data yang tertera di atas adalah mahasiswa universitas ini.</p>";
- echo "<p align='right'>JAKARTA, ".date('d-m-Y')."
- <img src='ttd.png' width='120'>
- ( Anggun Patriana )</p>";
- ?>
- </body>
- </html><!-- Akhir halaman HTML yang akan di konvert -->
- <?php
- $filename="mhs-".$kode.".pdf"; //ubah untuk menentukan nama file pdf yang dihasilkan nantinya
- //==========================================================================================================
- //Copy dan paste langsung script dibawah ini,untuk mengetahui lebih jelas tentang fungsinya silahkan baca-baca tutorial tentang HTML2PDF
- //==========================================================================================================
- $content = ob_get_clean();
- $content = '<page style="font-family: freeserif">'.nl2br($content).'</page>';
- require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');
- try
- {
- $html2pdf = new HTML2PDF('P','A4','en', false, 'ISO-8859-15',array(30, 0, 20, 0));
- $html2pdf->setDefaultFont('Arial');
- $html2pdf->writeHTML($content, isset($_GET['vuehtml']));
- $html2pdf->Output($filename);
- }
- catch(HTML2PDF_exception $e) { echo $e; }
- ?>
Semoga bermanfaat
06:47
Share:
Artikel copas?
ReplyDeletehttp://anggun43ana.blogspot.co.id/2014/03/cara-membuat-report-pdf-di-php.html
Btw, terima kasih.
TCPDF ERROR: Some data has already been output, can't send PDF file
ReplyDeleteSudah saya ikuti tapi error kenapa ya ada pesan seperti ini "Object not found" !
ReplyDeletekalo datanya banyak dan kepotong gimana gan
ReplyDelete