Skip to main content

barryvdh/laravel-dompdf

install package menggunakan command ini:

composer require barryvdh/laravel-dompdf

dalam controller, jangan lupa include DomPDF. kemudian load data macam kita biasa buat untuk view. Perbezaannya kat sini, kita panggil PDF::loadView('nama_blade', [data]) instead of view().

use Barryvdh\DomPDF\Facade\Pdf;

class ReportController extends Controller
{
    public function download()
    {
        $data = [
            'title' => 'Laporan Bulanan',
            'date' => date('d/m/Y'),
            'content' => 'Ini contoh report PDF.'
        ];

        $pdf = Pdf::loadView('pdf.report', $data);

        return $pdf->download('laporan.pdf'); // download
        // return $pdf->stream('laporan.pdf'); // terus buka dalam browser
    }
}

untuk gambar dalam output tu, guna public_path('img/logo.png');

tapi kalau kita nak guna asset, kena enable dulu option isRemoteEnabled untuk remote. kat bawah ni contoh code untuk enable gambar guna asset();

 // apply option masa create instance
    $pdf = \PDF::setOptions([
        'isRemoteEnabled' => true,
        'defaultFont' => 'sans-serif'
    ])->loadHTML($pdfView)
      ->setPaper('a4', 'portrait');