Archive

Posts Tagged ‘FPDF’

Membuat Laporan(Report) dg FPDF, Html2FPDF & Html2PDF

29 December 2010 18 comments

Apa itu fpdf, html2fpdf & html2pdf?

Secara umum fpdf, html2fpdf, dan html2pdf adalah library dari PHP untuk membuat file PDF. hal ini sangat berguna jika kita membangun sistem reporting. PDF(Portable Document File) merupakan file yang bisa di baca di semua OS. jadi inilah alasannya kenapa memakai PDF untuk reporting.

Gak usah banyak cas-cis-cus langsung aja saya berikan contoh dari ke-3 library di atas.

1. FPDF


<?php
 include 'fpdf.php' ;
 mysql_connect('localhost','root','');
 mysql_select_db('dbrutan');
 $bulan = $_POST['bln'];
 $tahun = $_POST['thn'];
 $sql = "SELECT * FROM napi a JOIN dtpenghuni b ON a.id_penghuni = b.id_penghuni WHERE status = 'Bebas' AND EXTRACT(MONTH FROM tgl_bebas)= '$bulan' AND EXTRACT(YEAR FROM tgl_bebas)= '$tahun' ORDER BY id_napi DESC";

$qry=mysql_query($sql) or die (mysql_error());
 define('FPDF_FONTPATH','font/');

$pdf=new FPDF('L','mm','A4');
 $pdf->Open();
 $pdf->SetAutoPageBreak(false);
 $pdf->AddPage();
 $pdf->SetFont('Arial','B',12);
 $pdf->Cell(100,6,'KEMENTERIAN HUKUM DAN HAM RI',0,0,'C');
 $pdf->Ln();
 $pdf->Cell(100,6,'KANTOR WILAYAH JAWA TIMUR',0,0,'C');
 $pdf->Ln();
 $pdf->Cell(100,6,'RUMAH TAHANAN NEGARA BANGKALAN',0,0,'C');
 $pdf->Ln();
 $pdf->Cell(100,6,'JL. PERTEMPURAN NO.21 BANGKALAN',0,0,'C');
 $pdf->Ln();
 $pdf->Cell(100,6,'TELEPON : (031)3095014',0,0,'C');
 $pdf->Ln();
 $pdf->Text(160,25,'DAFTAR : Narapidana yang telah dilepaskan/dibebaskan',0);
 $pdf->Ln();
 $pdf->Text(181,31,"dari Rumah Tahanan Negara Bangkalan",0);
 $pdf->Ln();
 $bln = date("F", mktime(0, "$bulan"));
 $pdf->Text(181,37,"Dalam bulan $bln $tahun",0);

$y_axis_initial = 45;
 $pdf->SetFont('Arial','',10);
 $pdf->setFillColor(222,222,222);
 $pdf->SetY($y_axis_initial);
 $pdf->SetX(10);
 //Header tabel halaman 1
 $pdf->CELL(10,6,'NO',1,0,'C',1);
 $pdf->Cell(40,6,'NAMA',1,0,'C',1);
 $pdf->Cell(15,6,'GOL',1,0,'C',1);
 $pdf->Cell(15,6,'P/W',1,0,'C',1);
 $pdf->Cell(15,6,'UMUR',1,0,'C',1);
 $pdf->Cell(37,6,'PUTUSAN DARI',1,0,'C',1);
 $pdf->Cell(25,6,'PERKARA',1,0,'C',1);
 $pdf->Cell(30,6,'ASAL PENYIDIK',1,0,'C',1);
 $pdf->Cell(30,6,'TGL BEBAS',1,0,'C',1);
 $pdf->Cell(40,6,'ALAMAT',1,0,'C',1);
 $pdf->Cell(25,6,'KET PIDANA',1,0,'C',1);
 $pdf->Ln();
 $max=25;//max baris perhalaman
 $i=0;
 $no=0;
 $row_height = 6;//tinggi tiap2 cell/baris
 $y_axis = $y_axis + $row_height;
 $date = date("Y-m-d");

while($row = mysql_fetch_array($qry))
 {
 $no++;
 $selisih = strtotime($date) -  strtotime($row[tgl_lahir]);
 $umur = intval($selisih/(60*60*24)/365);
 if ($i == $max){               //jika $i=25 maka buat header baru seperti di atas
 $pdf->AddPage();
 $pdf->SetY(10);
 $pdf->SetX(10);
 $pdf->CELL(10,6,'NO',1,0,'C',1);
 $pdf->Cell(40,6,'NAMA',1,0,'C',1);
 $pdf->Cell(15,6,'GOL',1,0,'C',1);
 $pdf->Cell(15,6,'P/W',1,0,'C',1);
 $pdf->Cell(15,6,'UMUR',1,0,'C',1);
 $pdf->Cell(37,6,'PUTUSAN DARI',1,0,'C',1);
 $pdf->Cell(25,6,'PERKARA',1,0,'C',1);
 $pdf->Cell(30,6,'ASAL PENYIDIK',1,0,'C',1);
 $pdf->Cell(30,6,'TGL BEBAS',1,0,'C',1);
 $pdf->Cell(40,6,'ALAMAT',1,0,'C',1);
 $pdf->Cell(25,6,'KET PIDANA',1,0,'C',1);

$pdf->SetY(10);
 $pdf->SetX(25);
 $y_axis = $y_axis + $row_height;
 $i=0;
 $pdf->Ln();
 }
 //tampilkan data daari database
 $pdf->Cell(10,6,$no,1);
 $pdf->Cell(40,6,$row[nama],1);
 $pdf->Cell(15,6,$row[jenis_napi],1);
 $pdf->Cell(15,6,$row[jk],1);
 $pdf->Cell(15,6,$umur,1);
 $pdf->Cell(37,6,$row[srt_putusan],1);
 $pdf->Cell(25,6,$row[pasal],1);
 $pdf->Cell(30,6,$row[asal_penyidik],1);
 $pdf->Cell(30,6,$row[tgl_bebas],1);
 $pdf->Cell(40,6,$row[alamat],1);
 $pdf->Cell(25,6,'',1);
 $pdf->Ln();
 $i++;
 }

//buat footer
 $now = date("d F Y");
 $pdf->Ln(10);
 $pdf->SetFont('Arial','B',12);
 $pdf->Cell(400,6,"Bangkalan, Tgl  $now",0,0,'C');
 $pdf->Ln();
 $pdf->Cell(404,6,"Kepala Rutan Bangkalan",0,0,'C');
 $pdf->Ln(30);
 $pdf->SetFont('Arial','U',12);
 $pdf->Cell(404,6,"BAMBANG HARYANTO,Bc.IP.SH.M.Hum",0,0,'C');
 $pdf->Ln();
 $pdf->SetFont('Arial','',12);
 $pdf->Cell(404,6,"NIP. 19661018 1992 03 1001",0,0,'C');
 $pdf->Ln();
 $pdf->Output('Napi_bebas_'.date("F Y").'.pdf', 'I');
 ?>

Jika ada yang kurang atau menambahkan silahkan comment

Read more…

%d bloggers like this: