PDF-Tabellen in Markdown umwandeln

Tabellen sind das, was sich am schwersten unversehrt aus einem PDF holen lässt, denn ein PDF weiß nicht, dass es eine enthält. In den Daten gibt es weder Zeilen noch Zellen noch Rahmen, nur Text an Koordinaten, der zufällig in einer Flucht steht. Eine Tabelle zurückzugewinnen heißt, diese Flucht zu erkennen.

Wie extrahiere ich eine Tabelle aus einem PDF nach Markdown?

Legen Sie das PDF auf den Konverter dieser Seite. Text, der über aufeinanderfolgende Zeilen in gleichbleibenden Spalten steht, wird als Tabelle erkannt und als GFM-Markdown-Tabelle ausgegeben.

Warum ergibt das Kopieren einer PDF-Tabelle ein Durcheinander?

Beim Kopieren kommt der Text in der Reihenfolge heraus, in der er gezeichnet wurde, nicht in Lesereihenfolge, und ein PDF kennt keine Zellgrenzen. Die Spaltenstruktur muss aus Koordinaten rekonstruiert werden.

PDF hier ablegen

oder eine Datei von Ihrem Computer auswählen

Nur PDF · bis zu 50 MB

So wandeln Sie eine PDF-Tabelle in Markdown um

  1. 1

    Dokument umwandeln

    Legen Sie das PDF auf den Konverter. Tabellen werden zusammen mit dem übrigen Dokument automatisch erkannt.

  2. 2

    Spaltenzahl prüfen

    Vergleichen Sie die Vorschau mit dem Original. Eine durchgehend leere Spalte bedeutet meist, dass eine Überschrift in der Quelle zwei Spalten überspannte.

  3. 3

    Ausreißer korrigieren

    Bearbeiten Sie das Markdown direkt im linken Bereich. Pipe-Tabellen sind reiner Text, eine Zelle zu ergänzen oder zusammenzuführen ist eine Kleinigkeit.

  4. 4

    An den Zielort kopieren

    Fügen Sie die Tabelle in GitHub, Obsidian, ein README oder eine Doku-Seite ein. GFM-Tabellen werden überall dort korrekt dargestellt.

Wie die Tabellenerkennung arbeitet

Jedes Textstück in einem PDF trägt eine waagerechte Koordinate und eine Breite. Der Konverter trennt jede Zeile dort, wo der Abstand zwischen zwei Stücken etwa das Anderthalbfache der Fließtext-Schrifthöhe übersteigt: deutlich mehr als ein Wortabstand, deutlich weniger als ein Spaltensteg.

Das allein würde bei Blocksatz danebengreifen, der ebenfalls breite Lücken enthält. Deshalb kommt eine zweite Bedingung hinzu: Die Lücken müssen in aufeinanderfolgenden Zeilen an derselben Stelle liegen. Zufälliger Wortabstand steht nie über mehrere Zeilen in einer Flucht, eine echte Spalte immer.

Ein Block wird nur dann als Tabelle ausgegeben, wenn mindestens zwei aufeinanderfolgende Zeilen mindestens zwei wiederkehrende Spaltenpositionen teilen. Alles andere bleibt Absatztext.

Was erhalten bleibt und was nicht

Markdowns Tabellensyntax ist bewusst minimal, was jeder Umwandlung eine harte Obergrenze setzt.

  • Erhalten: Spaltenstruktur, Zeilenreihenfolge, Zellentext sowie Fett und Kursiv innerhalb einer Zelle
  • Erhalten: Die erste Zeile gilt als Kopfzeile, so wie nahezu jedes Dokument eine Tabelle anlegt
  • Verloren: Verbundene Zellen, für die es in Markdown keine Entsprechung gibt und die in die linke Spalte zusammenfallen
  • Verloren: Verschachtelte Tabellen, Hintergrundfarben, Rahmen und Spaltenbreiten
  • Angenähert: Eine Zelle, deren Text über mehrere Zeilen läuft, wird zu einer Zelle zusammengefasst

Wo die Erkennung an Grenzen stößt

Schwierig wird es bei Tabellen ohne durchgehende Ausrichtung: wenn jede Zelle einzeln zentriert ist, oder wenn eine rechtsbündige Zahlenspalte mit schmalem Abstand an eine linksbündige grenzt. Die Erkennung ist so eingestellt, dass sie Text lieber als Absatz stehen lässt, als eine Tabelle zu erfinden, die es nie gab, denn eine falsche Tabelle aufzuräumen kostet mehr als reiner Text.

Bilanzen, Preislisten, Datenblätter und Vergleichstabellen lassen sich in aller Regel gut umwandeln. Dicht bedruckte Formulare mit umrahmten Feldern nicht, denn ihre Struktur entsteht aus gezeichneten Rechtecken und nicht aus der Textausrichtung.

Häufige Fragen

Kann ich nur die Tabellen extrahieren und den Rest überspringen?
Nicht automatisch. Umgewandelt wird das ganze Dokument, mit den Tabellen an Ort und Stelle. Da das Ergebnis reiner Text ist, sind die umgebenden Absätze in Sekunden gelöscht.
Was ist mit Tabellen über mehrere Seiten?
Jede Seite wird für sich erkannt, eine über einen Seitenumbruch laufende Tabelle ergibt also zwei Tabellen. Zusammenführen heißt, die wiederholte Kopfzeile zu löschen.
Kommt sie mit rechtsbündigen Zahlenspalten zurecht?
Meistens. Die Erkennung gruppiert Zellen nach ihrer linken Kante, eine rechtsbündige Spalte mit unterschiedlich breiten Zahlen kann daher gelegentlich aufbrechen. Prüfen Sie Summen gegen die Quelle.
Kann ich statt Markdown auch CSV bekommen?
Derzeit nicht. Eine Markdown-Tabelle lässt sich in einer Tabellenkalkulation oder mit einem kurzen Skript leicht nach CSV überführen, und CSV-Export steht auf der Roadmap.

Verwandte Konverter