cara membuat pdf menggunakan dompdf di laravel 10

Membuat PDF Menggunakan DomPDF di Laravel 10

Pada artikel ini, kita akan belajar tentang cara membuat pdf menggunakan dompdf di laravel 10. Untuk membuat file pdf kita akan menggunakan package laravel-dompdf.

package ini membuat file pdf dan juga menyediakan fungsi download file. Sangat mudah untuk membuat file pdf di laravel 10. Kita akan melihat contoh cara yang sangat sederhana untuk membuat file pdf dan mendownloadnya ke sistem Anda.

barryvdh/laravel-dompdf dapat membuat instance DomPDF baru dan memuat string HTML, file atau nama tampilan. Anda dapat menyimpannya ke sebuah berkas, atau menampilkannya di peramban atau mengunduhnya. Selain itu, Anda juga dapat membuat pdf dari tampilan HTML di laravel 10.

Jadi, tanpa perlu basa-basi lagi mari kita membuat langsung simak tutorial di bawah ini.

Tahapan Instalasi

Pada langkah pertama, kita akan menginstal Laravel 10 menggunakan perintah berikut. Jadi, jalankan kode di bawah ini ke terminal.

composer create-project --prefer-dist laravel/laravel laravel_10_pdf_example

Sekarang, kita akan menginstal paket barryvdh/laravel-dompdf menggunakan perintah composer seperti berikut.

composer require barryvdh/laravel-dompdf

Membuat Controller

Selanjutnya, kita akan membuat Controler baru dan menambahkan kode berikut untuk menghasilkan file pdf. Buka file app/Http/Controllers/UserController.php dan tambahkan code di bawah pada file barusan.

<?php

namespace App\Http\Controllers;

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

class UserController extends Controller
{    
    public function index(Request $request)
	{
	    $users = User::get();

	    $data = [
	            'title' => 'How To Create PDF File In Laravel 10 - Leravio',
	            'date' => date('d/m/Y'),
	            'users' => $users
	    ];

	    if($request->has('download'))
	    {
	        $pdf = Pdf::loadView('index', $data)->setOptions(['defaultFont' => 'sans-serif']);
	        return $pdf->download('users_list.pdf');
	    }

	    return view('index', $data);
	}
}

Menambahkan Route

Sekarang, kita akan menambahkan route pada file routes/web.php. Jadi, tambahkan kode di bawah ini ke file tersebut.

<?php
  
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
  
Route::resource('users', UserController::class);

Membuat View

Pada langkah ini, kita akan membuat file di resources/views/index.blade.php untuk diunduh dan menghasilkan file pdf.

<!DOCTYPE html>
<html>
<head>
  <title>Cara Membuat PDF Menggunakan DomPDF di Laravel 10 - Leravio</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
  <div class="container">
    <div class="row">
      <div class="col-lg-12" style="margin-top: 15px ">
        <div class="pull-left">
          <h2>{{$title}}</h2>
          <h4>{{$date}}</h4>
        </div>
        <div class="pull-right">
          <a class="btn btn-primary" href="{{route('users.index',['download'=>'pdf'])}}">Download PDF</a>
        </div>
      </div>
    </div><br>
    <table class="table table-bordered">
      <tr>
        <th>Name</th>
        <th>Email</th>
      </tr>
      @foreach ($users as $user)
      <tr>
        <td>{{ $user->name }}</td>
        <td>{{ $user->email }}</td>
      </tr>
      @endforeach
    </table>
  </div>
</body>
</html>

Jalankan Laravel 10

Terakhir, kita akan menjalankan laravel 10 membuat PDF menggunakan aplikasi DomPDF dengan menggunakan perintah artisan.

php artisan serve

Setelah itu, buka http://127.0.0.1:8000/users untuk melihat file PDF dan mendownloadnya. Jika ada pertanyaan, Anda bisa langsung tanyakan di kolom komentar di bawah ini.

4 thoughts on “Membuat PDF Menggunakan DomPDF di Laravel 10”

    1. Halo kak, untuk error “Undefined variable $title” terdapat kesalah pada controller index. Coba ganti bagian return seperti berikut “return view(‘index’, $data);”

  1. hallo kalo ingin menampilkan pdf di lara10 gimana ya? pdf nya ukuran nya lebih dari 5 mb dan ratusan halaman, pdf nya ngambil dulu dari file explorer, soalnya aku coba pake embed cuma bisa nampilin file pdf yang kecil

    1. Halo kak, Jika ingin menampilkan pdf dengan file besar, lebih baik menggunakan fungsi response()->stream() untuk melakukan streaming. Contohnya seperti berikut:


      public function showLargePdf()
      {
      $filePath = storage_path('app/file.pdf');

      return response()->stream(
      function () use ($filePath) {
      $fileStream = fopen($filePath, 'rb');

      while (!feof($fileStream)) {
      echo fread($fileStream, 1024);
      }

      fclose($fileStream);
      },
      200,
      [
      'Content-Type' => 'application/pdf',
      'Content-Disposition' => 'inline; filename="file.pdf"',
      ]
      );
      }

Leave a Comment

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

Scroll to Top