Libmergepdf
PHP library for merging multiple PDFs
Install / Use
/learn @hanneskod/LibmergepdfREADME
libmergepdf
PHP library for merging multiple PDFs.
Installation
composer require iio/libmergepdf
Usage
Append the first ten pages of bar.pdf to foo.pdf:
use iio\libmergepdf\Merger;
use iio\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 iio\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 iio\libmergepdf\Merger;
use iio\libmergepdf\Driver\TcpdiDriver;
$merger = new Merger(new TcpdiDriver);
Using an immutable merger
Immutability may be achieved by using a driver directly.
use iio\libmergepdf\Driver\Fpdi2Driver;
use iio\libmergepdf\Source\FileSource;
use iio\libmergepdf\Pages;
$merger = new Fpdi2Driver;
$createdPdf = $merger->merge(
new FileSource('foo.pdf'),
new FileSource('bar.pdf', new Pages('1-10'))
);
Known issues
- Links and other content outside a page content stream is removed at merge. This is due to limitations in FPDI and not possible to resolve with the current strategy. For more information see FPDI.
- TCPDI (as used in the TcpdiDriver for merging pdfs with newer features) does not seem to be maintained. This makes mergeing fragile for certain kinds of files, and error messages are often all but helpful. This package will not be able to fix issues in TCPDI. The long term solution is to switch to a different backend. Suggestions are very welcomed!
Related Skills
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
summarize
347.0kSummarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).
feishu-doc
347.0k|
