it-devgroup / laravel-pdf-merger
Package for Laravel that merges multiple PDFs into one.
Installs: 24
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/it-devgroup/laravel-pdf-merger
Requires
- illuminate/support: >=8.27.0
- setasign/fpdi-fpdf: >=2.3.0
This package is auto-updated.
Last update: 2025-10-23 00:18:21 UTC
README
PDF merger for Laravel inspired by another package, created for personal use. Tested with Laravel 5.6.
Advantages
- Works with PHP 7.4
- Works with Laravel 8
Installation
composer require it-devgroup/laravel-pdf-merger
Configuration
Make the following changes to the main configuration file located at config/app.php
'providers' => [ ... ItDevgroup\LaravelPDFMerger\Providers\PDFMergerServiceProvider::class ], 'aliases' => [ ... 'PDFMerger' => ItDevgroup\LaravelPDFMerger\Facades\PDFMergerFacade::class ]
When merging PDFs versions above 1.4 or PDF strings, a temporary PDF will be created during the process and stored in
storage/tmpdirectory, therefore you may need to create it beforehand. Also, note that this package requires Ghostscript installed on the server in order to functiona properly with PDF versions 1.5+. Install Guide
Usage
You can add PDFs for merging, by specifying a file path of PDF with addPathToPDF method, or adding PDF file as string with addPDFString method. The second argument of both methods is array of selected pages ('all' for all pages) and the third argument is PDFs orientation (portrait or landscape).
$merger->addPathToPDF('/path/to/pdf', 'all', 'P'); $merger->addPDFString(file_get_contents('path/to/pdf'), ['1', '2'], 'L')
You can set a merged PDF name by using setFileName method.
$merger->setFileName('merger.pdf');
In the end, finnish process with merge or duplexMerge method and use one of the output options for the merged PDF. The difference bwetween two methods is, that duplexMerge adds blank page after each merged PDF, if it has odd number of pages.
Available output options are:
- inline()
- download()
- string()
- save('path/to/merged.pdf')
$merger->merge(); $merger->inline();
Example usage
$merger = \PDFMerger::init(); $merger->addPathToPDF(base_path('/vendor/it-devgroup/laravel-pdf-merger/examples/one.pdf'), [2], 'P'); $merger->addPDFString(file_get_contents(base_path('/vendor/grofgraf/laravel-pdf-merger/examples/two.pdf')), 'all', 'L'); $merger->merge(); $merger->save(base_path('/public/pdfs/merged.pdf'));