Cara Membuat Laporan PDF dengan PHP dan MySQL (Dompdf)

Laporan PDF dibutuhkan untuk invoice, nota, rapor, atau rekap data yang bisa dicetak dan dibagikan. Cara termudah membuatnya di PHP adalah mengubah HTML menjadi PDF dengan library Dompdf. Artikel ini membahas cara membuat laporan PDF dengan PHP dan MySQL.

Alur Membuat Laporan PDF
Alur Membuat Laporan PDF

Langkah 1: Install Dompdf

Gunakan Composer untuk memasang Dompdf:

composer require dompdf/dompdf

Langkah 2: Menyusun Laporan dari Data

Ambil data dari database, susun menjadi HTML, lalu render ke PDF:

<?php
require "vendor/autoload.php";
require "koneksi.php";

use Dompdf\Dompdf;

// susun HTML laporan
$html = "<h2 style='text-align:center'>Laporan Produk</h2>";
$html .= "<table width='100%' border='1' cellpadding='6'>";
$html .= "<tr><th>Nama</th><th>Harga</th></tr>";

$data = $koneksi->query("SELECT nama, harga FROM produk");
while ($row = $data->fetch_assoc()) {
    $html .= "<tr>";
    $html .= "<td>" . htmlspecialchars($row["nama"]) . "</td>";
    $html .= "<td>Rp" . number_format($row["harga"], 0, ",", ".") . "</td>";
    $html .= "</tr>";
}
$html .= "</table>";

// render ke PDF
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->setPaper("A4", "portrait");
$dompdf->render();
$dompdf->stream("laporan.pdf", ["Attachment" => false]); // false = tampil di browser
?>

Opsi "Attachment" => false menampilkan PDF di browser; ubah ke true untuk langsung mengunduh.

Langkah 3: Menambahkan Kop & Gaya

Karena isinya HTML, Anda bisa menambahkan CSS inline untuk kop surat, logo, dan format:

<?php
$html = "
<style>
    body { font-family: sans-serif; }
    .kop { text-align:center; border-bottom:2px solid #000; margin-bottom:15px; }
</style>
<div class='kop'>
    <h2>TOKO SEJAHTERA</h2>
    <p>Jl. Contoh No. 1, Jakarta</p>
</div>
";
?>

Kesalahan Umum

  • Gambar tidak muncul — gunakan path absolut atau base64, dan aktifkan opsi isRemoteEnabled untuk gambar online.
  • CSS kompleks tidak terbaca — Dompdf mendukung CSS dasar; hindari flexbox/grid, pakai tabel untuk layout.
  • Output rusak — pastikan tidak ada echo sebelum stream().

Kesimpulan

Dengan Dompdf, membuat laporan PDF dari data MySQL semudah menyusun HTML. Ini sempurna untuk invoice, nota, atau rekap. Kombinasikan dengan fitur filter tanggal untuk membuat laporan periodik yang siap cetak.

Referensi: untuk pendalaman, kunjungi dokumentasi resmi PHP (php.net).

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *