Warum Markdown vor dem KI-Tool

Ein PDF legt fest, wo jedes Zeichen auf der Seite steht. Welche Zeile eine Überschrift ist, wo ein Absatz endet oder welche Zellen zu einer Tabellenzeile gehören, muss ein Werkzeug beim Umwandeln aus Schriftgrößen und Positionen erschließen, und das klappt unterschiedlich gut.

Markdown ist reiner Text mit ein paar Zeichen für Struktur: # für Überschriften, - für Listen, senkrechte Striche für Tabellen. Mit KI-Tools ist das vor allem praktisch, weil du vor dem Einfügen genau siehst, was beim Modell ankommt. Fußzeilen, Seitenreste oder eine zerrissene Tabelle fallen dir dann auf, bevor sie im Kontext landen.

Dazu kommt der Ort. Verträge, Berichte oder interne Unterlagen will man ja nicht bei irgendeinem Online-Dienst hochladen, nur um sie umzuwandeln. Alle drei Wege in diesem Test laufen auf dem eigenen Gerät: md-converter.de im Browser, die beiden anderen als Python-Bibliothek auf dem Rechner.

Der Testaufbau

Beispiel

Synthetische Testdateien

Alle Dateien sind eigens für diesen Artikel erzeugt und frei erfunden. Sie enthalten keine echten Daten und stehen unten zum Download bereit.

  • pdf-markdown-testdokument.pdf: zwei Seiten mit Textebene. Ein Titel, der über zwei Zeilen umbricht, zwei Überschriftenebenen, ein langer Absatz, eine Aufzählung, eine nummerierte Liste, eine nur fett gesetzte Zeile, eine Tabelle, ein Link und eine Fußzeile auf jeder Seite. Erzeugt aus einer Word-Datei mit LibreOffice.
  • pdf-markdown-scan-ohne-text.pdf: die erste Seite desselben Dokuments, nur als Bild. Keine Textebene, wie bei einem Scan ohne Texterkennung.
  • pdf-markdown-gemischt-text-und-scan.pdf: die beiden Textseiten plus eine dritte Seite, die nur als Bild vorliegt, wie eine eingescannte Anlage.
  • pdf-markdown-testdokument.docx: das Word-Original, aus dem das Text-PDF entstanden ist.

Vorher stand fest, was als Erfolg zählt:

  1. Der Text kommt vollständig an, Umlaute bleiben Umlaute.
  2. Überschriften, Listen und die Tabelle kommen als Markdown-Struktur an.
  3. Eine Seite ohne Text wird gemeldet und nicht still übergangen.

Geprüft habe ich drei lokale Wege:

  • md-converter.de, mein eigenes kleines Werkzeug (Projektseite). Hier habe ich zweimal getestet: zuerst die Umwandlungsfunktion aus dem Quellcode der Seite auf dem Rechner, einen Tag später dieselben Dateien im Browser auf md-converter.de. Beide Läufe lieferten dieselbe Ausgabe. Details im Kasten „Testumgebung“ am Ende.
  • MarkItDown 0.1.9, eine Python-Bibliothek, die viele Dateiformate in Markdown umwandelt (Quelle: PyPI).
  • PyMuPDF4LLM 1.28.2, eine Python-Bibliothek, die PDFs für Sprachmodelle aufbereitet (Quelle: PyPI).

Eine Texterkennung (OCR) war in keinem der drei Läufe im Spiel.

PDF mit Textebene: drei Werkzeuge, drei Ergebnisse

Das ist die Ausgabe von md-converter.de für das Text-PDF. Unverändert bis auf eine Stelle: Vor den drei Aufzählungszeilen steht im Original das Zeichen U+F0B7 aus dem Unicode-Privatbereich, das viele Schriften nicht darstellen. Hier ist es als [U+F0B7] sichtbar gemacht, im Download steht es unverändert.

md-converter_pdf-markdown-testdokument.mdmarkdown
# Testdokument: PDF in Markdown für KI-

# Tools

Dieses Dokument ist frei erfunden und dient nur als Testdatei. Es enthält keine echten
Daten. Umlaute zur Kontrolle: Äpfel, Öfen, Übermaß, Straße.
### Ausgangslage

Wer ein PDF an ein KI-Tool übergeben will, braucht den Text in einer Form, die das
Modell sauber lesen kann. Dieser Absatz ist absichtlich so lang, dass er im PDF über
mehrere Zeilen umbricht. So lässt sich prüfen, ob ein Werkzeug die Zeilen wieder zu
einem Absatz zusammensetzt oder die Umbrüche des Layouts stehen lässt.
### Was geprüft wird

[U+F0B7] Überschriften bleiben Überschriften
[U+F0B7] Listen bleiben Listen
[U+F0B7] Die Tabelle bleibt eine Tabelle
1. PDF auswählen
2. Ergebnis prüfen
3. Markdown an das KI-Tool geben
Hinweis nur in Fettdruck
Die Zeile darüber ist keine Formatvorlage für Überschriften, nur fett gesetzt.
### Beispieltabelle

Element Erwartung im Markdown Beispielwert
Überschrift Zeile beginnt mit # Ausgangslage
Liste Zeile beginnt mit - PDF auswählen
Tabelle Zeilen mit Trennstrichen 3 Spalten
Link zur Kontrolle: md-converter.de.
Testdokument, frei erfunden, nur Beispieldaten

---

### Anhang

Der Text der zweiten Seite folgt nach dem Seitenwechsel. Auch er ist frei erfunden.
Testdokument, frei erfunden, nur Beispieldaten

Was auffällt:

  • Text und Umlaute kamen vollständig an.
  • Der Titel bricht im PDF über zwei Zeilen um, daraus wurden zwei eigene Überschriften: „Testdokument: PDF in Markdown für KI-“ und „Tools“.
  • Beide Überschriftenebenen kamen als ### an, die Gliederung in Kapitel und Unterkapitel ging also verloren.
  • Die fett gesetzte Zeile blieb normaler Text. Das deckt sich mit der Seite PDF zu Markdown (öffnet in neuem Tab): „Fettdruck allein macht keine Überschrift“.
  • Die Aufzählung besteht aus Textzeilen, die mit dem Zeichen U+F0B7 beginnen, und ist damit keine Markdown-Liste. Die nummerierte Liste steht als „1.“, „2.“, „3.“ am Zeilenanfang, so wie sie im PDF steht. Dasselbe Zeichen war schon im Test für den Werkstatt-Artikel zu Vibe Coding aufgefallen; es steckt in der Textebene, die LibreOffice erzeugt.
  • Die Tabelle zerfällt in Textzeilen, die Zellen stehen mit Leerzeichen hintereinander. Das ist eine dokumentierte Grenze, auf der Seite PDF zu Markdown steht: „Tabellen werden nicht rekonstruiert“.
  • Die Zeilenumbrüche des PDF bleiben stehen, Absätze werden nicht neu zusammengesetzt. Auch das steht so auf der Seite.
  • Der Link kam als reiner Text an. Lesbar blieb die Adresse nur, weil der Linktext selbst die Adresse ist.
  • Die Fußzeile steht zweimal im Ergebnis, einmal je Seite, und der Seitenwechsel ist als --- markiert.

MarkItDown 0.1.9 lieferte für dieselbe Datei reinen Text ohne Markdown-Auszeichnung, also ohne #, ohne Markdown-Liste und ohne Tabelle. Außerdem kam die Aufzählung in falscher Reihenfolge an („Listen bleiben Listen“ stand ohne Aufzählungszeichen hinter dem dritten Punkt), und die Tabelle wurde Spalte für Spalte ausgegeben, mit der Link-Zeile mitten zwischen den Spalten:

markitdown_pdf-markdown-testdokument.md (Auszug)text
Element
Überschrift
Liste
Tabelle
Link zur Kontrolle: md-converter.de.

Erwartung im Markdown
Zeile beginnt mit #
Zeile beginnt mit -
Zeilen mit Trennstrichen

PyMuPDF4LLM 1.28.2 kam der Vorlage am nächsten. Es hat die Absätze wieder zusammengesetzt, die Aufzählung als Markdown-Liste und die Tabelle als Markdown-Tabelle ausgegeben, Fett- und Kursivschrift behalten und den Überschriften unterschiedliche Ebenen gegeben. Ganz fehlerfrei war es trotzdem nicht:

pymupdf4llm_pdf-markdown-testdokument.md (Auszug)markdown
# Testdokument: PDF in Markdown für KITools

## **Ausgangslage**

|**Element**<br>|**Erwartung im Markdown**|**Beispielwert**|
|---|---|---|
|Überschrift|Zeile beginnt mit #|Ausgangslage|

Beim Zusammensetzen des Titels verschwand der Bindestrich: aus „KI-Tools“ wurde „KITools“. Die nur fett gesetzte Zeile wurde zur Überschrift vierter Ebene, die erste Tabellenzelle bekam ein überflüssiges <br>, und die Fußzeile steht auch hier zweimal im Text. Der Link kam ebenfalls als reiner Text an. PyMuPDF und PyMuPDF4LLM stehen laut Paketangabe unter einer Doppellizenz (GNU AGPL 3.0 oder kommerzielle Lizenz von Artifex); wer die Bibliothek in eigene Software einbaut, sollte das vorher prüfen.

Testlauf am 22. Oktober 2026, PDF mit Textebene
Kriteriummd-converter.deMarkItDown 0.1.9PyMuPDF4LLM 1.28.2
Text vollständig, Umlaute korrektjajaja, aber „KITools“ statt „KI-Tools“
Überschriften als Markdownja, aber alle Ebenen als ###, Titel doppeltneinja, mit Ebenen; fette Zeile wird Überschrift
Aufzählung als Markdown-Listenein (Textzeilen mit U+F0B7)nein, Reihenfolge vertauschtja
Tabelle als Markdown-Tabellenein (dokumentierte Grenze)nein, spaltenweise zerlegtja
Absätze zusammengesetztneinneinja
Fußzeile je Seite im Textjajaja

Scan ohne Textebene: hier hilft keines der drei

Das Bild-PDF enthält keinen Text, nur ein Foto der Seite. Ohne Texterkennung kann kein Werkzeug daraus Markdown machen, die drei gehen aber unterschiedlich damit um.

md-converter.de meldete im Browser „0 von 1 konvertiert“, bot keinen Download an und zeigte diesen Hinweis:

Grenze

Meldung von md-converter.de, wörtlich

Die PDF-Datei „pdf-markdown-scan-ohne-text.pdf" enthält keinen extrahierbaren Text. Bei Scans oder Bild-PDFs ist zuerst eine Texterkennung (OCR) nötig; dieser Konverter führt keine OCR durch.

Die Seite PDF zu Markdown (öffnet in neuem Tab) sagt das auch vorab: gescannte PDFs bräuchten OCR, „das dieser Converter nicht bietet“.

MarkItDown und PyMuPDF4LLM lieferten beide ein leeres Ergebnis, ohne Fehlermeldung und ohne Hinweis. Wer das im Skript weiterreicht, gibt dem KI-Tool eine leere Datei.

Welches OCR-Werkzeug vorher die Texterkennung übernehmen kann, habe ich in diesem Test nicht geprüft.

Gemischtes PDF: die Bildseite fehlt ohne Hinweis

Für die Arbeit mit KI-Tools ist das der wichtigste Fall, und man sieht ihn dem PDF nicht an. Viele PDFs bestehen aus Textseiten und einzelnen eingescannten Seiten, etwa ein Vertrag mit unterschriebener Anlage oder ein Bericht mit eingefügter Seite aus einem Fax. Das dritte Testdokument ist genau so gebaut, mit zwei Textseiten und einer dritten Seite nur als Bild.

Alle drei Werkzeuge meldeten Erfolg, bei allen drei fehlte die dritte Seite, und keines wies darauf hin:

  • Bei MarkItDown und PyMuPDF4LLM war das Ergebnis Byte für Byte identisch mit dem des reinen Text-PDF.
  • Bei md-converter.de meldete die Seite „1 von 1 konvertiert“, ohne Hinweis. Das Ergebnis endet mit einer zusätzlichen Trennlinie ---, nach der nichts mehr kommt. Liegt die Bildseite in der Mitte, stehen zwei Trennlinien direkt untereinander; auch das habe ich mit einer weiteren Testdatei geprüft. Der Fehlerhinweis aus dem Scan-Fall greift erst, wenn das ganze PDF keinen Text hat.

Ein KI-Tool merkt davon nichts. Es fasst zusammen, was es bekommt, und die fehlende Anlage taucht in der Antwort einfach nicht auf. Deshalb prüfe ich vor dem Einfügen die Seitenzahl. Bei md-converter.de geht das schnell, weil jede Seite durch --- getrennt ist. Dann muss die Zahl der Trennlinien plus eins der Seitenzahl entsprechen, und zwischen zwei Trennlinien muss Text stehen.

Wenn es die Word-Datei gibt

Die Seite PDF zu Markdown rät: „Liegt dein Dokument zusätzlich als Word-Datei vor, nimm besser den Weg über DOCX zu Markdown“. Mit dem Word-Original des Testdokuments habe ich das nachgeprüft, über denselben Code von md-converter.de:

md-converter_pdf-markdown-testdokument-aus-docx.md (Auszug)markdown
# Ausgangslage

## Was geprüft wird

-   Überschriften bleiben Überschriften
-   Listen bleiben Listen
-   Die Tabelle bleibt eine Tabelle

**Hinweis nur in Fettdruck**

## Beispieltabelle

| Element | Erwartung im Markdown | Beispielwert |
| --- | --- | --- |
| Überschrift | Zeile beginnt mit # | Ausgangslage |

Link zur Kontrolle: [md-converter.de](https://md-converter.de).

Die vollständige Ausgabe steht unten als Download. Überschriftenebenen, beide Listen, die Tabelle, Fett und Kursiv sowie der Link mit Ziel-Adresse kamen an. Absätze stehen am Stück, die Fußzeile fehlt, und die fett gesetzte Zeile bleibt fett statt Überschrift. Nur der Dokumenttitel, in Word mit der Formatvorlage „Titel“ gesetzt, kam als normaler Absatz an und nicht als Überschrift. Bis auf diesen Titel war der Weg über DOCX zu Markdown (öffnet in neuem Tab) in diesem Test in jedem Punkt besser als jedes PDF-Ergebnis.

Mein Ablauf, bevor ein PDF in ein KI-Tool geht

  1. Gibt es das Original als Word-Datei? Dann nehme ich den Weg über DOCX und nicht über das PDF.
  2. Hat das PDF eine Textebene? Den schnellsten Test nennt md-converter.de selbst: Lässt sich der Text im PDF-Viewer markieren und kopieren, ist eine Textebene da. Reine Scans brauchen vorher eine Texterkennung.
  3. Sind alle Seiten angekommen? Ich halte die Seitenzahl gegen das Ergebnis, weil gemischte PDFs ihre Bildseiten in allen drei getesteten Werkzeugen ohne Hinweis verlieren.
  4. Gegenlesen und bereinigen: Fußzeilen, Seitenzahlen und Trennlinien, die nur Platz im Kontext belegen, lösche ich, Überschriften ziehe ich nach, Tabellen prüfe ich.
  5. Das Werkzeug wähle ich nach Bedarf. Ohne Installation und ohne Upload geht md-converter.de (öffnet in neuem Tab) im Browser, mit den oben gezeigten Grenzen bei Tabellen, Listen und Überschriftenebenen. Wer in Python arbeitet und Tabellen aus PDFs braucht, ist mit PyMuPDF4LLM besser bedient, sollte aber die Lizenz und die zusammengezogenen Bindestriche im Blick haben. MarkItDown hat in diesem einen Test bei PDFs nur ungegliederten Text geliefert.

Wer den Test selbst wiederholen will: Die Testdateien und alle Ausgaben stehen unten. Was md-converter.de kann und warum es bewusst klein bleibt, steht auf der Projektseite.

Hinweis

Testumgebung

Getestet am 22. Oktober 2026 zwischen 05:38 und 05:43 Uhr (MESZ) auf macOS, Python 3.12.14, Node.js 26.8.2; Browser-Gegenprobe für md-converter.de am 23. Oktober 2026 um 16:10 Uhr (MESZ).

  • md-converter.de, erster Lauf: die Umwandlungsfunktion für PDFs aus dem Quellcode von md-converter.de (Stand vom 16. Oktober 2026; die PDF-Umwandlung wurde zuletzt am 13. Oktober geändert) mit pdf.js 6.2.108 in der Node-Fassung, wie sie auch die Tests des Projekts verwenden; der DOCX-Weg über die Testumgebung des Projekts. Die öffentliche Seite lieferte am selben Morgen pdf.js in derselben Version 6.2.108 aus.
  • md-converter.de, Browser-Gegenprobe: dieselben vier PDFs und die Word-Datei auf den Seiten PDF zu Markdown und DOCX zu Markdown hochgeladen, in Chromium 156 (automatisiert gesteuert, ohne Fenster), Ergebnis über den Download-Knopf der Seite. Die Seite lieferte an diesem Tag pdf.js 6.4.299 aus. Der Inhalt aller Downloads war identisch mit den Ausgaben des ersten Laufs, der Scan wurde mit dem Hinweis oben abgelehnt. Eine Versionsnummer zeigt md-converter.de weiterhin nicht.
  • MarkItDown 0.1.9 mit pdfminer.six 20260107, PyMuPDF4LLM 1.28.2 mit PyMuPDF 1.28.2, jeweils mit Standardeinstellungen, ohne OCR.
  • Testdateien erzeugt mit python-docx 1.2.0, LibreOffice 26.8.0.3, Pillow 12.2.0 und pypdf 6.20.0.

Downloads

Quellen

  1. md-converter.de: PDF zu Markdown (öffnet in neuem Tab)

    Grenzen bei Scans, Tabellen, Fettdruck und Zeilenumbrüchen; abgerufen am 22. Oktober 2026, Browser-Gegenprobe am 23. Oktober 2026

  2. md-converter.de: DOCX zu Markdown (öffnet in neuem Tab)

    Weg über das Word-Original; abgerufen am 22. Oktober 2026, Browser-Gegenprobe am 23. Oktober 2026

  3. MarkItDown 0.1.9 auf PyPI (öffnet in neuem Tab)

    getestete Version; abgerufen am 22. Oktober 2026

  4. PyMuPDF4LLM 1.28.2 auf PyPI (öffnet in neuem Tab)

    getestete Version; abgerufen am 22. Oktober 2026