Wie konvertiere ich eine PDF-Datei in eine Textdatei?

9

Gibt es eine einfache Möglichkeit, einfachen Text aus einer PDF-Datei zu extrahieren?

Auf * nix-Systemen hatte ich früher einen Befehl ps2ascii, der die Aufgabe erledigte, aber es scheint, dass dieser Befehl auf meinem Mac nicht standardmäßig installiert ist.

Was wäre der einfachste Weg, um Text aus einer PDF-Datei zu extrahieren, oder alternativ, wie man ps2asciiauf mein System kommt?

Juan A. Navarro
quelle

Antworten:

5

Adobe Reader verfügt über die Option "Als Text speichern ..." im Menü "Datei". Einfachster Weg.

Ghoppe
quelle
Vielen Dank! Dies ist bei weitem die einfachste Lösung. Sie konnte meine riesige Datei problemlos verarbeiten und eine einigermaßen saubere und verwendbare Textausgabe erzeugen.
Juan A. Navarro
1
Ja, es ist die einfachste, aber nicht immer die sauberste Ausgabe. v7 gibt die beste Ausgabe aus, aber vorher und nachher laufen die Dinge durcheinander. Ein Teil meiner Arbeit besteht darin, behinderten Studenten Klartextversionen von Hochschullehrbüchern zur Verfügung zu stellen. Ich habe viel Erfahrung damit und deshalb empfehle ich Ghostscript, wenn ich nach der kostenlosen Option suche.
Philip Regan
1
@ Ghoppe dank dieser einfachen Option, aber es ist nicht in der Mac-Version von Adobe verfügbar. Wie mache ich es in Adobe über Adobe Reader?
4

ps2asciiist ein Teil von Ghostscript , das unter Mac OS X installiert werden kann (und möglicherweise bereits ab Werk standardmäßig installiert ist).

Philip Regan
quelle
1
Ghostscript ist in OSX nicht enthalten. Eine der unten aufgeführten Methoden würde es gerne installieren.
Martin Marconcini
Ich weiß nicht, ob ich zu viel Druck mache, aber können Sie mir genau mitteilen, was und wie ich installieren muss? (Vollständiger Haftungsausschluss: Ich bin ein ziemlich erfahrener Benutzer und habe es bereits geschafft, ihn zu installieren. In der Beta-Phase dieser Website möchte ich jedoch sehen, wie viele Details und Informationen wir von Personen erwarten können, die Antworten geben.)
Juan A. Navarro
Ich denke, eine solche Frage würde aus dem Geltungsbereich von SE herausfallen, da auf ihrer Website bereits sehr detaillierte Dokumente verfügbar sind. Eine geeignetere Frage in diesem Fall wäre meines Erachtens, eine Frage zur Installation zu stellen, nachdem Sie versucht haben, sie zu installieren. Die Installation schlägt nach wiederholten Versuchen fehl und die Suche im Internet liefert nur wenige oder gar keine Antworten.
Philip Regan
2

Mir ist kein natives OS X- Dienstprogramm bekannt, das dies tut. Sie können jedoch die meisten Unix- / Linux-Befehle mit einer der drei folgenden Methoden installieren:

Homebew : Homebrew ist die einfachste und flexibelste Möglichkeit, die UNIX-Tools zu installieren, die Apple nicht in OS X integriert hat.

Fink : Das Fink-Projekt möchte die gesamte Welt der Unix Open Source-Software auf Darwin und Mac OS X bringen.

Macports : Das MacPorts-Projekt ist eine Open-Source-Community-Initiative zum Entwerfen eines benutzerfreundlichen Systems zum Kompilieren, Installieren und Aktualisieren von Open-Source-Software auf Befehlszeilen-, X11- oder Aqua-Basis unter dem Betriebssystem Mac OS X.

Homebrew ist das "neue Kind auf dem Block" und verspricht, die "Probleme und Einschränkungen" zu lösen, die die anderen beiden haben (was auch immer diese Probleme sein mögen). Ich schlage vor, dass Sie sich alle ansehen und das verwenden, was Sie für Ihre Bedürfnisse als am flexibelsten / einfachsten erachten.

Es gibt jedoch eine App (Payware), die das früher gemacht hat (ich weiß nicht, ob es das noch macht). Ich spreche von DEVONthink , und Sie können ein paar Tage lang eine Demo ausprobieren.

Update : Laut diesem Beitrag könnten Sie DevonThink (Testversion) installieren und die 'pdftotext'-Binärdatei ", die natürlich kostenlos ist " [sic] aus dem Bundle extrahieren .

Martin Marconcini
quelle
Danke für die Hinweise, aber welche davon würden eigentlich enthalten ps2ascii? Und welches soll ich bevorzugen?
Juan A. Navarro
MacPorts verarbeitet Ghostscript 9 (die neueste Version).
Philip Regan
Das native OS X-Dienstprogramm ist die Adobe Reader-Anwendung, die über Als Text speichern verfügt.
Ghoppe
1

Wenn es Ihnen nichts ausmacht, eine GUI zu verwenden, können Sie Text aus einer PDF-Datei auswählen, die mit Preview.app geöffnet wurde

Mouviciel
quelle
Danke, das scheint für einfache Fälle zu funktionieren. Aber ich habe ein sehr großes Dokument (über 1000 Seiten) und es stürzt fast das System ab, nur indem ich versuche, alles auszuwählen!
Juan A. Navarro
Eine ungewöhnliche Lösung im Zusammenhang mit der obigen Antwort ist, dass Acrobat 7 tatsächlich überraschend saubere Textextraktionen durchgeführt hat (Sie sollten jedoch ein geeignetes Dienstprogramm wie Ghostscript für etwas so Großes verwenden).
Philip Regan
1

Verwenden Sie Online-Dokumentkonverter wie Saaspose.PDF , mit denen Sie Ihre PDF-Datei in ein TXT-basiertes Dokument konvertieren können. Und da es sich um eine Cloud-API handelt, müssen Sie nichts herunterladen oder installieren.

Zarfishan
quelle
1

Das folgende Python-Skript gibt den Text aus einem PDF-Dokument in eine TXT-Datei aus. (Hinweis: Es gibt keine Garantie dafür, dass der Text aufgrund der Art und Weise, wie Daten im PDF-Format gespeichert werden, notwendigerweise in einer für Menschen lesbaren Reihenfolge „logisch“ ist.)

Das Skript erstellt Textdateien für alle PDF-Dateien, die als Argumente in der Befehlszeile angegeben werden (z. B. pdf2txt.py myPDF.pdf), oder Sie können in der Aktion "Shell-Skript ausführen" von Automator den Shell-Typ auf Python setzen und die Eingabe an "Als Argumente" übergeben. .

#!/usr/bin/python
# coding: utf-8

import os, sys
from Quartz import PDFDocument
from CoreFoundation import (NSURL, NSString)
NSUTF8StringEncoding = 4

def pdf2txt():
    for filename in sys.argv[1:]:   
        inputfile =filename.decode('utf-8')
        shortName = os.path.splitext(filename)[0]
        outputfile = shortName+" text.txt"
        pdfURL = NSURL.fileURLWithPath_(inputfile)
        pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
        if pdfDoc :
            pdfString = NSString.stringWithString_(pdfDoc.string())
            pdfString.writeToFile_atomically_encoding_error_(outputfile, True, NSUTF8StringEncoding, None)

if __name__ == "__main__":
   pdf2txt()
benwiggy
quelle