vsmoraes/laravel-pdf

DOMPDF module for Laravel 5

2.0 2017-07-06 17:51 UTC

README

DOMPDF module for Laravel 5. Export your views as PDFs - with css support.

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Instalation

Add:

"vsmoraes/laravel-pdf": "^2.0"

To your composer.json

or Run:

composer require vsmoraes/laravel-pdf

Then add:

Vsmoraes\Pdf\PdfServiceProvider::class

To the providers array on your config/app.php

And

'PDF' => 'Vsmoraes\Pdf\PdfFacade',

To the aliases array on yout config/app.php in order to enable the PDF facade

Usage

Route::get('/pdf/view', function() {
    $html = view('pdfs.example')->render();

    return PDF::load($html)->show();
});

Force download

Route::get('/pdf/download', function() {
    $html = view('pdfs.example')->render();

    return PDF::load($html)->download();
});

Return PDF as string

Route::get('/pdf/output', function() {
    $html = view('pdfs.example')->render();

    return PDF::load($html)
        ->output();
});

Set paper size and orientation

    Route::get('/pdf/output', function() {
        $html = view('pdfs.example')->render();
    
        return PDF::load($html, 'A4', 'landscape')
            ->output();
    });

Output to a file

Route::get('/pdf/output', function() {
    $html = view('pdfs.example')->render();

    PDF::load($html)
        ->filename('/tmp/example1.pdf')
        ->output();

    return 'PDF saved';
});

Inject on your controller

<?php namespace App\Http\Controllers;

use Vsmoraes\Pdf\Pdf;

class HomeController extends BaseControler
{
    private $pdf;

    public function __construct(Pdf $pdf)
    {
        $this->pdf = $pdf;
    }

    public function helloWorld()
    {
        $html = view('pdfs.example1')->render();

        return $this->pdf
            ->load($html)
            ->show();
    }
}

Configuration

Dompdf allows you to configure a bunch of things on your PDF file. In previous versions we used to accomplish this through environment vars, now you can change this configuration keys on the fly:

Route::get('/pdf/view', function() {
    $html = view('pdfs.example')->render();
    
    $defaultOptions = PDF::getOptions();
    $defaultOptions->setDefaultFont('Courier');
    
    return PDF::setOptions($defaultOptions)->load($html)->download();
});

For the complete configuration reference: Dompdf options