2016-05-31 15 views
0

Wer weiß, eine einfache Möglichkeit zum Lesen/Extrahieren von Stichwörtern aus PDF-Datei? Diese Datei ist nicht passwortgeschützt und wurde auf dem gleichen Server in der FPDF-Klasse generiert.Lesen pdf Schlüsselwörtern mit PHP

Ich weiß, dass es ein "leistungsfähiges" Werkzeug (nicht frei) gibt, um .pdf zu manipulieren, das eine einfache Möglichkeit bietet, alle Metadaten herauszuholen.

Ich weiß auch, dass .pdf speichern Sie alle Metadaten innerhalb < < >> Zeichen, mit dem Sonderzeichen/vor dem Namen der Metadaten, um das zu identifizieren. Was ich brauche, ist die Zeichenfolge nach dem "/ Keywords" und speichern Sie in einer Variablen.

Haben Sie eine Idee, nur diese Zeichenfolge zu parsen und zu erhalten?

(derzeit bin ich eine JSON-String in Schlüsselwörter zu schreiben, so dass es wie folgt aussehen: ([{"FirstName":"7bis","LastName":"lastName","email":"[email protected]"}]))

Öffnen der PDF-Datei mit einem Texteditor wie folgt aussieht:

/F1 6 0 R 
>> 
/XObject << 
>> 
>> 
endobj 
7 0 obj 
<< 
/Keywords ([{"FirstName":"7bis","LastName":"lastName","email":"[email protected]"}]) 
/Producer (FPDF 1.81) 
/CreationDate (D:20160531084015) 
>> 
endobj 

Vielen Dank für alle Vorschlag ;)

Antwort

0

Sie unter Code von source

versuchen kann
$parser = new \Smalot\PdfParser\Parser(); 
$pdf = $parser->parseFile('document.pdf'); 
$text = $pdf->getDetails(); 
+0

Eigentlich möchte ich jede Klasse vermeiden, die Composer wie die, die Sie vorgeschlagen haben, benötigen. Ich habe die Online-Demo ausprobiert und funktioniert so, wie ich es brauche, aber ich verwende im Moment keinen Composer, und es gibt keine Möglichkeit, diese Klasse ohne diese "einzuschließen". – Andrea

1

Schließlich habe ich nach etwas "Kodierung" und etwas Lesen über das allgemeine Parsing einen Weg gefunden, um zu extrahieren, was ich brauche. Ich öffne die PDF-Datei Eigentlich und speichern Sie es als eine Zeichenfolge ist, dann den String-Parsing und extrahieren den Inhalt nach Keywords

$file = "/directory/of/file/example.pdf"; 
$stringedPDF = file_get_contents($file, true); 
preg_match('/(?<=Keywords)\S+/i', $stringedPDF, $match); 
return $match[0]; 

Ich bin ziemlich sicher, können wir einige „Tuning“ tun, weil die " Metadaten "sind immer" nahe am Ende "der Datei. Es wird nett sein, nur den "letzten" Teil der Datei zu nehmen, ohne die ganze Datei in der Zeichenkette zu speichern, das wird viel Zeit sparen, besonders bei großer .pdf Dateigröße.