Ich verwende OSX und möchte PDF-Dateien in Text konvertieren können.
Ich möchte eine kostenlose Anwendung, um dies zu tun, da ich sicher bin, dass es einige geben muss.
Ich verwende OSX und möchte PDF-Dateien in Text konvertieren können.
Ich möchte eine kostenlose Anwendung, um dies zu tun, da ich sicher bin, dass es einige geben muss.
Antworten:
Hier sind die Schritte, mit denen ich xpdf über Homebrew installiert und verwendet habe.
Installieren Sie die Abhängigkeiten von Homebrew:
xcode-select --install
Installieren Sie Homebrew von ihrer Website:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Tun Sie, was Ihnen gesagt wird, um die Homebrew-Installation abzuschließen.
Stellen Sie sicher, dass Homebrew zufrieden ist und den Spezifikationen entspricht.
brew doctor
Als nächstes installieren Sie xpdf und seine Abhängigkeiten:
brew install Caskroom/cask/xquartz
brew install xpdf
Verwenden Sie abschließend pdftotext, ein Paket, das mit der xpdf-Suite geliefert wird:
pdftotext Some_Document.pdf Some_Document.txt
Der erste Dateiname ist eine vorhandene PDF-Datei. Der zweite ist das Ziel. Die Ergebnisse waren viel besser als mit einer (zugegebenermaßen alten) Version von Adobe Acrobat. Bearbeiten: Neue (2019) Versionen von Adobe Acrobat haben ähnlich schlechte Ergebnisse gezeigt.
xquartz
wird für die Konsolentools in nicht benötigt xpdf
. Darüber hinaus gibt es die poppler
Gabelung, xpdf
die weitaus aktiver gepflegt zu sein scheint: github.com/scraperwiki/scraperwiki-python/issues/…
Mehrere Methoden.
Verwenden Sie Google-Dokumente (Sie benötigen ein Google-Konto)
Verwenden Sie Automator (einige Arbeiten erforderlich)
Mit Automator können Sie einen Workflow erstellen, mit dem Sie Text aus PDFs extrahieren und als Text- oder RTF-Dokument speichern können.
oder eine App aus dem App Store, zB PDF to Text
xpdf
was ich mit Ports installiert habe:
port install xpdf
enthält:
xpdf-pdftotext
Es macht das, was Sie für jede PDF-Datei wollen, die aus einer Textdatei (und nicht aus einem Bild) stammt:
xpdf-pdftotext PDF_file text_file
Die aktuelle Version von Adobe Reader (11.0.09) enthält im Menü "Datei" den Eintrag "Als andere speichern".
Eine der Optionen ist Text .
Die App ist kostenlos und leistet gute Arbeit bei der Ausgabe von Textdateien. Alle Bilder im neuen Dokument gehen im TXT-Format verloren.
Ich würde denken, Sie sollten in der Lage sein, den Text zu kopieren und in ein anderes Dokument einzufügen. Den gesamten Text auswählen
Beachten Sie, dass Sie, wenn Sie dies versuchen und kein Text eingefügt wird, sondern nur ein paar leere Zeilen, zuerst versuchen, Ihre PDF-Datei in eine neue PDF-Datei zu drucken, z
Versuchen Sie nun den obigen Vorgang mit diesem neuen PDF. Hat für mich gearbeitet!
PS: Wenn Sie über Microsoft Word verfügen, können Sie Ihre PDF-Datei möglicherweise in Word öffnen
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. . Dann können Sie es als Quick Action oder DropApp verwenden.
#!/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()
if pdfDoc
Anweisung durch print(pdfDoc.string())
.