hamdallah90/easy-laravel-pdf
| Install | |
|---|---|
composer require hamdallah90/easy-laravel-pdf |
|
| Latest Version: | 2.1 |
| PHP: | ^8.2 |
| Laravel: | 10 · 11 |
| License: | MIT |
| Last Updated: | Jun 22, 2026 |
| Links: | GitHub · Packagist |
Easy Laravel PDF
Overview
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.
Installation
Prerequisites
- PHP 7.3 or higher
- Laravel 6.0 or higher
- Composer
- Node.js and npm (optional, if running the service locally without Docker)
- Docker (optional, for using Docker container)
Installing the Package
-
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
Configuration
Edit the published configuration file in config/easy-laravel-pdf.php to adjust settings like default PDF options.
Using the Package
EasyLaravelPdf offers a variety of methods to generate PDF files. Here's how to use them in your Laravel applications:
Load and Render a View
use Jouda\EasyLaravelPdf\Facades\EasyLaravelPdf;
$pdf = EasyLaravelPdf::loadView('view.name', ['dataKey' => 'dataValue']);
return $pdf->stream('example.pdf');
Load HTML Content Directly
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');
URL To 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');
Get the PDF as an UploadedFile
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')
Stream the PDF Directly to the Browser
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
Configuration and Customization
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');
Node HTML to PDF Service
This service is essential for PDF generation and can be run locally or in a Docker container.
Running Locally
- Navigate to the
node-html-to-pdfdirectory. - Install dependencies:
npm install - Start the server:
npm start
Running with Docker
-
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
Support
For issues, feature requests, or contributions, please use the GitHub issues section for this repository.
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 2.1 | ^8.2 | ^10.0|| | MIT | |
| 2.0 | ^8.2 | ^10.0|| | MIT | |
| 1.8 | ^8.2 | ^10.0|| | MIT | |
| 1.7 | ^8.2 | ^10.0|| | MIT | |
| 1.6 | ^8.2 | ^10.0|| | MIT | |
| 1.5 | ^8.2 | ^10.0|| | MIT | |
| 1.4 | ^8.2 | ^10.0|| | MIT | |
| 1.3 | ^8.2 | ^10.0|| | MIT | |
| 1.2 | ^8.2 | ^10.0|| | MIT | |
| 1.1 | ^8.2 | ^10.0|| | MIT | |
| 1.0 | ^8.2 | ^10.0|| | MIT | |
| 0.3 | ^8.2 | ^10.0|| | MIT | |
| 0.2 | ^8.2 | ^10.0|| | MIT | |
| 0.1 | ^8.2 | ^10.0|| | MIT |