Membuat Laporan Pdf Laravel dengan Dompdf

Membuat Laporan Pdf Laravel dengan Dompdf

Membuat Laporan Pdf Laravel – Salah satu cara untuk membuat cetak laporan PDF pada laravel adalah kita bisa menggunakan library DOMPDF.

DOMPDF adalah library PHP yang bisa digunakan untuk membuat laporan PDF dengan PHP. DOMPDF bekerja dengan cara mengubah halaman menjadi file PDF.

Pada Framework Laravel terdapat package yang dapat kita gunakan untuk membuat laparan pdf yang bernama Laravel-Dompdf.

Membuat Laporan PDF Dengan DOMPDF Laravel

Disini kita masih menggunakan project “ANISA” yang sudah kita install pada tutorial CRUD Laravel sebelumnya.

1. Membuat Table

Tabel yang digunakan adalah tabel santri

Input Data ke Database dengan Laravel
Tutorial CRUD Laravel

2. Membuat Model

Model untuk tabel santri dengan nama SantriModel.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Santri extends Model
{
    use HasFactory;

    protected $table = 'santri';
    protected $primaryKey = 'id_santri';
    protected $fillable = ['nm_santri', 'tmp_lahir', 'tgl_lahir', 'alamat', 'no_hp'];
}

3. Installasi laravel-dompdf Package

Kita akan mendownload package DOMPDF Laravel menggunakan composer. Silahkan buka terminal atau command line Anda, masuk ke direktori project laravel dan ketik perintah composer berikut ini:

composer require barryvdh/laravel-dompdf

Tunggu sampai prosesnya selesai, kemudian akan kita integrasikan dengan project laravel kita. Buka file app.php yang terletak dalam direktori config/app.php.

Tambahkan kode berikut pada bagian providers dan aliases agar Laravel mengenali package DOMPF seperti di bawah ini:

'providers' => [
	....
	Barryvdh\DomPDF\ServiceProvider::class,
],

  
'aliases' => [
	....
	'PDF' => Barryvdh\DomPDF\Facade::class,
]

4. Membuat Route

Kita butuhkan route seperti berikut:

Route::get('santri/cetak', [SantriController::class, 'cetaksantri'])->name('cetaksantri')->middleware('auth');

5. Membuat Controller

Selanjutnya pada controller SantriController.php tambahkan kode berikut ini:

public function cetaksantri()
{
  $santri = SantriModel::select('*')
            ->get();

  $pdf = PDF::loadView('cetaksantri', ['santri' => $santri]);
  return $pdf->stream('Laporan-Data-Santri.pdf');
}

Jangan lupa pada SantriController.php di bagian paling atas tambahkan kode:

use PDF;

Sehingga pada SantriController kita menjadi seperti ini:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\SantriModel;
use PDF;

class SantriController extends Controller
{
   public function cetaksantri()
   {
      $santri = SantriModel::select('*')
                ->get();

      $pdf = PDF::loadView('cetaksantri', ['santri' => $santri]);
      return $pdf->stream('Laporan-Data-Santri.pdf');
   }
}

6. Tombol Cetak

Menambahkan tombol cetak pdf pada halaman menampilkan daftar data santri.

<a class="btn btn-default" href="{{route('cetaksantri')}}" target="_blank"><i class="fa fa-print"></i> Cetak PDF</a>
Cetak PDF Laravel
Cetak PDF Laravel

7. Membuat View

Membuat halaman HTML dengan Blade template yang akan menjadi laporan pdf kita. Nama filenya cetaksantri.blade.php

<h3><center>Laporan Data Santri</center></h3>
<table border="1" cellspacing="0" cellpadding="5">
  <tr>
    <th>#ID</th>
    <th>Nama Satri</th>
    <th>Tempat Lahir</th>
    <th>Tanggal Lahir</th>
    <th>Alamat</th>
    <th>No. Hp</th>
  </tr>
  @foreach($santri as $s) 
  <tr>
    <td>{{$s->id_santri}}</td>
    <td>{{$s->nm_santri}}</td>
    <td>{{$s->tmp_lahir}}</td>
    <td>{{$s->tgl_lahir}}</td>
    <td>{{$s->alamat}}</td>
    <td>{{$s->no_hp}}</td>
  </tr>
  @endforeach
</table>

8. Hasil Cetak PDF

Install Dompdf Laravel
Install Dompdf Laravel

Sekian tutorial Membuat Laporan pdf dengan Dompdf Laravel. Artikel ini adalah sebagai dokumentasi pribadi saya sehingga bahasa dan penulisannya dibuat singkat.

Semoga bisa bermanfaat untuk Anda.

Web Programmer. Flutter Developer. Content Creator. Founder Ayongoding.com. Penyuka minuman sachet. Menulis pakai tangan kanan. Masih main mobilan remot. Dan pernah kuliah Sistem Informasi sampai lulus.

2 Komentar

Leave a Reply

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