PDF zu Markdown für LLMs: Dokumente für ChatGPT, Claude und RAG vorbereiten
Fügen Sie ein PDF in ein Chat-Modell ein, und es funktioniert meist – in dem Sinne, dass das Modell antwortet. Darunter wird das Layout-Rauschen des PDFs – Zeilenumbrüche, wiederholte Kopf- und Fußzeilen, Eigenheiten der Lesereihenfolge – zu Tokens, die das Modell durchschauen muss, bevor es den Inhalt erreicht.
Die vorherige Umwandlung in Markdown entfernt den Großteil dieses Rauschens an der Quelle. Dieser Artikel erklärt, woher das PDF-Rauschen kommt, was es an Tokens kostet, warum einzeilige Absätze für Chunking und Diffs wichtig sind und wie der LLM-optimierte Ausgabemodus dieser Website genau für diesen Workflow gebaut ist.
Warum LLMs mit rohen PDFs kämpfen
Wenn ein Chat-Tool ein PDF direkt akzeptiert, muss es zunächst in Text umgewandelt werden – meist von einem schnellen, generischen Extraktor. Das Ergebnis bewahrt die Speicherartefakte des PDFs: Zeilenumbrüche mitten im Satz, Silbentrennung aus dem ursprünglichen Blocksatz, Kopf- und Fußzeilen auf jeder Seite und Spaltentext in Speicherreihenfolge verschachtelt.
Modelle sind gut darin, darüber hinwegzusehen – deshalb scheint der direkte Upload zu funktionieren. Doch das Modell verbringt Aufmerksamkeit damit, Absätze wieder zusammenzusetzen, die ein Konverter intakt geliefert hätte, und bei langen Dokumenten summiert sich die Verschwendung: Allein wiederholte Fußzeilen können Tausende Tokens reiner Wiederholung sein.
Strukturierter Text verankert außerdem die Zitate des Modells. Wenn Sie das Modell bitten, die Klausel zu zitieren, auf die es eine Antwort stützt, geben Klauselnummerierung und Überschriftenebenen aus einer Markdown-Umwandlung stabile Anhaltspunkte; eine Wand aus neu umbrochenem PDF-Text bietet nichts, worauf man zeigen könnte.
Die versteckten Token-Kosten des PDF-Rauschens
Tokenizer rechnen nach Textstücken ab, und PDF-Rauschen besteht aus Stücken. Ein hart umbrochener Absatz kostet dieselben Zeichen, aber zusätzliche Zeilenumbrüche; eine vierzigmal wiederholte Fußzeile ist ein fester Kostenpunkt pro Seite, ob sie nun wichtig ist oder nicht; getrennte Zeilenumbrüche wie „conver- sion“ können in Stücke zerfallen, die weder dem Wort entsprechen noch Bedeutung tragen.
Die Verschwendung ist nicht nur Volumen, sondern auch Position. Kontextfenster sind endlich, und Rauschen am Anfang schiebt Inhalt in Richtung des Kürzungspunkts. Dokumente, die als sauberes Markdown bequem passen würden, laufen als roher PDF-Dump manchmal über, und die Antwortqualität des Modells verschlechtert sich lange bevor etwas abgeschnitten wird.
Nichts davon zeigt sich im Ton der Antwort – deshalb bleibt es unbemerkt. Es zeigt sich darin, wie viel des Dokuments das Modell tatsächlich verarbeitet hat, und auf der Rechnung, wenn Sie per API pro Token bezahlen.
Ein Absatz, eine Zeile: Warum Umbrüche wichtig sind
Traditionelle Textwerkzeuge brechen Ausgaben hart bei 72 oder 80 Spalten um, weil Terminals und Druckseiten so funktionierten. In einer Markdown-Datei, die für ein Modell bestimmt ist, ist jeder dieser Umbrüche eine potenzielle Chunk-Grenze in einer Retrieval-Pipeline, die an Zeilenumbrüchen oder Absatzlängen schneidet.
Einzeilige Absätze machen das Chunking trivial: Ein Absatz ist eine Zeile, ein Splitter kann an Leerzeilen schneiden, und jeder Chunk enthält ganze Sätze. Bei hart umbrochenem Text muss dieselbe Pipeline zuerst den Umbruch rückgängig machen; tut sie es nicht, brechen Chunks mitten im Satz, und die Retrieval-Qualität sinkt auf schwer debuggbare Weise.
Zeilenbasierte Diffs profitieren genauso. Wenn eine Vertragsrevision eine Klausel ändert, zeigt eine Datei mit einzeiligen Absätzen genau eine geänderte Zeile; eine umbrochene Datei kann den Rest des Absatzes neu umbrechen und die eigentliche Änderung in einem Dutzend Diff-Hunks vergraben.
Das kompakte Profil in der Praxis
Der Konverter dieser Website hat einen expliziten LLM-optimierten Schalter. Aktiviert bewirkt er zwei Dinge: Die PDF-Engine läuft in ihrem kompakten Extraktionsprofil, das schlichten, knappen Text gegenüber layouttreuer Ausführlichkeit bevorzugt, und der Markdown-Writer deaktiviert den harten Zeilenumbruch, sodass jeder Absatz eine Zeile ist.
Das kompakte Profil ist ein anderer Kompromiss, kein strikt besserer. Layouttreue Modi reproduzieren mehr von der visuellen Struktur der Seite – das ist es, was ein menschlicher Leser will, der zum Bearbeiten konvertiert. Der kompakte Modus entfernt diese Dekoration bis auf Inhalt und Struktur – das ist es, was ein Token-Stream will.
Der Schalter wirkt nur auf die Markdown-Ausgabe, und das ist Absicht: HTML-, RST- und LaTeX-Ziele werden von Renderern konsumiert, die ohnehin neu umbrechen. Ist Ihr Ziel ein Modell, bleiben Sie bei Markdown mit aktiviertem Schalter; ist es ein Mensch, ist die Standardeinstellung die bessere Lektüre.
Markdown in eine RAG-Pipeline einspeisen
Retrieval-Augmented Generation steht und fällt mit der Chunk-Qualität. Markdown gibt der Pipeline etwas, das PDF nie kann: strukturelle Grenzen, die zugleich semantische Grenzen sind. Überschriften markieren Themen, sodass ein Splitter pro Abschnitt chunken und den Überschriftenpfad als Metadaten anhängen kann; Tabellen kommen als intakte Pipe-Table-Blöcke an, die das Embedding als Einheiten überstehen.
Das praktische Rezept ist absichtlich unspektakulär: Jedes PDF in Markdown mit einzeiligen Absätzen umwandeln, an Überschriften mit einer Größenobergrenze schneiden, den Überschriftenpfad bei jedem Chunk behalten und einbetten. Jeder Schritt ist ein Einzeiler gegen eine wohlgeformte Markdown-Datei – und eine fragile Heuristik gegen ein rohes PDF.
Stapelkonvertierung ist hier wichtiger als im interaktiven Einsatz. Eine Wissensdatenbank umfasst Dutzende oder Hunderte Dokumente, und dieses Tool konvertiert sie seriell im Browser und paketiert die Ergebnisse zum Download – ohne Upload-Schritt dazwischen, was umso mehr zählt, wenn die Dokumente zu der Sorte gehören, die man nicht hochladen kann.
Warum die Umwandlung auf Ihrem Rechner stattfinden sollte
Die Dokumente, die Menschen an LLMs füttern, sind überproportional sensibel: Verträge, Vorstandsprotokolle, unveröffentlichte Forschung, Kundendateien. Wer sie einem Cloud-Konverter anvertraut, fügt dem Datenfluss eine Partei hinzu, deren Aufbewahrungsrichtlinie Sie nicht geschrieben haben – und die Bequemlichkeit von Drag-and-Drop verdeckt, dass dies ein Upload ist.
Dieser Konverter führt die PDF-Parsing-Engine als WebAssembly in Ihrem Browser-Tab aus. Die Datei wird mit der Datei-API des Browsers gelesen, im Arbeitsspeicher verarbeitet und lokal wieder ausgeschrieben; es gibt überhaupt keine Serverkomponente im Umwandlungspfad. Sie können die Seite laden, die Netzwerkverbindung trennen – die Umwandlung funktioniert weiter.
Diese Designentscheidung ist dieselbe, die das Tool speziell für den LLM-Workflow geeignet macht: Der ganze Sinn, ein Dokument für ein Modell vorzubereiten, ist oft, die Kontrolle darüber zu behalten, wer es sieht. Ein Konverter, der hochlädt, würde dieses Ziel einen Schritt früher untergraben.
Grenzen, die Sie kennen sollten
Gescannte PDFs haben keine Textebene, und kein Umwandlungsprofil ändert das. Ist die Quelle ein Scan, lassen Sie ihn zuerst durch OCR-Software laufen und konvertieren die OCR-Ausgabe; der Konverter kennzeichnet Seiten ohne extrahierbaren Text, statt still eine Hülle zurückzugeben.
Komplexe Tabellen kommen vereinfacht an. GFM-Pipe-Tables können verbundene Zellen oder mehrstufige Kopfzeilen nicht ausdrücken, also sehen Modelle eine abgeflachte Version. Bei tabellenlastigen Quellen, in denen die Tabelle der Kern ist, prüfen Sie ein paar Zeilen gegen das Original, bevor Sie nachgelagerten Antworten vertrauen.
Und der Schalter ist kein Qualitätsregler für die Extraktion selbst: Der kompakte Modus ändert, wie originalgetreu das Layout wiedergegeben wird, nicht, wie korrekt Text erkannt wird. Produziert eine Umwandlung verstümmelte Zeichen, liegt das Problem an der Kodierung der Quelle, nicht am Profil.