Press ESC to close

Cara Export Data ke PDF di Laravel 11: Panduan Lengkap untuk Pemula

Introduction

Halo, teman-teman developer! Jika Anda sedang membangun aplikasi web menggunakan Laravel 11 dan ingin menambahkan fitur untuk meng-export data ke format PDF, maka artikel ini tepat untuk Anda. Menghasilkan file PDF dari data aplikasi seringkali diperlukan, baik itu untuk laporan, tagihan, struk pembayaran, atau dokumen lainnya yang perlu didownload atau dicetak oleh pengguna.

Dalam tutorial ini, saya akan menunjukkan cara mudah dan praktis untuk meng-export data ke PDF di Laravel 11. Kita akan menggunakan package DomPDF yang sangat populer untuk menghasilkan file PDF dalam aplikasi Laravel. Tutorial ini akan membahas langkah-langkah secara detail, mulai dari instalasi Laravel, setup DomPDF, hingga implementasi fungsionalitas export PDF yang bisa langsung Anda gunakan. Yuk, simak selengkapnya!

Langkah 1: Install Project Laravel 11

Sebelum kita mulai mengimplementasikan fitur export PDF, pastikan Anda sudah memiliki project Laravel yang aktif. Jika belum, berikut adalah cara menginstal Laravel 11 untuk memulai project baru.

1.1 Install Laravel 11 dengan Composer

Buka terminal atau command prompt, lalu jalankan perintah berikut untuk membuat project Laravel baru:

composer create-project --prefer-dist laravel/laravel laravel-export-pdf

Perintah ini akan mengunduh dan menginstal Laravel versi terbaru di dalam folder laravel-export-pdf. Setelah itu, masuk ke dalam folder project:

cd laravel-export-pdf

1.2 Jalankan Server Development Laravel

Untuk memastikan Laravel terinstal dengan benar, jalankan server lokal dengan perintah:

php artisan serve

Sekarang Anda dapat membuka browser dan mengakses aplikasi Laravel Anda di http://127.0.0.1:8000 untuk memastikan semuanya berjalan lancar.

Langkah 2: Install Package DomPDF di Laravel 11

Untuk meng-export data ke PDF, kita akan menggunakan package DomPDF yang memudahkan kita membuat file PDF di Laravel. Laravel sendiri menyediakan package barryvdh/laravel-dompdf yang merupakan wrapper untuk DomPDF di Laravel.

2.1 Install barryvdh/laravel-dompdf

Buka terminal di folder project Laravel Anda, kemudian jalankan perintah berikut untuk menginstal package DomPDF:

composer require barryvdh/laravel-dompdf

Setelah instalasi selesai, package ini akan otomatis terkonfigurasi pada Laravel 11 Anda, jadi Anda tidak perlu mengubah konfigurasi apa pun.

Langkah 3: Buat Controller untuk Export ke PDF

Sekarang, kita akan membuat controller yang akan menangani permintaan export ke PDF. Di controller ini, kita akan mengambil data yang ingin di-export, kemudian merendernya ke dalam file PDF.

3.1 Membuat Controller Export

Buka terminal dan jalankan perintah berikut untuk membuat controller ExportController:

php artisan make:controller ExportController

Setelah controller berhasil dibuat, buka file ExportController.php yang ada di dalam folder app/Http/Controllers dan tambahkan kode berikut untuk menangani proses export PDF:

3.2 Menulis Fungsi Export PDF

Buka file ExportController.php dan ubah isinya seperti berikut:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Barryvdh\DomPDF\Facade\Pdf;
use App\Models\User;

class ExportController extends Controller
{
    public function exportToPDF()
    {
        // Ambil data yang akan diexport (misalnya data pengguna)
        $users = User::all();

        // Merender tampilan (view) ke dalam PDF
        $pdf = Pdf::loadView('pdf.users', compact('users'));

        // Mengunduh file PDF
        return $pdf->download('users.pdf');
    }
}

Penjelasan kode di atas:

  • Pada method exportToPDF(), kita mengambil semua data pengguna dari database menggunakan User::all().
  • Kita menggunakan facade Pdf::loadView() untuk merender file PDF menggunakan tampilan (view) yang sudah kita buat. Tampilan ini akan berisi struktur HTML yang akan dikonversi menjadi PDF.
  • Terakhir, kita mengunduh file PDF yang dihasilkan dengan download('users.pdf').

Langkah 4: Menambahkan Route untuk Export PDF

Sekarang kita perlu menambahkan route yang akan mengarahkan pengguna ke fungsi exportToPDF yang telah kita buat di controller. Buka file routes/web.php dan tambahkan kode berikut:

use App\Http\Controllers\ExportController;

Route::get('export-pdf', [ExportController::class, 'exportToPDF']);

Dengan route ini, pengguna bisa mengakses URL http://localhost:8000/export-pdf untuk mengekspor data pengguna ke PDF.

Langkah 5: Membuat View untuk PDF

Selanjutnya, kita perlu membuat view yang akan digunakan untuk merender file PDF. Kita akan menggunakan view untuk mendefinisikan bagaimana tampilan PDF tersebut nantinya. File ini akan berisi markup HTML yang kemudian akan diubah menjadi PDF oleh DomPDF.

Buat file baru di folder resources/views/pdf/ dengan nama users.blade.php. Isi file tersebut dengan kode berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Daftar Pengguna</title>
</head>
<body>
    <h1>Daftar Pengguna</h1>

    <table border="1" cellspacing="0" cellpadding="5">
        <thead>
            <tr>
                <th>ID</th>
                <th>Nama</th>
                <th>Email</th>
                <th>Alamat</th>
            </tr>
        </thead>
        <tbody>
            @foreach ($users as $user)
                <tr>
                    <td>{{ $user->id }}</td>
                    <td>{{ $user->name }}</td>
                    <td>{{ $user->email }}</td>
                    <td>{{ $user->address }}</td>
                </tr>
            @endforeach
        </tbody>
    </table>
</body>
</html>

Penjelasan kode di atas:

  • Ini adalah file HTML sederhana yang mendefinisikan struktur tabel untuk menampilkan data pengguna.
  • Setiap data pengguna seperti ID, nama, email, dan alamat akan ditampilkan dalam tabel.
  • Ketika kita merender view ini menjadi PDF, tabel ini akan dikonversi menjadi format PDF dengan gaya HTML yang sederhana.

Langkah 6: Uji Coba Fitur Export PDF

Sekarang saatnya untuk menguji fitur export PDF yang sudah kita buat.

  1. Pastikan Anda sudah memiliki beberapa data pengguna di database Anda. Anda bisa menambahkannya menggunakan seeder atau tinker.
  2. Akses URL http://localhost:8000/export-pdf di browser. File PDF yang berisi data pengguna akan terunduh secara otomatis dengan nama users.pdf.

Langkah 7: Menyesuaikan Tampilan PDF (Opsional)

Jika Anda ingin menyesuaikan lebih lanjut tampilan PDF, Anda bisa menambahkan CSS di dalam view untuk memberikan gaya yang lebih baik pada dokumen PDF. Misalnya, untuk membuat tabel lebih rapi, Anda bisa menambahkan beberapa styling seperti berikut:

<style>
    table {
        width: 100%;
        border-collapse: collapse;
    }
    th, td {
        padding: 8px;
        text-align: left;
        border: 1px solid #ddd;
    }
    th {
        background-color: #f2f2f2;
    }
</style>

Dengan menambahkan CSS ini, tabel di PDF akan terlihat lebih rapi dan mudah dibaca.

Kesimpulan

Fitur export ke PDF di Laravel 11 sangat mudah diimplementasikan dengan menggunakan DomPDF dan package barryvdh/laravel-dompdf. Anda hanya perlu mengikuti beberapa langkah sederhana, mulai dari instalasi Laravel, menambahkan package DomPDF, hingga membuat controller dan view untuk mengekspor data ke file PDF. Dengan fitur ini, aplikasi Laravel Anda akan semakin lengkap dan memudahkan pengguna untuk mendownload atau mencetak dokumen dalam format PDF.

Dengan mengikuti tutorial ini, Anda dapat dengan mudah menambahkan kemampuan export PDF ke aplikasi Laravel Anda. Semoga artikel ini bermanfaat, dan selamat mencoba!

Leave a Reply

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