Some test text!

Search
Hamburger Icon

Php / Guides / Extract layer

Extract layers from PDF in PHP

To extract PDF layers or OCG (optional content group) from a document.

$doc = new PDFDoc($filename);
$page = $doc->GetPage(1);

$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.

// 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.
$sz = $ocgs->Size();
for ($i=0; $i<$sz; ++$i) {
    $ocg = new Group($ocgs->GetAt($i));
    $ctx->ResetStates(false);
    $ctx->SetState($ocg, true);
    $fname = "pdf_layers_".$ocg->GetName().".png";
    $pdfdraw->Export($page, $output_path.$fname);
}

// Now draw content that is not part of any layer...
$ctx->SetNonOCDrawing(true);
$ctx->SetOCDrawMode(Context::e_NoOC);
$pdfdraw->Export($page, $output_path."pdf_layers_non_oc.png");

PDF layers (OCG)
Full sample code which demonstrates how to create, extract, render PDF layers.

Get the answers you need: Chat with us