pcos_get_string($doc, "type:" . $info ); if ($objtype == "name" || $objtype == "string" || $objtype == "boolean" ) { $output .= $p->pcos_get_string($doc, $info); } elseif ($objtype == "number") { $output .= sprintf("%.2f", $p->pcos_get_number($doc, $info)); } elseif ($objtype == "array") { $output .= getArrayPropertyAsString($p, $doc, $info); } elseif ($objtype == "dict") { $output .= getDictPropertyAsString($p, $doc, $info); } else { $output .= "[ $info unknown type ($objtype)]"; } return $output; } function getDictPropertyAsString($p, $doc, $path) { $output = ""; $length = $p->pcos_get_number($doc, "length:". $path); for ($i=0; $i <$length; $i++) { $info = $path . "[" . $i . "].key"; $key = $p->pcos_get_string($doc, $info); $output .= $key ." ["; $info = $path . "[" . $i . "]"; $output .= getProperty($p, $doc, $info); $output .= "] "; } return "[ " . $output . "]"; } function getArrayPropertyAsString($p, $doc, $path) { $output = ""; $length = $p->pcos_get_number($doc, "length:" . $path); for ($i=0; $i <$length; $i++) { $info = $path . "[" . $i . "]"; $output .= getProperty($p, $doc, $info); $output .= " "; } return "[ " . $output . "]"; } try { $title = 'Block properties for "' . $pdfinput . '":'; print $title . "\n\n"; $p = new PDFlib(); // This means we must check return values of load_font() etc. $p->set_option("errorpolicy=return"); // all strings are expected as utf8 $p->set_option("SearchPath={{" . $searchpath . "}}"); /* We do not create any output document, so no call to * begin_document() is required. */ /* Open the input document */ $doc = $p->open_pdi_document($pdfinput, $docoptlist); if ($doc == 0) { die("Error: " . $p->get_errmsg()); } $pagecount = $p->pcos_get_number($doc, "length:pages"); for ($page = 0; $page <$pagecount; $page++) { $count = $p->pcos_get_number($doc, "length:pages[" . $page . "]/blocks"); for ($i=0; $i < $count; $i++) { $info = "type:pages[". $page . "]/blocks[" . $i . "]"; $objtype = $p->pcos_get_string($doc, $info); $info = "pages[". $page . "]/blocks[" . $i . "].key"; $key = $p->pcos_get_string($doc, $info); print($key . ":\n"); $pcospath= "pages[". $page . "]/blocks/" . $key; $length = $p->pcos_get_number($doc, "length:" . $pcospath); for ($j = 0; $j <$length; $j++) { $info = $pcospath . "[" . $j . "].key"; $key = $p->pcos_get_string($doc, $info); $blockproppath = $pcospath . "/" . $key; $objtype = $p->pcos_get_string($doc, "type:" . $blockproppath); printf(" %s(%s\t%s\t%s)\n", $objtype, $blockproppath, $key, getProperty($p, $doc, $blockproppath)); } print "\n"; } } $p->close_pdi_document($doc); } catch (PDFlibException $e) { echo("PDFlib exception occurred in dump_block sample:
" . "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " . $e->get_errmsg() . "
"); exit(1); } catch (Throwable $e) { echo("PHP exception occurred: " . $e->getMessage() . "\n"); exit(1); } $p = 0; ?>