Laravel 11: Membuat Laporan dalam Bentuk PDF dengan DomPDF

Baringin
By -
0

 


DomPDF

    DomPDF adalah sebuah library atau perpustakaan PHP yang berfungsi untuk mengkonversi halaman web yang dibuat dengan HTML dan CSS menjadi format PDF. DomPDF memungkinkan Anda mengubah tampilan website menjadi dokumen PDF yang dapat dicetak atau diunduh.


Kegunaan DomPDF

  • Membuat Laporan: DomPDF sering digunakan untuk membuat laporan dalam format PDF, seperti laporan keuangan, laporan penjualan, atau laporan lainnya yang membutuhkan tampilan yang lebih formal dan mudah dicetak.
  • Cetak Faktur: DomPDF juga bisa digunakan untuk membuat faktur dalam bentuk PDF, sehingga lebih mudah untuk dikirimkan kepada pelanggan.
  • Cetak Tiket: Tiket acara atau tiket pesawat seringkali dibuat dalam format PDF untuk alasan keamanan dan kemudahan penggunaan.
  • Dokumentasi: Anda bisa menggunakan DomPDF untuk membuat dokumentasi dalam bentuk PDF yang bisa dibagikan kepada pengguna.

Kelebihan DomPDF

  • Mudah Digunakan: DomPDF memiliki API yang mudah dipahami, sehingga Anda bisa dengan cepat membuat dokumen PDF dari HTML.
  • Mendukung CSS: DomPDF mendukung sebagian besar CSS, sehingga Anda bisa mengatur tampilan dokumen PDF sesuai dengan keinginan Anda.
  • Kustomisasi: DomPDF memungkinkan Anda melakukan kustomisasi pada dokumen PDF, seperti menambahkan watermark, header, footer, dan lain-lain.
  • Open Source: DomPDF adalah proyek open source, sehingga Anda bisa menggunakannya secara gratis dan berkontribusi pada pengembangannya

    Lalu bagaimana menggunakan DomPDF di Framework Laravel? Mari kita praktekan. Berikut langkah-langkahnya:
1. Install Laravel menggunakan CMD atau Terminal. Ketikkan perintah berikut:

composer create-project laravel/laravel:  domPDF
        Tunggu proses Pemasangan selesai. Disini kita memberi nama projek kita dengan nama "domPDF".  Setelah proses selesai masuk ke folder projek tersebut dengan mengetikkan perintah berikut pada terminal:
cd domPDF
    Pastikan anda sudah berada di dalam folder projek.
2. Pasang domPDF. Anda dapat mengetikkan perintah berikut untuk mendownload library domPDF.

composer require dompdf/dompdf
    Tunggu proses instalasi sampai selesai.

3. Buat controller baru. Disini kita coba membuat sebuah controller dengan nama "PdfController". Ketikkan perintah berikut:
php artisan make:controller PdfController
    Buka file controller tersebut dan ketikkan perintah berikut:

<?php

namespace App\Http\Controllers;

use Dompdf\Dompdf; //Pastikan sudah memasukan library Dompdf
use Illuminate\Http\Request;

class PdfController extends Controller
{
    public function generatePDF()
    {
        //
        $data_user = [
            ['nama' => 'Barintek', 'jurusan' => 'Teknik Informatika', 'nilai' => '90']
        ];
        // Fetch data or prepare HTML content for PDF
        $data = [
            'title' => 'Barintek | Berbagi Informasi',
            'content' => $data_user
        ];

        // Load HTML content
        $html = view('laporan', $data)->render();

        $dompdf = new Dompdf();
        $dompdf->loadHtml($html);
        $dompdf->setPaper('A4', 'portrait'); //jenis kertas dan orientasi
        $dompdf->render();
        return $dompdf->stream('nama_dokument.pdf'); //Anda dapat mengganti nama dokument dengan nama yang kamu inginkan
    }
}

    Variabel $data_user merupan data yang akan kita kirim ke view. Anda dapat menggunakan database jika terkoneksi dengan database. 

4. Atur Router. Buka web.php dan buat jalur baru:
Route::get('/generate-pdf', [PdfController::class, 'generatePDF']);
5. Desain halaman View. Anda dapat membuat file baru di view dengan nama "laporan". Berikut Scriptnya:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ $title }}</title>
</head>

<style>
    table {
        width: 100%;
        border-collapse: collapse;
    }

    table,
    th,
    td {
        border: 1px solid black;
    }
</style>

<body>
    <h1>{{ $title }}</h1>
    <table>
        <tr>
            <th>No</th>
            <th>Nama</th>
            <th>Jurusan</th>
            <th>Nilai</th>
        </tr>
        @foreach ($content as $item => $value)
        <tr>
            <td>{{ $item + 1 }}</td>
            <td>{{ $value['nama'] }}</td>
            <td>{{ $value['jurusan'] }}</td>
            <td>{{ $value['nilai'] }}</td>
        </tr>
        @endforeach
    </table>
</body>

</html>
6. Sekarang jalankan projek anda. Berikut hasilnya:

    


Gimana, Mudah bukan

Post a Comment

0Comments

Post a Comment (0)