📖
Artikel ini butuh sekitar 3 menit untuk dibaca. Sediakan waktu dan kopi dulu! ☕

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.

A
admin leravio
Leravio Team

Member tim Leravio yang berpengalaman di bidang teknologi digital dan pengembangan produk untuk bisnis Indonesia.

💬 4 Komentar

  1. Edhi Prabawa
    Edhi Prabawa 📅 10 Nov 2023 ⏱ 16:21

    ErrorException

    Undefined variable $title

    1. admin
      admin Author 📅 12 Nov 2023 ⏱ 18:01

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

  2. Elliot Alderson
    Elliot Alderson 📅 29 Nov 2023 ⏱ 15:57

    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. admin
      admin Author 📅 29 Nov 2023 ⏱ 17:34

      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"',
      ]
      );
      }

✍️ Tinggalkan Komentar

Email kamu tidak akan dipublikasikan.