# Membuat Laporan dengan PDF di Laravel

Last edited time: June 7, 2023 7:33 AM Owner: Indry Sefviana Tags: Laravel

<figure><img src="https://3397141630-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVUQUm1GVUT3pDnRHmDRU%2Fuploads%2FIR4BcvFdIpJc1LOo6BvS%2FUntitled.png?alt=media&#x26;token=8522bc77-c0e2-4cfe-913e-85572c5338bd" alt=""><figcaption></figcaption></figure>

Langkah-langkah membuat Laporan PDF di Laravel:

## 1. Installation

```
composer require barryvdh/laravel-dompdf
```

Tambahkan provides pada `config\app.php`

```
Barryvdh\DomPDF\ServiceProvider::class,
```

Tambahkan alias seperti ini pada `config\app.php`

```
'PDF' => Barryvdh\DomPDF\Facade::class,
```

## 2. Using

#### Routes

```
Route::get('/pengabdian/generate-pdf/{id}', [PengabdianController::class, 'generatePDF'])->name('pengabdian.pdf');
```

#### Controller versi simple

```
public function generatePDF()
    {
	$pdf = PDF::loadView('pdf.invoice', $data);
    	return $pdf->download('invoice.pdf');
    }
```

#### Controller versi complex

```
public function generatePDF($id)
    {
        $data = Pengabdian::findOrFail($id);

        $user = Auth::user()->username;
        $dosen = DB::table('dosens')
                ->where('user_id', '=', $user)
                ->get();
        if (Auth::user()->role_id !== 3) {
            $data = Pengabdian::orderBy('created_at', 'desc')
                ->where('id', $id)
                ->get();
        } else {
            $data = Pengabdian::where('dosen_id', $dosen[0]->id)
                ->where('id', $id)
                ->orderBy('created_at', 'desc')
                ->get();
        }

        $pdf = PDF::loadView('pengabdian.pdf', compact('data'));
        return $pdf->download('pengabdian.pdf');
    }
```

Jangan lupa tambahkan ini diatas

```
use PDF;
```

#### Button Edit

```
<a href="{{ route('pengabdian.pdf', $item->id) }}" class="btn btn-info btn-circle btn-sm"><i class="fas fa-download"></i></a>
```

#### **View**

```
<html>

<head>
    <style>
        @page {
            margin: 0cm 0cm;
        }

        body {
            margin-top: 2cm;
            margin-left: 2cm;
            margin-right: 2cm;
            margin-bottom: 2cm;
        }

        main {
            margin-top: -1cm;
        }

        header {
            position: fixed;
            top: 0cm;
            left: 0cm;
            right: 0cm;
            height: 1cm;

            /** Extra personal styles **/
            background-color: #005F99;
            color: white;
            text-align: left;
            line-height: 1.5cm;
        }

        header img {
            width: 50px;
            justify-content: left;
        }

        #title {
            text-align: center;
        }

        footer {
            position: fixed;
            bottom: 0cm;
            left: 0cm;
            right: 0cm;
            height: 1cm;

            /** Extra personal styles **/
            background-color: white;
            color: black;
            text-align: left;
            font-size: 10px;
        }

    </style>
</head>

<body>
    <!-- Define header and footer blocks before your content -->
    <header>
        <img src="assets/images/logo.png">
    </header>

    <footer>
        <hr>
        Portofolio Catur Dharma - Binus {{ date('Y') }}
    </footer>

    <!-- Wrap the content of your PDF inside a main tag -->
    <main>
        <div id="title">
            <h2>Laporan Dosen</h2>
            <hr style="size: 10px">
        </div>
        <p>Sehubungan dengan telah selesainya Penelitian ... Tahun Ajaran
            ... yang saya laksanakan dan sesuai dengan peraturan, bersama ini kami
            sampaikan dengan hormat laporan tersebut dibawah ini :</p>
        <table align="center" border="1">
            <thead>
                <tr>
                    <th>Tanggal</th>
                    <th>Nama Dosen</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>11 Januari 2021</td>
                    <td>Dosen 01</td>
                </tr>
            </tbody>
        </table>
        <p>Demikian laporan penelitian yang saya sampaikan atas perhatiannya saya ucapkan terima kasih.</p>
        <br>
        <p>Hormat saya,</p>
        <br><br><br>
        <p>( ... )</p>
    </main>
</body>

</html>

```

Sekian Gomawo^-^
