Ein Problem, was mich alle paar Monate trifft, ist die Extraktion von Tabellen aus Bildern in PDF-Dokumenten. Wenn man Glück hat, sind die Tabellen als Text im PDF hinterlegt. Dann ist die Extraktion mit vielen Tools leicht erledigt. Dafür nutze ich immer Tabula, weil ich eigentlich keine Lust habe, meine PDFs in einen Online-Service zu werfen, wobei das bei öffentlichen PDFs auch egal wäre.

Ein viel schweres Problem stellen Tabellen dar, die als Bild in PDFs eingefügt wurden. Hier bin ich beim letzten Suchen auf ExtractTable.com gestoßen. Weil mir der Dienst – trotz Betaphase – so gut gefallen hat und schon zwei mal gute Dienste geleistet hat, wollte ich ihn hier kurz erwähnen.

Testen kann man ihn mit Bildern sogar ohne Anmeldung. Also am besten ein paar Screenshots erzeugen und dort reinwerfen, dann sieht man auch, ob er voraussichtlich mit den PDFs als solchen auf klar kommt. Möchte man viele Seiten erfassen, so ist das mit den Screenshots zu umständlich, dann nutzt man am besten das Phyton-Programm extracttable-py. Den API-Key inkl. 50 Seiten gibt es aktuell noch gratis nach Anmeldung.

Das Pyhton-Programm ist auch für Nicht-Python-Nutzer relativ leicht zu installieren:

  1. Phyton herunterladen und installieren und am besten auch den Pfad zur Systemvariable Path hinzufügen, dann kann man sich bei nachfolgenden Befehlen den langen Pfad sparen.
  2. Das Paket ExtractTable installieren:

    python.exe -m pip install -U ExtractTable

  3. phyton.exe ausführen, um eine Python-Shell zu starten
  4. In der Phyton-Shell die folgenden Befehle ausführen:

     from ExtractTable import *
     et_sess = ExtractTable(api_key=“deinAPIkey“)
     print(et_sess.check_usage())
     table_data = et_sess.process_file(filepath=“URL_ZUM_PDF“, output_format=“csv“)
     table_data
    

Der erste Befehl importiert das Paket, der zweite startet die Session, der dritte prüft, ob das geklappt hat und zeigt die verfügbaren Credits. Der vierte extrahiert die Tabellen und speichert sie in der Variable table_data. Der fünfte gibt die Tabelle aus. Im Falle von CSV als Ausgabeformat zeigt er an, wo die Datei bzw. die Dateien liegen, die extracttable erzeugt hat.

Ich fand den Kontakt zum Entwickler auch extrem nett, mal schauen, was von den Features, die ich mir gewünscht habe, noch umgesetzt wird 🙂