easy-laravel-pdf: A Laravel package to generate PDF/images from views or HTML using Puppeteer in Docker for seamless integration.
hamdallah90/easy-laravel-pdf is a Laravel package for easy-laravel-pdf: a laravel package to generate pdf/images from views or html using puppeteer in docker for seamless integration..
It currently has 3 GitHub stars and 2.172 downloads on Packagist (latest version 2.1).
Install it with composer require hamdallah90/easy-laravel-pdf.
Discover more Laravel packages by hamdallah90
or browse all Laravel packages to compare alternatives.
Last updated
Easy Laravel PDF is a Laravel package that facilitates PDF generation within Laravel applications. This package utilizes a Node.js service, node-html-to-pdf, which can be run locally or via Docker to convert HTML to PDF.
Add the Package via Composer:
composer require hamdallah90/easy-laravel-pdf
Publish Configuration: Laravel's package discovery will automatically register the service provider. To publish the package configuration, run:
php artisan vendor:publish --tag=pdf-config
Edit the published configuration file in config/easy-laravel-pdf.php to adjust settings like default PDF options.
EasyLaravelPdf offers a variety of methods to generate PDF files. Here's how to use them in your Laravel applications:
use Jouda\EasyLaravelPdf\Facades\EasyLaravelPdf;
$pdf = EasyLaravelPdf::loadView('view.name', ['dataKey' => 'dataValue']);
return $pdf->stream('example.pdf');
To load raw HTML content into the PDF generator:
use Jouda\EasyLaravelPdf\Facades\EasyLaravelPdf;
EasyLaravelPdf::loadHtml('<h1>Test PDF</h1>')->save('/path/to/file.pdf');
To Print url insted of send html or view:
use Jouda\EasyLaravelPdf\Facades\EasyLaravelPdf;
EasyLaravelPdf::setUrl('http://google.com')->save('/path/to/file.pdf');
To get the PDF as an UploadedFile, which can be useful for testing or further manipulation:
use Jouda\EasyLaravelPdf\Facades\EasyLaravelPdf;
$file = EasyLaravelPdf::loadHtml('<h1>Test PDF</h1>')->getFile();
$file->store('save-to-s3-or-local-path')
To stream the PDF directly to the browser, which is useful for inline viewing:
use Jouda\EasyLaravelPdf\Facades\EasyLaravelPdf;
return EasyLaravelPdf::loadHtml('<h1>Test PDF</h1>')->stream('optional-filename.pdf'); // Streams the PDF; if a filename is provided, it will be used
You can configure puppeteer options and launch arguments for more control over the PDF generation:
use Jouda\EasyLaravelPdf\Facades\EasyLaravelPdf;
$pdf = EasyLaravelPdf::setOptions(['format' => 'A4']);
$pdf->setPuppeteerLunchArgs(['--no-sandbox', '--disable-setuid-sandbox']);
$pdf->loadHtml('<h1>Customized PDF</h1>');
$pdf->save('path/to/your/customized.pdf');
This service is essential for PDF generation and can be run locally or in a Docker container.
node-html-to-pdf directory.npm install
npm start
Using the Dockerfile: Build the Docker image using the provided Dockerfile:
cd node-html-to-pdf
docker build -t your-username/html-to-pdf .
docker run -p 3000:3000 your-username/html-to-pdf
Using the Pre-built Image: Alternatively, you can use a pre-built Docker image available on Docker Hub:
docker pull hamdallah/html-to-pdf
docker run -p 3000:3000 hamdallah/html-to-pdf
For issues, feature requests, or contributions, please use the GitHub issues section for this repository.