Tutorial Lengkap Menggunakan DomPDF pada PHP untuk Membuat Laporan PDF
Apa itu DomPDF?
DomPDF** adalah library PHP yang digunakan untuk mengubah dokumen HTML menjadi file PDF. Library ini sangat populer karena mudah digunakan dan sangat cocok untuk membuat:
* Laporan data
* Invoice
* Struk pembayaran
* Surat
* Kartu identitas
* Rekam medis
* Laporan penjualan
* Sertifikat
Keunggulan DomPDF adalah kita cukup membuat tampilan menggunakan "HTML dan CSS", kemudian DomPDF akan mengubahnya menjadi file PDF.
Persyaratan
Sebelum memulai, pastikan komputer Anda telah memiliki:
* PHP 7.4 atau lebih baru
* Composer
* Web Server (Apache/Nginx/XAMPP/Laragon)
Langkah 1 - Install DomPDF
Masuk ke folder project kemudian jalankan perintah berikut.
composer require dompdf/dompdf
Setelah proses selesai akan muncul folder:
vendor/
composer.json
composer.lock
Langkah 2 - Membuat Struktur Project
Contoh struktur project:
project/
?
??? vendor/
??? composer.json
??? index.php
??? laporan.php
Langkah 3 - Memanggil Autoload Composer
Pada file PHP, panggil autoload Composer.
require 'vendor/autoload.php';
use Dompdf\Dompdf;
Langkah 4 - Membuat PDF Sederhana
Contoh paling sederhana.
<?php
require 'vendor/autoload.php';
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$html = '
<h1 align="center">Hello DomPDF</h1>
<p>Selamat datang di tutorial DomPDF.</p>
';
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream("contoh.pdf", ["Attachment"=>false]);
Jika dijalankan melalui browser, maka PDF akan langsung ditampilkan.
Langkah 5 - Menampilkan Data dari Database
Misalkan terdapat tabel:
barang
Berisi data obat.
Contoh koneksi:
<?php
$conn = new mysqli("localhost","root","","db_apotek");
Ambil data.
$query = mysqli_query($conn,"SELECT * FROM barang");
Buat HTML.
$html='
<h2 align="center">
Laporan Data Barang
</h2>
<table border="1" width="100%" cellspacing="0" cellpadding="5">
<tr>
<th>No</th>
<th>Kode</th>
<th>Nama Barang</th>
<th>Kategori</th>
</tr>
';
Loop data.
$no=1;
while($row=mysqli_fetch_assoc($query)){
$html.='
<tr>
<td>'.$no++.'</td>
<td>'.$row['kode_barang'].'</td>
<td>'.$row['nama_barang'].'</td>
<td>'.$row['kategori'].'</td>
</tr>
';
}
Tutup tabel.
$html.='</table>';
Kemudian kirim ke DomPDF.
$dompdf->loadHtml($html);
$dompdf->render();
$dompdf->stream();
Hasilnya seluruh data database akan berubah menjadi laporan PDF.
Langkah 6 - Menggunakan CSS
DomPDF mendukung CSS sederhana.
Contoh:
$html='
<style>
body{
font-family: Arial;
font-size:12px;
}
table{
border-collapse:collapse;
width:100%;
}
th{
background:#2E7D32;
color:white;
}
th,td{
border:1px solid #ccc;
padding:8px;
}
h2{
text-align:center;
}
</style>
';
Tampilan PDF akan menjadi jauh lebih menarik.
Langkah 7 - Mengatur Ukuran Kertas
Portrait
$dompdf->setPaper('A4','portrait');
Landscape
$dompdf->setPaper('A4','landscape');
Legal
$dompdf->setPaper('legal','portrait');
A5
$dompdf->setPaper('A5','portrait');
Langkah 8 - Menampilkan atau Mengunduh PDF
Menampilkan di Browser
$dompdf->stream(
"laporan.pdf",
[
"Attachment"=>false
]
);
Download Otomatis
$dompdf->stream(
"laporan.pdf",
[
"Attachment"=>true
]
);
Langkah 9 - Menambahkan Logo
$html='
<img src="logo.png" width="80">
<h2>PT FixDigitech Indonesia</h2>
';
Pastikan file gambar berada dalam folder project atau gunakan path absolut yang dapat diakses oleh DomPDF.
Langkah 10 - Menambahkan Nomor Halaman
Gunakan Canvas DomPDF.
$canvas = $dompdf->getCanvas();
$canvas->page_text(
520,
820,
"Halaman {PAGE_NUM} dari {PAGE_COUNT}",
null,
10
);
Contoh Hasil PDF
Isi laporan dapat berupa:
LAPORAN DATA BARANG
--------------------------------------------------
No Kode Nama Barang Kategori
1 OBT001 Paracetamol Tablet
2 OBT002 Amoxicillin Kapsul
3 OBT003 CTM Tablet
4 OBT004 Vitamin C Vitamin
--------------------------------------------------
Kelebihan DomPDF
* Mudah dipelajari
* Gratis dan open source
* Mendukung HTML dan CSS
* Mendukung tabel
* Dapat menampilkan gambar
* Cocok untuk invoice dan laporan
* Integrasi mudah dengan PHP Native maupun Framework
Kekurangan DomPDF
* Kurang optimal untuk file dengan ribuan halaman.
* Tidak mendukung seluruh fitur CSS modern.
* Penggunaan memori meningkat saat memproses dokumen berukuran besar.
* Rendering lebih lambat dibanding beberapa library PDF lain untuk laporan yang sangat kompleks.
DomPDF merupakan solusi praktis untuk menghasilkan file PDF langsung dari aplikasi PHP. Dengan memanfaatkan HTML dan CSS, Anda dapat membuat berbagai jenis dokumen seperti laporan penjualan, invoice, surat, maupun laporan apotek tanpa harus mempelajari format PDF secara mendalam. Library ini sangat cocok digunakan pada aplikasi berbasis PHP Native maupun framework seperti Laravel, sehingga menjadi pilihan yang efisien untuk kebutuhan pembuatan dokumen profesional.
Konsultasikan kebutuhan Anda secara gratis dan dapatkan rekomendasi solusi yang paling efisien untuk bisnis Anda.
💬 Komentar 0
Isi nama & email sekali sebelum mulai berkomentar. Email tidak akan ditampilkan ke publik, hanya untuk keperluan admin.