PDF zu Text mittels Kommandozeile

Um bestimmte Prozesse und Arbeitsabläufe auf meinem Rechner zu automatisieren, z.B. Texte einer PDF in eine Excel-Tabelle zu übernehmen, war ich auf der Suche nach einem Tool, welches eine PDF-Datei in eine Text-Datei konvertieren kann und zwar per CommandLine, also mit der klassischen „Eingabeaufforderung“ (CMD).

Wenn man nämlich so ein PDF-to-Text-Tool hat, kann man sich ein paar Batch-Dateien schreiben oder dieses über VBA-Skripte aufrufen, um den Text einer PDF in eine TXT-Datei umzuwandeln. Dannach lässt sich dann die Textfdatei in jedem weiteren Programm oder Skript einlesen und der Text entsprechend parsen.

Bei meiner Suche bin ich auf das Tool XpdfReader gestoßen.

Xpdf command line tools

Diese bieten unter Downloads die Xpdf command line tools an. Heruntergeladen wird eine Zip-Datei. Wenn man diese entpackt findet man im bin32– oder bin64-Ordner verschiedene Tools bzw. Exe-Dateien. Alle die Exe-Dateien können verwendet werden, um PDF-Konverierungen per Kommandozeile vorzunehmen. Ob man die exe-Dateien aus dem bin32– oder bin64-Ordner benötigt, hängt vom eigenen System ab (bin32 sollte immer gehen). Die Namen der Dateien sind fast selbsterklärend

  • pdfdetach.exe (extrahiert ins PDF eingebettete Dateien)
  • pdffonts.exe (listet die Schriftarten inkl. verschiedener Informationen zu den Schriftarten)
  • pdfimages.exe (liest die im PDF gespeicherten Bilder im Rohformat aus und speichert diese; vom PDF ausgeführte Transformationen werden nicht ausgeführt)
  • pdfinfo.exe (listet die Informationen, wie Titel, Autor, etc. einer PDF-Datei auf)
  • pdftohtml.exe (macht aus jeder PDF-Seite eine HTML-Seite)
  • pdftopng.exe (macht aus jeder PDF-Seite ein PNG-Bild)
  • pdftoppm.exe (macht aus jeder PDF-Seite ein Portable Pixmap (PPM))
  • pdftops.exe (macht aus der PDF-Datei ein PostScript-Datei)
  • pdftotext.exe (erzeugt eine Textdatei aus den Texten des PDF)

PDF-Datei in Text-Datei speichern

Vorbereitung/Beispiel

Wie kann man nun den Text einer PDF-Datei in eine Text-Datei speichern? Dazu verwendet man das Tool pdftotext.exe. Die Exe-Datei kann man sich in einem beliebigen Verzeichnis/Ordner ablegen. In der Eingabeaufforderungen muss man dann nur richtig darauf verweisen.

Bestseller Nr. 1

Jetzt benötigt man noch den Pfad unter welchem die PDF-Datei abgelegt ist, die man in Text umwandeln möchte. Die fertige Datei wird dann automatisch im selben Pfad abgelegt. Man kann exe-Datei und PDF-Datei auch im selben Ordner ablegen.

Screenshot mit Kommandozeilen-Tool PDF-to-Text
PDF-Datei und CommandLine-Tool in einen Ordner

Nun öffnet man die Eingabeaufforderungen, zum Beispiel indem man über das Windows-Startmenü „CMD“ eintippt. In der Eingabeaufforderung wechselt man mittels CD-Befehl in das Verzeichnis, wo sich die pdftotext.exe befindet.

Dort ist in unserem Beispiel auch die PDF-Datei abgelegt, in unserem Fall eine fiktive Rechnung für die Formular-Software DA-FormMaker, welche in Text gewandelt werden soll.

Screenshot einer PDF-Rechung, wo der Text ausgelesen werden soll
Beispiel: Text dieser PDF-Rechung soll ausgelesen werden

Eingabe in Eingabeaufforderung

Als Kommandozeile muss man dann folgende eingeben:

C:\temp>pdftotext.exe -raw c:\temp\Rechnung.pdf

Screenshot Eingabeaufforderung Ausführung pdftotext.exe

-raw ist in diesem Fall ein Parameter von verschiedenen. Dabei wird der Text ohne Beachtung irgendwelcher Formatierungen ausgegeben.

Ergebnis

Als Ergebnis findet man im selben Ordner nun eine Textdatei vor, welche denselben Dateinamen trägt wie die PDF-Datei.

Screenshot Explorer: Ordner enthält als Ergebnis exportierte Textdatei
Textdatei im selben Ordner wie PDF-Datei

Man kann nun die Textdatei, wie auch immer, weiterverarbeiten. Wenn man einen Blick hineinwirft, sieht man dass alle Text aus der PDF zeilenweise und unformatiert enthalten sind.

Screenshot exportierte Textdatei
Resultat der PDF-Text-Konvertierung

Möchte man eine gewisse Formatierung auch in der Txt-Datei beibehalten, dann muss man andere Parameter verwenden, wie zum Beispiel -layout. Bei diesem wird versucht die Formatierung des Textes durch Einfügen von Leerzeichen und Tabs annährend beizubehalten.

Fazit

Wer oft, in großen Mengen oder automatisiert die Texte aus PDF-Dateien benötigt, um diese weiterzuverarbeiten oder per Regex zu parsen, der benutzt dieses Tool und schreibt sich ein entsprechendes Skript dazu. Aber das Tool ist kein Garant, dass diese Vorgehensweise mit jeder PDF-Datei funktioniert. Es kann PDF-Dateien geben, in welcher spezielle Schriftarten eingebettet sind oder geschützte PDF-Files, wo es nicht funktioniert.

Bestseller Nr. 1
Bestseller Nr. 2
PowerShell für Dummies
  • Dittfurth, Andreas (Autor)

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.