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.

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
isRemoteEnableduntuk 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).

