Bestimmter Text aus PDF extrahieren

izoards

Bekanntes Mitglied
Hallo Liebe Java Community,

Bevor ich allenfalls den falschen Weg einschlage, wollte ich euch fragen, ob es für meine Problemstellung best - practices gibt.
Und zwar möchte ich aus einem PDF bestimmte Text Passagen extrahieren.
Das PDF ist immer gleich aufgebaut. Als Beispiel steht irgendwo Bestellnummer: 123456
Nun möchte ich die Bestellnummer auslesen.

Mit PDF Box, kann ich das ganze PDF in ein Text umwandeln, danach müsste ich "manuell" nach den gesuchten "Felder" suchen....
Bei der Suche nach Lösungen, bin ich auf "lucene Document" gestossen, so wie ich das verstanden habe, werden dort die Metadaten ausgelesen.
(Leider weiss ich nicht, ob das PDF mit Metadaten arbeitet)
Dann bin ich noch auf "Apache Tika" gestossen.

Nun wollte ich euch Fragen, wie Ihr so etwas umsetzen würdet?
Also am Schluss möchte ich 5-7 Textteile des PDF's extrahiert haben, welche alle ähnlich Wie "Bestellnummer: xxxxx" aufgebaut sind.

Herzlichen Dank für eure Hilfe und das teilen eurer Erfahrungen.
 
Danke, und das geht auch, wenn man nicht weiss, wie lange die Bestellnummer ist?
Also ich möchte einfach "alles" was nach "Bestellnummer: " steht bis zum nächsten leerzeichen zurück erhalten.

Kann so etwas mit einem regulären Ausdruck umgesetzt werden?
Gibt es irgendwo eine gute Anleitung wie man solche patterns erstellt?
 
Kann so etwas mit einem regulären Ausdruck umgesetzt werden?
Natürlich.

Java:
String text = "AB CDEF Bestellnummer: 3322AB32-321 DFADdf aff jsdfl";
Matcher matcher = Pattern.compile("Bestellnummer:\\s*(\\S*)").matcher(text);
if (matcher.find()) {
    System.out.println(matcher.group(1));
}
liefert z. B. als Ergebnis
Code:
3322AB32-321

Gibt es irgendwo eine gute Anleitung wie man solche patterns erstellt?
Naja, Anleitung... https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html
 

Zurück
Oben