Press "Enter" to skip to content

Tutorial Laravel – Cetak PDF Di Laravel Dengan DOMPDF

Export dan juga cetak data sangat penting pada sebuah aplikasi agar user dapat mencetak laporan yang dihasilkan dari database.

Nah, pada tutorial kali ini saya akan membahas tentang bagaimana cara untuk mencetak data berupa PDF di Laravel dengan menggunakan plugin DOMPDF. Pada tutorial kali ini kita akan menggunakan Laravel 4.2.

DOMPDF adalah sebuah plugin yang berfungsi untuk mengkonversi data HTML menjadi sebuah output PDF. Untuk dapat menggunakan mencetak PDF di Laravel dengan menggunakan DOMPDF, kita memerlukan package dari barryvdh yaitu laravel-dompdf.

Package ini tersedia untuk Laravel versi 4.x atau juga Laravel versi 5. Kamu dapat menginstall package tersebut untuk versi 4.x di halaman Githubnya yaitu laravel-dompdf. Nah mulai aja yuk untuk instalasinya.

Pertama, kita membutuhkan composer untuk menginstall package tersebut. Buka file composer.json lalu masukkan baris berikut pada bagian require :

“barryvdh/laravel-dompdf”: “0.4.*”

Lalu buka terminal / command prompt lalu arahkan pada direktori tempat aplikasi kamu berada, update composer dengan perintah berikut :

composer update

Setelah instalasi selesai, kita ubah file app.php di direktori app/config. Tambahkan baris berikut pada bagian Provider :

‘Barryvdh\DomPDF\ServiceProvider’,

Jika sudah selesai, kita tinggal melakukan publish file konfigurasinya, ketikkan perintah berikut pada terminal / command prompt :

php artisan config:publish barryvdh/laravel-dompdf

Perlu diingat, jika kamu melakukan perubahan pada file konfigurasi tersebut kamu perlu mengetik perintah diatas lagi untuk melihat perubahan pada output PDF yang akan kita cetak. Sekarang kita sudah dapat menggunakan mencetak PDF di Laravel dengan DOMPDF.

Kita akan menggunakan source code dari artikel lama saya tentang tutorial CRUD dasar Laravel, kamu bisa clone scriptnya di halaman Github saya. Sekarang kita akan menambahkan method pada controller ProvinsiController.php. Tambahkan code berikut ini :

public function pdf() {
    // ambil semua data
    $provinsi = Provinsi::all();
    // mengarahkan view pada file pdf.blade.php di views/provinsi/
    $view = View::make('provinsi.pdf', array('provinsi' => $provinsi, 'i' => 0))->render(); 
    // panggil fungsi dompdf
    $pdf = App::make('dompdf');
    // set ukuran kertas dan orientasi
    $pdf->loadHTML($view)->setPaper('a4')->setOrientation('potrait');
    // cetak
    return $pdf->stream();
}

Output dari PDF di Laravel dengan DOMPDF adalah sebagai berikut :

output-pdf-laravel

Sederhana bukan ? kamu bisa mendownload full source code pada tutorial ini pada link dibawah ini. Silahkan dicoba dan semoga bermanfaat 😀

download

9 Comments

  1. hilmiazmif hilmiazmif Agustus 5, 2016

    cara mengatur halaman dan ukuran kertas dimana ya?

    • anonim anonim Agustus 6, 2016

      kalau set font gimana?

      • El Cicko El Cicko Post author | Agustus 6, 2016

        set font di css-nya aja

    • El Cicko El Cicko Post author | Agustus 6, 2016

      untuk set ukuran kertas bisa pake milimeter
      $pdf->loadHTML($view)->setPaper([0, 0, 453.543, 425.197],'potrait');
      kalau untuk ukuran kertas standar bisa pake
      $pdf->loadHTML($view)->setPaper('A4')->setOrientation('potrait');

  2. Defrian Defrian Agustus 7, 2016

    itu laravel versi 4 ya mas?
    kalau versi 5 gimana?

    • El Cicko El Cicko Post author | Agustus 8, 2016

      Code Syntaxnya tinggal disesuaikan aja dengan Laravel 5, untuk intalasi dan konfigurasinya ga jauh beda koq

  3. Eries Herman Eries Herman Desember 4, 2016

    jika menggunakan css external bagaimana ya saya selalu error jika menggunakan css & font external (contohnya pake bootstrap)…

  4. Mikhail Yazid Bustomi Mikhail Yazid Bustomi Januari 12, 2017

    gan kok ga work yah di laptop ane, padahal udah ngikutin sesuai instruktur yg diatas

  5. geek geek Februari 23, 2017

    gan, kalau menampilkan data berdasarkan tahun yg terseleksi bgmn

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *