cideale / libmergepdf
Library for merging multiple PDFs
1.0.10
2025-07-02 16:00 UTC
Requires
- php: ^7.4||^8.2
- setasign/fpdi: ^2
- tecnickcom/tcpdf: ^6.2.22
Requires (Dev)
- phpunit/phpunit: ^7|^8
- smalot/pdfparser: ~0.13
Conflicts
README
PHP library for merging multiple PDFs.
Installation
composer require Cideale/Libmergepdf
Usage
Append the first ten pages of bar.pdf to foo.pdf:
use Cideale\Libmergepdf\Merger; use Cideale\Libmergepdf\Pages; $merger = new Merger; $merger->addFile('foo.pdf'); $merger->addFile('bar.pdf', new Pages('1-10')); $createdPdf = $merger->merge();
Bulk add files from an iterator:
use Cideale\Libmergepdf\Merger; $merger = new Merger; $merger->addIterator(['A.pdf', 'B.pdf']); $createdPdf = $merger->merge();
Merging pdfs of version 1.5 and later
The default FPDI
driver is not able handle compressed pdfs of version 1.5 or later.
Circumvent this limitation by using the slightly more experimental TCPDI
driver.
use Cideale\Libmergepdf\Merger; use Cideale\Libmergepdf\Driver\TcpdiDriver; $merger = new Merger(new TcpdiDriver);
Using an immutable merger
Immutability may be achieved by using a driver
directly.
use Cideale\Libmergepdf\Driver\Fpdi2Driver; use Cideale\Libmergepdf\Source\FileSource; use Cideale\Libmergepdf\Pages; $merger = new Fpdi2Driver; $createdPdf = $merger->merge( new FileSource('foo.pdf'), new FileSource('bar.pdf', new Pages('1-10')) );