In the age of open-source software development platforms like GitHub and Bitbucket, Developers adore using already built-in open-source solutions more than producing their own. For a custom Laravel based CRM project, you always required the dynamic PDF generation feature for printing the information on pdf. After searching for some time, I tripped upon a very handy DOMPDF Wrapper for Laravel at GitHub.
DOMPDF is a wrapper for Laravel, and It offers robust performance for HTML to PDF conversion in Laravel applications spontaneously. You can generate a pdf file from a view utilizing DomPDF. To export into PDF, We require the view file. We will write the HTML code in the view file and load data dynamically from the database as per the demand. Then, we will export this view as a PDF file.
Run this command to install DomPDF in Laravel. It will download the package and the dompdf + fontlib libraries.
composer require barryvdh/laravel-dompdf
After updating the composer, append the ServiceProvider to the providers array in config/app.php
You can freely use the facade for more compressed code. Append this to your facades:
'PDF' => Barryvdh\DomPDF\Facade::class,
You can generate a new DOMPDF instance and load an HTML string, file, or view name. You can store it in a file or download it.
$pdf = App::make('dompdf.wrapper'); $pdf->loadHTML('<h1>Test</h1>'); return $pdf->stream();
Or utilize the facade:
$pdf = PDF::loadView('pdf.invoice', $data); return $pdf->download('invoice.pdf');
You can chain the methods:
You can modify the orientation and paper size, moreover, you can hide or show the errors.
The defaults configuration settings are placed in config/dompdf.php. Copy this file to your own config directory to alter the values. Execute this command to publish the assets from the vendor.
php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"
Later, we can discover a PDF class and use its API for further magnifying the generated PDF file.
For more detailed documentation, you can click the link below.
Published at : 01-07-2021
I am a highly results-driven professional with 12+ years of collective experience in the grounds of web application development especially in laravel, native android application development in java, and desktop application development in the dot net framework. Now managing a team of expert developers at Codebrisk.