Cara Membuat Laporan PDF PHP

By , March 27, 2015,

Cara Membuat Laporan pdf di php. Kemarin sempat bingung cara buat laporan dengan php itu gimana. Terus cari-cari dan nemu fungsi dan class yang dikembangkan oleh Wayne Munro tentang bagaimana buat laporan pdf menggunakan bahasa pemrograman php. Bisasanya sebuah laporan seperti ini digunakan pada rekap dan rekapitulasi pada sebuah sistem, Baik sistem manejemen maupun laporan sistem informasi. Laporan tersebut berfungsi untuk meakukan evaluasi pada sistem berdasarkan laporan yang dihasilkan per periode tertentu.

Tutorial cara menampilkan data dari database kedalam format pdf cukup mudah. Yang perlu Anda lakukan adalah memanggil fungsi dan class yang sudah terdapat pada folder yang akan saya Share nanti. Contoh laporan format pdf dengan php ini Saya ambil dari contoh projek sistem informasi iklan yang pernah Saya buat. Source code nya sudah Saya sertakan pada file yang akan share disini tinggal download saja. Script PHP laporan pdf hanya perlu di edit sedikit saja dan tinggal disesuaikan dengan isi dari database phpmysql Anda dan pilih tabel yang akan di tampilkan sebagai laporan.

Artikel ini mungkin terkait dengan cara membuat laporan pdf php mysql, menggunakan fpdf, dengan dreamweaver, dengan yii, dengan codeigniter, atau juga menggunakan fungsi kombinasi javascript html2pdf, namun yang Saya buat adalah menampilkan laporan bermormat pdf dengan berdasarkan kondisi tertentu. Dalam Hal kondisi yang saya gunakan adalah tanggal Dan sehingga dengan cara ini, laporan yang terbuat akan secara otomatis terbantuk berdasarkan kondisi yang kita tentukan.

Baiklah, lanjut lagi.. Untuk diketahui contoh yang digunakan pada tutorial ini adalah menampilkan laporan pemasangan iklan pada sistem informasi iklan, seperti yang sudah Saya sebutkan diatas.

Cara Membuat Laporan PDF PHP

OK. Sebelumnya pada folder laporan ini akan berisi file yaitu:

  1. lap_pemasangan.php, file ini merupakan file yang berguna untuk memberikan kondisi yang akan Anda gunakan untuk menampilkan laporan pdf.
  2. rekap_pemasangan.php, file ini adalah proses eksekusi dari kondisi yang diberikan pada file no 1 diatas.
  3. folder pdf, berisi fungsi pdf yaitu : class.pdf.php, class.ezpdf.php dan folder font atau tulisan. pada folder ini tidak perlu di oprek atau biarkan saja, tapi kalau mau di pelajari juga silahkan.

Tutorial laporan pdf dengan php

Setelah file diatas sudah Anda download silahkan masukkan ke folder server komputer Anda. Pada komputer saya server yang saya gunakan Adalah xamp berarti letaknya di folder htdoc, untuk server wamp, dan yang lain silahkan sesuaikan.

Berikut langkah-langkah membuat laporan pdf dengan simpel dan cepat:

  1. Buat database pada server Anda dengan nama sipi ( boleh diganti dengan nama sendiri dan sesuaikan dengan koneksi database).
  2. Import tabel yang sudah saya sertakan kedalam database mysql yang sudah terbuat, pada file ini tabel yang Saya gunakan namanya adalah pasang.
  3. Setelah selesai silahkan Anda akses folder root pada file laporan yang sudah Anda buat tadi. Selesai.

Tampilan database dan tabel yang dibuat:

Tampilan tabel dan database yang dibuat

Tampilan tabel dan database yang dibuat

Script dan source code laporan pdf php

1. lap_pemasangan.php

<?php
 echo '
 <h3>Rekap Data Pemasangan Iklan</h3>
 <fieldset>
 <form name="login" action="rekap_pemasangan.php" method="POST">
 <div class="control-group">
 <b>Dari :</b><br/>
 <input type="date" name="dari" class="required">
 </label>
 <label><br/><b>Sampai :</b><br/>
 <input type="date" name="sampai" class="required">
 </label>
 <label><p>
 <button type="submit" >Proses</button>
 <button type="button" onclick="self.history.back()">Batal</button></p>
 </label>
 </div>
 </form>
 </fieldset>
 ';
?>

Akan menampilkan seperti ini

Tampilan kondisi laporan pdf php

Tampilan kondisi laporan pdf php

2. rekap_pemasangan.php

<?php

include "pdf/class.ezpdf.php"; //class ezpdf yg di panggil
$pdf = new Cezpdf();

//Set margin dan font
$pdf->ezSetCmMargins(3, 3, 3, 3);
$pdf->selectFont('pdf/fonts/Courier.afm');

//Tampilkan gambar di dokumen PDF
$pdf->addJpegFromFile('sipi.jpg',31,778,90);

//Teks di tengah atas untuk judul header
$pdf->addText(140, 800, 16,'<b>REKAPITULASI PEMASANGAN IKLAN</b>');
$pdf->addText(125, 780, 14,'<b>PT.SISTEMPHP.COM (Jl.Soebrantas km.16)</b>');

//Garis atas untuk header
$pdf->line(31, 770, 565, 770);

//Garis bawah untuk footer
$pdf->line(31, 50, 565, 50);

//Teks kiri bawah
$pdf->addText(410,34,8,'Dicetak tgl:' . date( 'd-m-Y, H:i:s'));

// Baca input tanggal yang dikirimkan user
$dari = date_format(date_create($_POST[dari]), 'Y-m-d');
$sampai = date_format(date_create($_POST[sampai]), 'Y-m-d');
//echo "$mulai $selesai";exit;

//Menampilkan isi dari database
//Koneksi ke database dan tampilkan datanya
mysql_connect("localhost", "root", "");
mysql_select_db("sipi");

$tampil = "SELECT a.id_pasang, a.judul_iklan, a.isi_iklan, a.awal, a.akhir, b.kategori, c.tipe, c.harga, d.nama FROM pasang a, kategori b, iklan c, user d WHERE
 awal between '$dari' and '$sampai' AND a.id_kategori = b.id_kategori and a.id_iklan = c.id_iklan and a.id_user = d.id_user ORDER BY a.id_pasang DESC
 ";
//echo $tampil;exit;
$sql = mysql_query($tampil);

//Menghitung jumlah data pada database
$jml = mysql_num_rows($sql);
//echo $jml;exit;
if ($jml > 0){

$i = 1;
while($r = mysql_fetch_array($sql)) {

//Format Menampilkan data di ezPdf
 $data[$i]=array('No'=>$i,
 'Judul'=>"$r[judul_iklan]",
 'Kategori'=>"$r[kategori]",
 'Tipe'=>"$r[tipe]",
 'Pemasang'=>"$r[nama]",
 'Tgl. Pasang'=>"$r[awal]",
 'Tgl. Berakhir'=>"$r[akhir]",
 'Harga'=>'Rp. '.number_format(($r[harga]),0,',','.')
 );
 $i++;

}

//Tampilkan Dalam Bentuk Table
$pdf->ezTable($data);

$pdf->ezText("\nPeriode: $dari s/d $sampai");

// Penomoran halaman
$pdf->ezStartPageNumbers(564, 20, 8);
$pdf->ezStream();
}

else{

echo "
 <script>
 alert('Tidak Ada Pemasangan Iklan');
 window.location=\"../../?modul=laporan&aksi=cetak\";
 </script>
 ";

}

?>

Dari eksekusi yang dilakukan maka hasil dari laporan yang ditampilkan adalah sebagai berikut:

Hasil laporan pdf

Hasil laporan pdf

Cara membuat laporan pdf php ini saya beri kondisi jika data pada tabel database tidak tersedia sesuai dengan tanggal dan waktu yang dipilih, maka sistem akan memberikan informasi bahwa laporan yang dimaksud tidak tersedia.

Pada scrip diatas saya menggabungkan beberapa tabel dan menampilankan menjadi laporan. Seperti yang terdapat pada scrip rekap_pemasangan.php line 36, dan script untuk menampilkan isi tabel databasenya terdapat pada line 51.

Download script

Postingan berikutnya

  1. membuat laporan pdf php berdasarkan kondisi
  2. source code cetak laporan dengan php
  3. script php cetak laporan pdf
  4. membuat laporan dengan fpdf php
  5. contoh laporan pdf
  6. membuat laporan berdasarkan tanggal dengan php
  7. cara membuat laporan pdf dengan php
Category: Artikel

Tentang: Abdul Rohman Wahid, ST

Programmer yang Bekerja menjadi tenaga ahli IT di Instansi Pemerintah Provinsi Riau. Saya biasanya menulis di blog ini terkait pemrograman. Selain itu Saya juga aktif mengelola web searti.com, aplikasikan.com dan kasitau.com. TLP/WA: 082285417494. Profil Lengkap.

37 thoughts on “Cara Membuat Laporan PDF PHP

    1. admin Post author

      Tanggalnya sudah di cek mas pemilihannya.. Pada form yang ada sesuaikan pemilihan tanggal dengan tanggal yang ada di database.

      Reply
      1. idham

        masih g bsa,,jawabanya data tidak pemansangan,,,mnt emailny dunk,,,,
        ntr q krmn screenshootny,,
        frmt ipnpt tglny 03/25/2015,,,bnr g

        Reply
  1. salihin untar

    Saya lihat Oke Juga , hanya saja sy coba memakai
    $pdf->addJpegFromFile(‘sipi.jpg’,31,778,90); kok ngak jalan yah.
    Salah dimana

    Koding saya adalah :

    $pdf = new FPDF(‘L’,’cm’,’Legal’);
    $pdf->AddPage();
    $pdf->SetFont(‘Helvetica’,”,14);

    $pdf->addJpegFromFile(‘sipi.jpg’,31,778,90);

    $pdf->Write(0.5, nama_perusahaan);$pdf->Ln();
    $pdf->SetFontSize(10);

    $pdf->Write(0.5, ‘SALES QUOTATION’);$pdf->Ln();
    $pdf->Write(0.5, alamat_perusahaan);$pdf->Ln();

    $pdf->Ln();
    $pdf->SetFont(‘Helvetica’,’B’,12);
    $pdf->cell(1,2, ‘No.’,1,0,’C’);
    $pdf->cell(12.5,2, ‘Item Description’,1,0,C);
    $pdf->cell(3,2, ‘Qty’,1,0,C);
    $pdf->cell(3,2, ‘Unit Price’,1,0,C);
    $pdf->cell(3,2, ‘Disc %’,1,0,C);
    $pdf->cell(3,2, ‘Tax’,1,0,C);
    $pdf->cell(3,2, ‘Amount’,1,0,C);

    $pdf->Ln();

    Reply
    1. admin Post author

      Beda mas, fungsi yang di pakai Bukan FPDF tapi berbeda lagi. Makanya kalau pakai FPDF jadi tidak sesuai fungsinya. Untuk lebih lengkapnya Script sudah saya sertakan di file download.

      Reply
        1. admin Post author

          Untuk pemasangan iklan bisa di modifikasi mas, Untuk laporan penyesuaian dengan pemanggilan field database saja.

          Reply
  2. mance

    Tidak ada pemasangan iklan mas…
    Kira2 apanya yang salah ya mas padahal udah diinput databasenya
    Errornya kaya gini :

    Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\xampp\php\PEAR\class.pdf.php on line 2856

    Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\xampp\php\PEAR\class.pdf.php on line 285

    Notice: Use of undefined constant dari – assumed ‘dari’ in C:\xampp\htdocs\laporanpdf\rekap_pemasangan.php on line 28

    Notice: Use of undefined constant sampai – assumed ‘sampai’ in C:\xampp\htdocs\laporanpdf\rekap_pemasangan.php on line 29

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\laporanpdf\rekap_pemasangan.php on line 44

    Reply
  3. yunia

    mas maaf , kenpa ya yang saya hasil nya banyak yg eror . boleh minta bantuan nya . Terimakasih

    Reply
    1. admin Post author

      COba di isi mbak. yang untuk iklannya dari phpmyadmin.. JIka tetap error keungkinan versi server yang mbak gunakan tipenya beda.

      Reply
  4. dwi prasetyo

    itu cuma table pasang doang?

    table kategori, iklan, user nya mana bang??

    Reply
  5. anonim

    paling enak.. coba pakek pdf HTML2PDF tinggal convert file HTML ke PDF…

    untuk yang format tanggal biasanya secara default date time (yyyy-MM-dd) coba diconvert pakek fungsi
    function balikTanggal($tgl_awal){
    if($tgl_awal == “”){
    return $tgl_awal;
    }
    else{
    $tgl2 = explode(“-“,$tgl_awal);
    if(count($tgl2) >= 3)
    {
    return $tgl2[2].”-“.$tgl2[1].”-“.$tgl2[0];
    }
    else{
    return $tgl_awal;
    }
    }
    }
    function balikTanggal1($tgl_akhir){
    if($tgl_akhir == “”){
    return $tgl_akhir;
    }
    else{
    $tgl2 = explode(“-“,$tgl_akhir);
    if(count($tgl2) >= 3)
    {
    return $tgl2[2].”-“.$tgl2[1].”-“.$tgl2[0];
    }
    else{
    return $tgl_akhir;
    }
    }
    }
    $tgl_awal=balikTanggal($_POST[‘tgl_awal’]);
    $tgl_akhir=balikTanggal($_POST[‘tgl_akhir’]);

    semoga bisa membantu ^_^

    Reply
    1. admin Post author

      wah Bagus juga mas logikanya. Semoga membantu buat teman-teman yang lain.

      Reply
    1. admin Post author

      Untuk membuat totalnya bisa menggunakan sum(nama_tabel) as total melalui query database mbak. atau Jika ingin melalui script phpnya dapat menggunakan fungsi array_sum($nilai) dan sebagainya.

      Reply
  6. ady

    kalo seumpama di masukin code igniter kog ga bisa ya, mohon bantuanya admin

    Reply
  7. prikitiew

    Mas kok nda bisa ya.
    Banyak errornya
    ini pake xampp versi brp sih?? kalau saya versi 1.7.7

    Reply
  8. reski iswanto daulay

    pada laporan pdf tersebut, apakah laporan pdf nya bisa pakai edit mas

    Reply
    1. admin Post author

      Untul laporannya tidak pakai edit mas @reski iswanto daulaay. soalnya langsung di generate melalui tabel database dengan ketentuan laporan yang di inginkan. misalnya pertanggal, per data atau lainya. Dan untuk edit yang di maksud seperti apa ya mas, mana tau bisa saya bantu?

      Reply

Leave a Reply to idham kholid Cancel reply

Your email address will not be published. Required fields are marked *