Ekspor Data ke PDF pada Laravel Menggunakan DomPDF

Oleh Mutiara Utami di 25 Sep 2025 | 11:54
Mutiara Utami

Mutiara Utami

Siswa
Postingan: 1
Suka: 1
Anggota sejak: 5 Sep 2025

Prasyarat

Sebelum melakukan langkah-langkah export PDF di Laravel, pembaca diharapkan sudah:

  • - Memiliki pemahaman mengenai dasar-dasar Laravel: routing, controller, blade, model/eloquent.
  • - Memiliki proyek Laravel yang bisa dijalankan di localhost.
  • - Mengerti dasar HTML & CSS untuk desain tampilan PDF (table dan CSS sederhana).

Dasar Materi

Export PDF adalah proses mengubah data dari sistem (biasanya berbentuk tabel atau laporan) menjadi sebuah file PDF. Format PDF banyak digunakan karena memiliki beberapa keunggulan:

  • - Formatnya tetap di berbagai perangkat.
  • - Mudah dibagikan sebagai dokumen resmi.
  • - Sering digunakan dalam laporan, invoice, maupun arsip digital.


Secara bawaan (default), Laravel tidak menyediakan fitur untuk mengekspor data ke PDF. Oleh karena itu, kita perlu menggunakan package tambahan dari pihak ketiga. Beberapa package populer:

  • - barryvdh/laravel-dompdf → sederhana, mudah digunakan, bisa langsung merender Blade view ke PDF.
  • - laravel-snappy → lebih powerful, tapi membutuhkan instalasi wkhtmltopdf.


Dalam praktikum ini, kita menggunakan barryvdh/laravel-dompdf karena proses instalasinya mudah, ringan, cepat, dan cocok untuk laporan sederhana.


Langkah Praktikum

Langkah 1: Menampilkan Data di Halaman Web

Pastikan sudah memiliki halaman untuk menampilkan data. Simpan file tampilan di resources/views/products (folder products bisa disesuaikan dengan projeknya).



Langkah 2: Instalasi Package

Jalankan perintah berikut di terminal:

composer require barryvdh/laravel-dompdf


Tunggu sampai proses instalasi selesai. Setelah selesai, cek di composer.json untuk memastikan package sudah terinstall. Misalnya, di projek ini terinstall dompdf versi 3.1.


Langkah 3: Membuat Route Export PDF

Tambahkan route baru di dalam file routes/web.php untuk mengarahkan proses export PDF. Route ini berfungsi sebagai pemicu agar sistem dapat memanggil fungsi exportPdf() pada ProductController.


Route::get('/products/pdf', [ProductController::class, 'exportPdf'])->name('products.pdf');



Langkah 4: Membuat Method Export di Controller

Tambahkan method berikut pada controller yang digunakan. Disini saya menggunakan ProductController.php.

use Barryvdh\DomPDF\Facade\Pdf;

public function exportPdf()
{
    $products = Product::all();
    $pdf = Pdf::loadView('products.pdf', compact('products'));
    return $pdf->download('listproducts.pdf');
}


Kode ini mengambil seluruh data dari tabel products menggunakan model Product. setelah itu, data yang sudah diambil dimasukkan ke dalam view products/pdf.blade.php. View ini berisi template tampilan data produk yang akan dikonversi menjadi file pdf.


Langkah 5: Membuat View Khusus PDF

Buat file resources/views/products/pdf.blade.php. File ini digunakan sebagai template tampilan data produk yang nantinya akan dikonversi menjadi PDF. Struktur tabel berisi informasi seperti nama produk, harga, dan deskripsi. Contoh tampilan pdf:

<!DOCTYPE html>
<html>
<head>
    <title>Daftar Produk</title>
    <style>
        body { font-family: sans-serif; }
        table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
        }
        th, td {
            border: 1px solid #333;
            padding: 8px;
            text-align: left;
        }
        th {
            background: #ddd;
        }
    </style>
</head>
<body>
    <h2 style="text-align:center;">Daftar Produk</h2>

    <table>
        <thead>
            <tr>
                <th>Nama</th>
                <th>Harga</th>
                <th>Deskripsi</th>
            </tr>
        </thead>
        <tbody>
            @foreach($products as $p)
            <tr>
                <td>{{ $p->name }}</td>
                <td>Rp {{ number_format($p->price, 0, ',', '.') }}</td>
                <td>{{ $p->description }}</td>
            </tr>
            @endforeach
        </tbody>
    </table>
</body>
</html>


Langkah 6: Tambah Tombol Export di Index

Pada halaman utama resources/views/products/index.blade.php, tambahkan tombol Export PDF. Tombol ini berfungsi sebagai link untuk memanggil route products.pdf. Jika tombol diklik, maka proses export PDF akan dijalankan dan file hasilnya akan langsung diunduh.



Langkah 7: Uji Coba Fitur

Jalankan aplikasi dengan php artisan serve, lalu klik tombol export pdf. Jika berhasil, sistem akan mengunduh file PDF dengan nama daftar_produk.pdf berisi seluruh data produk dari database.


25 Sep 2025 | 11:54
1 Suka

Laporkan

Silakan jelaskan laporan secara singkat dan jelas.