2016-07-21 38 views
1

Ich bin derzeit in Python Codierung und verwaltet, um pdftotext zu verwenden, um den Text aus einer PDF zu extrahieren.Nach der Verwendung von pdftotext: Seite von String aus txt

Diese bestimmte Textdatei ist in eine Liste von Strings aufgeteilt. Durch die Verwendung von regulärem Ausdruck kann ich bestimmte Wörter finden, an denen ich interessiert bin. Der Grund, warum ich den Text in eine Liste aufteile, ist, dass ich die Entfernung zwischen zwei bestimmten Wörtern messen möchte und durch Distanz meine ich die Anzahl der Wörter dazwischen zwei Wörter.

Aber nach dem Finden der Position der Wörter möchte ich in der Lage sein, auf das ursprüngliche pdf zurückzugehen. Im Detail interessiert mich die Seite und vielleicht sogar die Zeile (wenn pdf diese Art von Struktur unterstützt), wo sich diese Wörter befinden.

Eine Idee, die ich habe, ist diesen Prozess für jede Seite der PDF zu tun, wenn ich diese Wörter finde, weiß ich, auf welcher Seite das war. Das hat aber den großen Nachteil, dass Seitenumbrüche nicht unbedingt natürlich sind. Bedeutet, ich würde die Fähigkeit verlieren, die Wörter zu finden, wenn sie leider durch einen Seitenumbruch getrennt sind.

Haben Sie eine Idee, wie Sie das auf raffiniertere Weise tun können?

Antwort

0

Sie benötigen eine komplexere Bibliothek als die, die Sie verwenden. Das Datalogics PDF Java Toolkit verfügt über mehrere Klassen, die Text aus einer PDF-Datei extrahieren können. Welche Sie verwenden, hängt davon ab, was Sie mit dem Text nach der Extraktion machen möchten. Der ReadingOrderTextExtractor erstellt eine Liste von Listen, mit denen Sie den Text extrahieren und den Inhalt von Absätzen, Sätzen in diesen Absätzen und Wörter innerhalb dieses Satzes untersuchen können. Sie können nicht nur den Abstand zwischen den Wörtern angeben, sondern auch, ob sie sich im selben Satz oder Absatz befinden. Wenn Sie ein Word-Objekt gefunden haben, können Sie sowohl den Standort auf der Seite finden als auch die Hervorhebung und die Seitenzahl, auf der es sich befindet.