Skip to content

PDF Merger

PdfMerger concatenates pages from multiple source PDFs into one output document. Unlike the reader-based toolkit classes, it uses a factory method (create()) instead of open() since it starts with no source document.

use Phpdftk\Pdf\Toolkit\PdfMerger;
$merger = PdfMerger::create();
$merger->addFile('chapter1.pdf')
->addFile('chapter2.pdf')
->addFile('chapter3.pdf');
$merger->addString($pdfBytes);
$merger->addFile('secured.pdf', password: 'secret');
use Phpdftk\Pdf\Toolkit\PageSelector;
$merger->addPages('large.pdf', PageSelector::range(1, 10));
$merger->addPages('appendix.pdf', PageSelector::pages(3, 7, 12));
$merger->addPages('forms.pdf', PageSelector::odd());
$merger->getSourceCount(); // number of source PDFs added
$merger->getTotalPageCount(); // total pages across all sources
// To file
$merger->save('combined.pdf');
// To string
$bytes = $merger->toBytes();
PdfMerger::create()
->addFile('cover.pdf')
->addPages('body.pdf', PageSelector::range(1, 50))
->addFile('appendix.pdf')
->save('book.pdf');