$writer->End(); // save changes to the current page $doc->PagePushBack($page); // Set the default viewing preference to display 'Layer' tab. $prefs = $doc->GetViewPrefs(); $prefs->SetPageMode(PDFDocViewPrefs::e_UseOC); $doc->Save($output_path . "pdf_layers.pdf", SDFDoc::e_linearized); echo nl2br("Done.\n"); // The following is a code snippet shows how to selectively render // and export PDF layers. $doc = new PDFDoc($output_path . "pdf_layers.pdf"); $doc->InitSecurityHandler(); if (!$doc->HasOC()) { echo nl2br("The document does not contain 'Optional Content'\n"); } else { $init_cfg = $doc->GetOCGConfig(); $ctx = new Context($init_cfg); $pdfdraw = new PDFDraw(); $pdfdraw->SetImageSize(1000, 1000); $pdfdraw->SetOCGContext($ctx); // Render the page using the given OCG context. $page = $doc->GetPage(1); // Get the first page in the document. $pdfdraw->Export($page, $output_path . "pdf_layers_default.png"); // Disable drawing of content that is not optional (i.e. is not part of any layer). $ctx->SetNonOCDrawing(false); // Now render each layer in the input document to a separate image. $ocgs = $doc->GetOCGs(); // Get the array of all OCGs in the document. if ($ocgs != null) { $sz = $ocgs->Size();