Copy Outlines for Each Document
This demo shows you how to copy outlines for each merged document as childs of a newly created bookmark item.
PHP
use setasign\SetaPDF2\Core\Document\PageMode; use setasign\SetaPDF2\Core\Writer\HttpWriter; use setasign\SetaPDF2\Merger\Merger; // load and register the autoload function require_once __DIR__ . '/../../../../../bootstrap.php'; $merger = new Merger(); $merger->addFile([ 'filename' => $assetsDirectory . '/pdfs/Brand-Guide.pdf', 'outlinesConfig' => [ Merger::OUTLINES_TITLE => 'Brand-Guide.pdf', Merger::OUTLINES_COPY => Merger::COPY_OUTLINES_AS_CHILDS ] ]); $merger->addFile([ 'filename' => $assetsDirectory . '/pdfs/Fuchslocher-Example.pdf', 'outlinesConfig' => [ Merger::OUTLINES_TITLE => 'Fuchslocher-Example.pdf', Merger::OUTLINES_COPY => Merger::COPY_OUTLINES_AS_CHILDS ] ]); // merger $merger->merge(); // get the resulting document instance $document = $merger->getDocument(); // show outlines when document opens $document->getCatalog()->setPageMode(PageMode::USE_OUTLINES); // we're also going to close the items in the root node $iterator = $document->getCatalog()->getOutlines()->getIterator(); $iterator->setMaxDepth(0); foreach ($iterator as $item) { $item->close(); } $document->setWriter(new HttpWriter('outlines-as-childs.pdf', true)); $document->save()->finish();