Beispiel #1
0
use mermshaus\Pdf\Parser\CharMapParser;
use mermshaus\Pdf\Parser\PdfDocument;
use mermshaus\Pdf\Parser\PdfStream;
use mermshaus\Pdf\Parser\TextObjectParser;
require __DIR__ . '/../../bootstrap.php';
$pdf = new PdfDocument();
$rr = function ($value) use($pdf) {
    return $pdf->resolveRef($value);
};
$stringToStream = function ($string) {
    $streamData = 'data://text/plain;base64,' . base64_encode($string);
    return fopen($streamData, 'rb');
};
$file = __DIR__ . '/../../../tests/mermshaus/Tests/Pdf/Parser/data/pdfs/writer-lorem.pdf';
$pdf->loadFromStream(new PdfStream(fopen($file, 'rb')));
$pageTree = $pdf->getPageTree();
foreach ($pageTree->get('/Kids') as $kid) {
    $page = $rr($kid);
    $resources = $rr($page->get('/Resources'));
    $font = $rr($resources->get('/Font'));
    $fontmap = array();
    $toUnicodeMap = array();
    foreach ($font->getKeys() as $key) {
        $fontmap[$key] = $rr($font->get($key));
        $tmp = $rr($font->get($key));
        if ($tmp->has('/ToUnicode')) {
            $toUnicodeMap[$key] = $rr($tmp->get('/ToUnicode'));
        }
    }
    $charMaps = array();
    foreach ($toUnicodeMap as $key => $data) {