Welche Software benötige ich, um ein PDF in Text umzuwandeln, der dann mit Regex verarbeitet werden kann, um bestimmte Daten zu extrahieren?

Ich habe eine Reihe von PDF-Dateien/Formularen, die alle in einem standardisierten Format vorliegen. Sie enthalten Informationen wie Versionsverlauf, Autor, wer das Dokument signiert hat und auf welche Dokumente es verweist. Ich muss diese Informationen extrahieren, um sie in eine Datenbank einzuspeisen, die Informationen über die Dokumente enthält. Ich bin mir ziemlich sicher, dass ich dies mit einem oder mehreren regulären Ausdrücken tun könnte, aber ich bin mir nicht ganz sicher, wie ich vorgehen soll. Ich möchte den Prozess auch automatisieren, sodass neue Dokumente, wenn sie erstellt werden, dem System hinzugefügt werden und das System alle Dokumente auf einer Webseite ansieht und die Informationen extrahiert.

Unter Linux können Sie verwenden , um Metadaten exiftoolzu extrahieren und ihre Ausgabe mit regulären Ausdrücken zu analysieren. .pdfZum Beispiel, um Creatorein gegebenes zu finden .pdf: exiftool doc.pdf | grep "^Creator" | perl -pe 's,^Creator.+: (.*)$,\1,'. So finden Sie einen Autor:exiftool doc.pdf | grep "^Author" | perl -pe 's,^Author.+: (.*)$,\1,'
Einige der Informationen über das Dokument, die ich extrahieren muss, befinden sich jedoch nicht in den normalen Metadaten. Das Dokument selbst enthält einen Textabschnitt mit der Aufschrift autorisiert von: "" oder Referenzen: "". Es muss den eigentlichen Text aus dem Dokument extrahieren und daraus spezifischen Text extrahieren.
.pdfEs ist möglich, das Dokument in eine Textdatei umzuwandeln . Danach sollte es möglich sein, ein Stück Text zu extrahieren, je nachdem, wie regelmäßig es mit regulären Erweiterungen sein wird. Sie haben nicht angegeben, welches Betriebssystem Sie verwenden, aber *nixes ist möglich, dies mit dem pdftotextBefehlszeilentool und einer Kombination aus zu automatisierengrep/sed/cut/awk/perl
Wie würde die Syntax für diesen pdftotext-Befehl aussehen, wenn er verwendet wird?
Haben Sie alle verwendeten Linux-Befehlszeilen? Verwenden Sie es nur, wenn es in man pdftotext: steht pdftotext [options] [PDF-file [text-file]]. Das sagt es auch Pdftotext reads the PDF file, PDF-file, and writes a text file, text-file. If text-file is not specified, pdftotext converts file.pdf to file.txt. If text-file is ´-', the text is sent to stdout.. Also zum Beispiel: pdftotext <doc>.pdfwird <doc>.txtim selben Verzeichnis produzieren.
Ich habe zuvor die Linux-Befehlszeile verwendet und bash, awk und sed verwendet. Ein bisschen rostig, aber ich erinnere mich noch an die Grundlagen. Ich habe nur gefragt, welche Argumente übergeben wurden und wie.
Sie können es auch in der Manpage nachschlagen pdftotextund es viel schneller lernen. Um Dokumente von/auf einen Webserver herunterzuladen/hochzuladen, können Sie scpbei SSHaktiviertem Zugriff oder verwenden lftp, Metadaten lokal extrahieren und auf einen Webserver übertragen. Sie müssen eine Liste der Dokumente haben, die Sie bereits bearbeitet haben. Alternativ müssen Sie nicht einmal .pdfvom Webserver herunterladen, da Sie es direkt auf dem Webserver verarbeiten oder ein Remote-Verzeichnis mit mounten können sshfs.
Sie können die Operation zum Extrahieren von Metadaten jedes Mal auslösen, wenn eine neue .pdfDatei hinzugefügt wird, indem Sie einen inotifyMechanismus oder eine Art Webserver-Callback verwenden oder sie regelmäßig mit einem crontabJob ausführen. Ich bin mir immer noch nicht sicher, ob Sie es bevorzugen *nixoder Windows. Wenn Sie letzteres bevorzugen, kann ich Ihnen nicht helfen, da ich es nicht verwende. Übrigens : Es ist bereits zu viel für einen Kommentar. Wenn Ihnen das gefällt, werde ich es in eine Antwort umwandeln, und Sie können es akzeptieren.
@ArkadiuszDrabczyk das wäre gut. Ich habe mich gefragt, warum du das eigentlich nicht getan hast.
Oh, und obwohl ich Windows eher für den allgemeinen Gebrauch verwende, ist dies auf Linux

Antworten (1)

.pdfEs ist möglich, das Dokument in eine Textdatei umzuwandeln . Danach sollte es möglich sein, ein Stück Text zu extrahieren, je nachdem, wie regelmäßig es mit regulären Ausdrücken sein wird. Sie haben nicht angegeben, welches Betriebssystem Sie verwenden, aber *nixes ist möglich, dies mit dem pdftotextBefehlszeilentool und einer Kombination aus grep/sed/cut/awk/perl.

Um Dokumente von/auf einen Webserver herunterzuladen/hochzuladen, können Sie scpbei SSHaktiviertem Zugriff oder verwenden lftp, Metadaten lokal extrahieren und auf einen Webserver übertragen. Sie müssen eine Liste der Dokumente haben, die Sie bereits bearbeitet haben. Alternativ müssen Sie nicht einmal .pdfvom Webserver herunterladen, da Sie es direkt auf dem Webserver verarbeiten oder ein Remote-Verzeichnis mit mounten können sshfs. Sie können die Operation zum Extrahieren von Metadaten jedes Mal auslösen, wenn eine neue .pdfDatei hinzugefügt wird, indem Sie einen inotifyMechanismus oder eine Art Webserver-Callback verwenden oder sie regelmäßig mit einem crontabJob ausführen.

Ich bin mir immer noch nicht sicher, ob Sie lieber *nixoder Windows. Wenn Sie letzteres bevorzugen, kann ich Ihnen nicht helfen, da ich es nicht verwende.