PDF- und Word-Dateien für KI in Text umwandeln: Microsofts MarkItDown
MarkdownAusführlicher Test: PDF- und Word-Dateien für KI in Text umwandeln: Microsofts MarkItDown.
Vollständigen Artikel lesen
Das Wichtigste
MarkItDown ist ein kostenloses Microsoft-Tool, das Word-, Excel-, Präsentations- und PDF-Dateien in strukturierten Text für KI umwandelt. Office-Dateien parst es sauber in Sekundenbruchteilen. PDFs mit komplexem Layout verwandelt es in ein Durcheinander; bei einem Scan gibt es eine leere Datei mit Exit-Code null zurück. Im Folgenden findest du einen funktionierenden Installationsbefehl, Messwerte zu Dokumenten mit kyrillischem Text und eine Regel dafür, wann du ein anderes Tool verwenden solltest.
Weitere Anleitungen findest du in der Ailoot-Dokumentation.
Was ist MarkItDown, und wofür ist es gedacht?
Das Wichtigste
MarkItDown ist ein Python-Tool von Microsoft, das eine Datei einliest und ihren Inhalt als strukturierten Text zurückgibt. Überschriften werden zu Überschriften, Tabellen zu Tabellen. Es liegt in einem offenen GitHub-Repository unter der MIT-Lizenz, lässt sich mit einem Befehl installieren und verarbeitet alles auf deinem Rechner. Es hat genau eine Aufgabe: ein Dokument so aufzubereiten, dass eine KI nicht nur die Wörter, sondern auch die Struktur erkennen kann.
Du gibst einer KI einen Vertrag, einen Bericht oder einen Buchhaltungsexport und erhältst eine Antwort, die nichts mit dem Dokument zu tun hat. Meist liegt es nicht am Modell. Die Datei enthält ein Format: Word ist ein Archiv mit Markup, Excel eine Tabelle mit Verknüpfungen zwischen Zellen, und PDF eine Ansammlung von Zeichen mit Koordinaten auf einer Seite. Das Modell arbeitet mit Text, und jemand muss diesen Text extrahieren.
Genau das macht MarkItDown. Das Repository liegt unter github.com/microsoft/markitdown und steht unter der MIT-Lizenz, du kannst es also ohne Einschränkungen verwenden. Am 18. August 2026 hat es 174,412 Sterne und 12,756 Forks; die neueste Version, 0.1.7, erschien am 29. Juli. Das Projekt ist aktiv, sein Schwerpunkt hat sich jedoch von der Entwicklung zur Wartung verlagert: Es gibt 481 offene Pull Requests, gegenüber 183, die im gesamten bisherigen Verlauf zusammengeführt wurden.
Die Entwickler beschreiben den Zweck so:
MarkItDown ist ein leichtgewichtiges Python-Tool, das Dateien verschiedener Formate in Markdown umwandelt, damit sie mit großen Sprachmodellen und verwandten Textanalyse-Pipelines verwendet werden können.
Der nächste Satz in der Beschreibung erklärt die Hälfte der Beschwerden über das Tool:
Obwohl die Ausgabe oft recht ordentlich und benutzerfreundlich aussieht, ist sie für Textanalyse-Tools gedacht und möglicherweise nicht die beste Wahl für eine originalgetreue Umwandlung von Dokumenten, die von Menschen gelesen werden sollen.
Die Ausgabe ist Rohmaterial für ein Modell. Sie wird kein schönes Dokument, und das sagt das Projekt ganz offen, gleich im ersten Abschnitt.
Die Beschreibung beantwortet direkt, warum Markdown verwendet wird: Führende Modelle „sprechen“ dieses Markup bereits und fügen es ungefragt in ihre Antworten ein, weil sie während des Trainings riesige Mengen davon gesehen haben. Das Markup ist außerdem kompakt: drei Rautenzeichen für eine Überschrift statt eines Dutzends Metadatenzeilen.
Worin unterscheidet sich MarkItDown von einem gewöhnlichen Konverter?
Das Wichtigste
Konverter wie pandoc übertragen eine Markup-Sprache in eine andere und erhalten das Layout für Menschen. pandoc akzeptiert PDF überhaupt nicht als Eingabe. MarkItDown löst das umgekehrte Problem: Inhalte aus einer Office-Datei extrahieren und so anordnen, dass ein Modell sie sofort versteht, ohne Tokens zu verschwenden. Das visuelle Layout zu erhalten, ist nicht das Ziel – darin liegt der ganze Unterschied.
Der Unterschied wird an einem Beispiel deutlich. Nimm einen Ordner mit zwanzig PDFs und versuche, sie mit pandoc zu verarbeiten. Das funktioniert nicht: pandoc kann PDFs als Ausgabe erzeugen, aber sie nicht als Eingabe lesen. Und genau diese Situation – „Ich habe einen Stapel Dokumente; gib sie dem Modell“ – kommt am häufigsten vor.
Die Autoren von MarkItDown vergleichen ihr Tool mit textract, einer Bibliothek, die einfach überall Text extrahiert. Der Unterschied ist, dass MarkItDown versucht, die Struktur zu bewahren: Überschriften, Listen, Tabellen und Links.
| Funktion | pandoc | MarkItDown |
|---|---|---|
| Liest PDFs | nein | ja, mit Einschränkungen |
| Liest Word, Excel, Präsentationen | teilweise | ja |
| Zielgruppe der Ausgabe | Menschen | Modelle |
| Hauptvorteil | Layouttreue | Struktur und geringe Zeichenanzahl |
| Installation | eigenständiges Programm | ein Python-Befehl |
Die praktische Schlussfolgerung ist einfach. Wenn du einen Artikel für die Veröffentlichung in ein Layout umwandeln musst, verwende pandoc. Wenn eine KI zwanzig Verträge verstehen soll, verwende MarkItDown.
Wie installierst du MarkItDown, ohne die erste Version zu erwischen?
Das Wichtigste
Mit Version 0.1.8 installiert der Befehl aus der Projektbeschreibung die neueste Version unter Python 3.14 und 3.12; dies wurde in acht sauberen Umgebungen erneut geprüft. Ein stilles Downgrade auf 0.0.2, die zweite Veröffentlichung in der Projektgeschichte, tritt unter Python 3.15, auf Intel-Macs mit 3.14 und auf Macs mit älteren macOS-Versionen mit 3.13 und 3.14 weiterhin auf. In diesen Fällen meldet der Installer Erfolg. Verwende daher Python 3.12, gib die benötigten Formate namentlich an und überprüfe sofort die Versionsnummer.
Zuerst der richtige Befehl, dann die Erklärung, warum er der richtige ist.
Python-Version überprüfen
Python 3.12 ist am zuverlässigsten: Die neueste MarkItDown-Version lässt sich in jeder damit getesteten Umgebung installieren. Mit
python3 --versionsiehst du, welche Version du hast. Auf Intel-Macs oder Macs mit einer älteren macOS-Version kann Python 3.13 und 3.14 still und leise ein Downgrade auslösen; Python 3.15 wird noch nicht unterstützt, wie weiter unten erklärt.Mit den angegebenen Formaten installieren
Führe
pip install 'markitdown[pdf,docx,xlsx,pptx]'aus. Die Anführungszeichen sind erforderlich, sonst interpretiert die Shell die eckigen Klammern. Füge auf einem Intel-Mac nachinstalldie Option--prefer-binaryhinzu.Sofort überprüfen, ob die Installation geklappt hat
Führe
markitdown --versionaus. Die Ausgabe solltemarkitdown 0.1.8oder höher lauten. Eine niedrigere Nummer bedeutet, dass die Installation ein Downgrade vorgenommen hat; in diesem Abschnitt wird erklärt, warum.
pip install 'markitdown[pdf,docx,xlsx,pptx]'
markitdown --version
In der Projektbeschreibung wird pip install 'markitdown[all]' als Hauptbefehl aufgeführt – damit wird alles auf einmal installiert. Am 28. September 2026, eine Woche nach der Veröffentlichung von 0.1.8, wurden in einer sauberen Umgebung auf einem Apple-Silicon-Mac mit Python 3.14.6 und 3.12.12 vier Varianten ausgeführt:
| Befehl | Installiert unter Python 3.14 | Installiert unter Python 3.12 |
|---|---|---|
pip install markitdown | 0.1.8 | 0.1.8 |
pip install 'markitdown[pdf,docx,xlsx,pptx]' | 0.1.8 | 0.1.8 |
pip install 'markitdown[all]' | 0.1.8 | 0.1.8 |
pip install 'markitdown[all]==0.1.8' | 0.1.8 | 0.1.8 |
Alle acht Installationen endeten mit „Successfully installed“, und markitdown --version gab in jedem Fall 0.1.8 zurück. Im August, als 0.1.7 die neueste Version war, installierte der dritte Befehl unter Python 3.14 Version 0.0.2, die am 8. März 2025 veröffentlicht worden war – die zweite Veröffentlichung in der Projektgeschichte. Inzwischen gibt es elf stabile Versionen von 0.0.1 bis 0.1.8 und einschließlich Vorabversionen insgesamt sechsundzwanzig.
Ursache war die Abhängigkeitskette. In Version 0.1.7 zieht das Extra [all] eine Bibliothek für YouTube-Untertitel aus einer bestimmten Veröffentlichungslinie nach, deren Versionen alle angeben, dass sie nicht mit Python 3.14 funktionieren. Der Installer lehnt sie ab und springt, da keine Version festgelegt ist, durch frühere MarkItDown-Versionen zurück, bis er eine installierbare findet. Er findet 0.0.2 und installiert sie – damit landet eine anderthalb Jahre alte Version auf deinem Rechner. In Version 0.1.8 wurde die Anforderung an die Untertitelbibliothek auf eine mit 3.14 kompatible Version angehoben, und das Downgrade hörte dort auf.
Der Mechanismus existiert weiterhin. Wenn der Installer eine benötigte Komponente für dein System nicht findet, springt er auf dieselbe Weise still zu 0.0.2 zurück. In neueren Versionen ist diese Komponente die von der Dateityperkennung verwendete onnxruntime-Engine. Auf dem Mac wird sie wie folgt bereitgestellt: für Python 3.12 ab macOS 11; für 3.13 ab macOS 13; für 3.14 nur auf Apple Silicon mit macOS 14 oder höher. Erfüllt dein Mac diese Anforderungen nicht, installiert selbst der einfache Befehl pip install markitdown Version 0.0.2. Ein Test auf einem Intel-Mac mit Python 3.14 über Rosetta ergab genau das: „Successfully installed“, keine Warnungen und intern Version 0.0.2.
Intel-Macs haben noch eine weitere Komplikation. Seit Juni 2026 wird die zum Lesen von PDFs erforderliche Kryptografiebibliothek ohne vorgefertigte Version für diesen Prozessor veröffentlicht, weshalb der Installer versucht, sie aus dem Quellcode zu bauen. Füge dem Befehl die Option --prefer-binary hinzu, dann wird die vorherige Version mit vorgefertigtem Paket verwendet. Im Test unter Python 3.13 auf Intel wurde so Version 0.1.8 installiert, und das PDF ließ sich öffnen. Die Option installiert cryptography 48.0.1, für das drei bekannte Schwachstellen dokumentiert sind: bei der PKCS#7-Entschlüsselung und der Zertifikatskettenprüfung. MarkItDown verwendet es nur zum Entschlüsseln verschlüsselter PDFs, und beim Lesen von Dokumenten werden diese Teile nicht erreicht.
Unter Python 3.15 tritt das Downgrade aus zwei Gründen auf. Version 0.1.8 erklärt nur die Versionen 3.10 bis 3.14 für unterstützt, und für 3.15 gibt es noch keine Engine. Die Versionsauflösung des Installers für 3.15 bestätigt dies: Sowohl der einfache Befehl als auch der Befehl mit Formaten installieren dieselbe Version 0.0.2.
Eine Downgrade-Warnung sieht so aus, eine Zeile für jedes Extra im Befehl:
WARNING: markitdown 0.0.2 does not provide the extra 'all'
Die Zeile geht zwischen Dutzenden Downloadzeilen unter und sagt nichts über die ersatzweise installierte Version aus. Bei einem einfachen Befehl ohne Extras gibt es nicht einmal eine Warnung. Der Abschlussbericht klingt erfreulich: „Successfully installed.“
Ohne Extras zu installieren, ist ebenfalls keine Lösung. Das Basispaket wird installiert, kann aber keine PDFs öffnen:
PdfConverter recognized the input as a potential .pdf file, but the
dependencies needed to read .pdf files have not been installed. To resolve
this error, include the optional dependency [pdf] or [all] when installing
MarkItDown. For example:
* pip install 'markitdown[pdf]'
* pip install 'markitdown[all]'
Das Tool selbst empfiehlt [all], und mit Version 0.1.8 funktioniert dieser Rat unter Python 3.14 und 3.12 wieder. Trotzdem ist es besser, Formate namentlich anzugeben: [all] fügt etwa fünfzehn weitere Pakete und ungefähr 55 Megabyte hinzu, darunter eine Azure-Bibliothek in Vorabversion und genau jene YouTube-Abhängigkeitskette, die die Installation bereits einmal zum Scheitern gebracht hat.
Der Installer verarbeitet die Azure-Vorabversion selbst. Normalerweise überspringt pip Vorabversionen, aber hier wird ausdrücklich eine Vorabversion angefordert, also installiert pip sie. Vier pip-Versionen von 23.2 bis 26.2 wurden unter Python 3.12 getestet; alle wählten Version 0.1.8 aus.
Achtung
Führe direkt nach der Installation markitdown --version aus. Das dauert fünf Sekunden und ist die einzige Möglichkeit festzustellen, ob du tatsächlich das installiert hast, was du wolltest. Die Erfolgsmeldung bedeutet hier nichts.
Im August ergab eine Neuinstallation in einer weiteren sauberen Umgebung dasselbe Ergebnis: 0.0.2 und das Wort „Successfully“.
Ein paar praktische Details solltest du im Voraus kennen.
Das Paket ist recht groß: Eine Basisinstallation belegt 143 Megabyte, mit vier Formaten sind es 303. Die größte Komponente mit 81 Megabyte ist die Dateityperkennung, die sogar bei der Basisinstallation mitinstalliert wird. Auf einem Laptop spielt das keine Rolle, bei einer Cloud-Funktion mit Größenbeschränkung schon.
Verlass dich nicht auf Mirrors als Ausweichlösung. Ein getesteter Mirror stellte einen Index bereit, und die MarkItDown-Dateien waren vorhanden, doch eine benötigte Abhängigkeit fehlte, sodass die Installation sowohl unter Python 3.14 als auch 3.12 scheiterte.
Die Installation ist nebensächlich im Vergleich zum Hauptproblem. Viel häufiger produziert eine KI Unsinn, weil das Falsche oder eine falsche Darstellung davon in ihrem Kontextfenster gelandet ist. Die Fähigkeit, vor einer Aufgabe zu entscheiden, was man einem Modell geben sollte, nennt sich Context Engineering; die Dokumentenaufbereitung gehört dazu.
Wie wandelst du dein erstes Dokument in Text um?
Das Wichtigste
Ein Befehl im Terminal: der Programmname und der Dateipfad. Standardmäßig wird das Ergebnis direkt im Fenster ausgegeben, sodass du es unmittelbar in eine Datei umleiten kannst. Es gibt drei Methoden: Ausgabe in der Konsole, Schreiben mit einer Option oder Übergabe der Datei als Stream. Für die Einbettung in eigene Skripte gibt es einen Python-Wrapper aus drei Zeilen, der auch URLs akzeptiert.
Die kürzeste Variante:
markitdown dogovor.docx
Der Text wird im Terminal ausgegeben. Um ihn in einer Datei zu speichern, gibt es zwei Möglichkeiten:
markitdown dogovor.docx -o dogovor.md
markitdown dogovor.docx > dogovor.md
Auf Mac und Linux ist der Unterschied zu vernachlässigen, unter Windows kann die Umleitung mit > jedoch das Programm zum Absturz bringen, wenn die Ausgabe kyrillischen Text enthält.
Du kannst eine Datei als Stream übergeben; in diesem Fall ist der Hinweis zur Dateiendung nützlich:
cat dogovor.docx | markitdown -x docx
Hier sind die wichtigsten Optionen aus der Hilfe von Version 0.1.8:
| Option | Funktion |
|---|---|
-o, --output | Ergebnis in eine Datei schreiben, statt es im Fenster auszugeben |
-x, --extension | Hinweis auf die Dateiendung, wenn die Datei als Stream übergeben wird |
-m, --mime-type | Hinweis auf den Content-Type |
-c, --charset | Hinweis auf die Zeichenkodierung |
-d, --use-docintel | Verarbeitung über den kostenpflichtigen Cloud-Dienst von Microsoft |
-v, --version | Version anzeigen |
Dieselbe Hilfe führt drei weitere nützliche Optionen auf, die alle getestet wurden: --list-plugins zeigt installierte Plugins an, -p aktiviert sie für einen bestimmten Lauf und --keep-data-uris belässt in das Dokument eingebettete Bilder in der Ausgabe (standardmäßig werden sie ausgeschnitten). Die übrigen Optionen betreffen Einstellungen für Microsofts Cloud-Dienste.
Der Python-Wrapper umfasst drei Zeilen:
from markitdown import MarkItDown
md = MarkItDown()
print(md.convert("ostatki.xlsx").text_content)
Derselbe Aufruf akzeptiert eine URL. Eine einfache Seite lieferte sauberen Text mit 167 Zeichen, einschließlich Überschrift und Link, ohne Menü und Fußzeile:
r = md.convert("https://example.com")
Welche Formate versteht MarkItDown, und was bedeutet das tatsächlich?
Das Wichtigste
Die Projektbeschreibung listet eine breite Palette auf: Office-Dateien, PDFs, Bilder, Audiodateien, Archive, YouTube-Links und E-Books. Drei Dinge funktionieren nicht so, wie es klingt. Die kostenlose Version kann Bilder überhaupt nicht per Texterkennung auslesen. Sprache wird an eine englischsprachige Engine gesendet. Dateien, die sich nicht parsen lassen, verschwinden ohne Warnung aus Archiven.
Eine Übersicht dessen, was behauptet wird und was es in der Praxis bedeutet.
| Format | Laut Angabe unterstützt | Was tatsächlich passiert |
|---|---|---|
| Word, Excel, Präsentationen | ja | funktioniert sauber; das ist die Stärke |
| CSV, JSON, XML, HTML | ja | funktioniert, aber bei CSV lauert eine Falle mit dem Trennzeichen |
| ja | abhängig vom Layout: einspaltiger Text wird zusammengesetzt, zweispaltiger fällt auseinander | |
| Bilder | „Metadaten und Erkennung“ | keine Erkennung, nur Metadaten oder ein kostenpflichtiges Vision-Modell |
| Audio | „Sprachtranskription“ | wird an Googles englischsprachige Engine gesendet |
| ZIP-Archive | „Inhalte durchlaufen“ | alles, was nicht geparst werden kann, verschwindet unbemerkt |
| YouTube-Links | ja | nur vollständige Links im Format '<OFFICIAL_URL>'?... |
| EPUB-E-Books | ja | funktioniert |
Drei Punkte im Detail.
Bilder. In der Beschreibung steht OCR, daher erwarten viele, dass das Programm Text aus einem Foto lesen kann. Das kann es nicht. Es liest Metadaten mithilfe eines separaten Programms namens exiftool und kann ein Bild, wenn du ein Vision-Modell mit deinem eigenen Schlüssel verbindest, zur Beschreibung dorthin senden.
Audio. Sprachtranskription ist verfügbar, aber die Sprache wird nicht mitgegeben, und die Engine erwartet standardmäßig Englisch. Außerdem wird Googles inoffizieller kostenloser Endpunkt verwendet, der auf ungefähr fünfzig Anfragen pro Tag und Schlüssel beschränkt ist.
Archive. Das Programm entpackt ZIP-Dateien, durchläuft die darin enthaltenen Dateien und hängt die Ergebnisse aneinander. Wenn eine Datei nicht geparst werden kann, wird der Fehler abgefangen und unterdrückt. Die Datei erscheint einfach nicht im Ergebnis, und du erfährst nichts davon.
Was passiert mit Dokumenten, die kyrillischen Text enthalten?
Das Wichtigste
Drei Dateien mit kyrillischem Text – ein Word-Vertrag, eine Excel-Inventarliste und eine Präsentation – wurden mit der neuesten Version verarbeitet. Der kyrillische Text und die Zahl blieben in allen drei unverändert erhalten. Probleme treten an drei Stellen auf: bei CSV-Dateien mit Semikolons, bei der Währungsformatierung in Excel-Zellen und bei der Konsolenausgabe unter Windows. Für alle drei gibt es Umgehungslösungen.
Die folgenden Dateien wurden eigens zum Testen erstellt; ihre Daten sind frei erfunden.
Die Excel-Inventarliste kam ebenso sauber heraus, wobei der Tabellenblattname zur Überschrift wurde:
## Stock
| Item | In stock | Reserved | Available |
| --- | --- | --- | --- |
| Coffee beans, kg | 420 | 38 | 382 |
| Loose-leaf tea, kg | 180 | 52 | 128 |
Die Präsentation wurde in Text umgewandelt, wobei die Foliennummern als Anmerkungen erschienen und die Folientitel zu Überschriften wurden. Auch hier ist der kyrillische Text intakt. Die pauschale Behauptung „MarkItDown versteht kein Kyrillisch“ ist falsch.
Nun zu den drei Stellen, an denen tatsächlich Probleme auftreten.
CSV mit Semikolons. Zum Vergleich wurden zwei identische Rechnungs-Exporte verarbeitet. Die Variante mit Kommas ergab eine ordentliche Tabelle mit vier Spalten. Bei Semikolons landet die ganze Zeile in einer einzigen Zelle.
Die gesamte Zeile landete in einer Zelle. Die Kodierung wurde korrekt erkannt, und es gab keinen Fehler; die Option -c hilft nicht. Das Modell erhält diese Tabelle und versteht nicht, welcher Wert der Betrag und welcher der Status ist. Exportiere erneut mit ausdrücklich gewähltem Kommatrennzeichen und korrekter Kodierung; lasse das Original unverändert. Ersetze Semikolons nicht global: Zeichen in Anführungszeichen und Dezimalkommas können zum Zellwert gehören. Ist kein neuer Export möglich, lies die Datei mit ihrem tatsächlichen Trennzeichen und schreibe eine neue CSV über einen CSV-Parser und -Writer, der Anführungszeichen und Werte erhält. Vergleiche vor der Analyse Spaltenzahl, Zeilenzahl und Kontrollsummen mit dem Ausgangsexport.
Währungsformatierung in Excel. Das Währungssymbol wird in den Anzeigeeinstellungen der Zelle gespeichert und fließt nicht in den Wert selbst ein. Die Projektbetreuer haben die Ursache bestätigt. Bei einer Preisliste oder Rechnung ist das wichtig: Das Modell sieht Zahlen, ohne zu wissen, für welche Währung sie stehen.
Windows-Konsole. Bei Dateien mit nichtlateinischen Zeichen kann das Programm abstürzen.
Der Fehlertrace zeigt die Kodierung cp1251, also die Windows-Konsole. Das Dokument selbst wird korrekt geparst; das Problem entsteht beim Ausgeben des Ergebnisses im Terminalfenster. Es gibt zwei Umgehungslösungen:
markitdown dogovor.docx -o dogovor.md
$env:PYTHONUTF8 = "1"; markitdown dogovor.docx > dogovor.md
Die erste umgeht die Konsole vollständig, die zweite lässt Python UTF-8 schreiben. Mindestens sechsmal wurden Korrekturen für das Tool selbst eingereicht: Einige Vorschläge wurden geschlossen, ohne zusammengeführt zu werden; die übrigen sind noch offen. Du musst das Problem also umgehen.
Ein viertes Symptom tritt bei PDFs auf: Zeichenfolgen wie (cid:1090) anstelle von Buchstaben. Das bedeutet, dass die Datei eine nicht standardmäßige Schrifttabelle enthält und die Zeichen nicht dekodiert werden konnten. Es bringt nichts, ein solches Dokument mit MarkItDown zu verarbeiten; du brauchst ein anderes Tool.
Warum wird ein PDF zum Durcheinander?
Das Wichtigste
Ein PDF enthält keine Struktur, sondern nur Zeichen mit Koordinaten auf der Seite. Einspaltiger Text wird halbwegs ordentlich zusammengesetzt. Zwei Spalten ergeben ein Durcheinander: Zeilen werden spaltenübergreifend verbunden, Wörter laufen ineinander und das Layout wird zu Tabellen, die es im Dokument nie gab. Überschriften in PDFs erkennt das Tool überhaupt nicht – das zeigen sowohl der Quellcode als auch unabhängige Messungen.
Zu Testzwecken wurde ein 2.16 Megabyte großes wissenschaftliches Paper mit zwei Spalten verarbeitet. Der Exit-Code war null; nach 0.9 Sekunden enthielt die Ausgabe 88,000 Zeichen, fast alle unbrauchbar. 88,000 Zeichen erwecken den Eindruck, dass alles funktioniert hat. Bis du die Datei öffnest:
| | Hybrid | | OCR-LLM | | Framework |
| --- | ------ | -------- | ----------- | --- | ---------- |
...
Informationextractionfromcopy-heavydoc-
5202 tcO 11 ]LC.sc[ 1v83101.0152:viXra
Drei Dinge gingen gleichzeitig schief. Das zweispaltige Layout wurde zu Tabellen, die im Paper nicht vorkommen. Wörter liefen ohne Leerzeichen ineinander. Die letzte Zeile ist eine vertikale Seitenleiste, die rückwärts extrahiert wurde.
Dann kam der komische Teil. Das Test-Paper erwies sich als genau jene Arbeit, in der MarkItDown gemessen und mit anderen Tools verglichen wurde. Das Tool wandelte den Absatz, der seine eigenen Messwerte beschreibt, in Folgendes um:
cues. This name-matching error could be miti- OCRpreprocessingoverhead(0.056s),whileDo-
gatedthroughpromptengineeringtoprovidemore clingandMinerUadoptmorecomputationallyin-
explicit matching instructions or fine-tuning the tensive strategies with OCR latencies of approxi-
Die linke und rechte Spalte werden zeilenweise zusammengefügt. Ein Modell würde so eine halbe Satzhälfte aus einem Absatz und die andere Hälfte aus einem anderen lesen.
Die Ursache ist technisch und einfach. Word speichert ausdrücklich „das ist eine Überschrift“ und „das ist eine Tabellenzelle“. Ein PDF speichert „das ist ein Zeichen“ und „das sind seine Koordinaten auf der Seite“. Struktur anhand von Koordinaten zu rekonstruieren ist eine eigene, schwierige Aufgabe, und MarkItDown versucht es kaum. Im PDF-Quellcode gibt es keine Überschriftenerkennung: Wird eine Seite nicht als Formular oder Tabelle erkannt, wird das gesamte Dokument einer einfachen Textextraktion unterzogen.
Nutzer melden das regelmäßig im Repository des Projekts, auch bei wissenschaftlichen Papern und Tabellen.
Das Tool findet in PDFs keine einzige Überschrift, genau wie der Quellcode zeigt.
Die Behauptung „MarkItDown erreicht eine Genauigkeit von 82 %“ kursiert online ohne Methodik. Die Suche nach der ursprünglichen Quelle führt ins Leere: Die Linkkette endet bei einer Seite, die sich nicht laden lässt. Das kann nicht als Messwert gelten.
Was passiert mit einem eingescannten Vertrag?
Das Wichtigste
Nichts. Die Datei wird verarbeitet, das Programm meldet Erfolg, und die Ausgabe enthält null Zeichen. Keine Fehlermeldung, keine Warnung. Dies wurde zweimal mit einem aus einem Bild erstellten PDF und separat mit dem Bild selbst getestet – das Ergebnis war dasselbe. Das Tool extrahiert Text, der bereits als Text in der Datei gespeichert ist; die kostenlose Version kann keine Texterkennung.
Dieses Verhalten ist gefährlicher als die anderen, weil es nicht wie ein Fehler aussieht.
Zu Testzwecken wurde ein PDF aus einem Bild mit Text erstellt – genau das erhältst du, wenn ein Vertrag fotografiert oder eingescannt wird. Der Durchlauf wurde wiederholt, um Zufall auszuschließen:
| Eingabe | Exit-Code | Zeichen in der Ausgabe | Fehlermeldung |
|---|---|---|---|
| PDF aus Bild, Durchlauf 1 | 0 | 0 | keine |
| PDF aus Bild, Durchlauf 2 | 0 | 0 | keine |
| PNG-Bild direkt | 0 | 1 (Zeilenumbruch) | keine |
Zweimal hintereinander null Zeichen und null Fehler. Ein Exit-Code von null bedeutet „alles ist gut gegangen“, und jedes Skript, das den Erfolg anhand des Exit-Codes prüft, zählt das Dokument als verarbeitet. Dann geht die leere Ausgabe an das Modell, das Modell sieht nichts und fängt an, sich eine Antwort aus der Luft zu greifen.
Achtung
Wenn du Dokumente in Stapeln verarbeitest, prüfe die Länge der Ausgabe. Der Exit-Code sagt dir nichts: Eine leere Datei mit Exit-Code null sieht bei einem Scan genauso aus.
Es gibt zwei Umgehungslösungen, und beide sind kostenpflichtig. Die erste ist die Option -d, die das Dokument an Microsofts Cloud-Erkennungsdienst sendet; im Hilfetext der Option steht ausdrücklich, dass ein gültiger Dienstendpunkt erforderlich ist. Die zweite ist ein separates Zusatzpaket, das Seiten mithilfe deines Schlüssels an ein Vision-Modell sendet, sodass du den Modellanbieter pro Seite bezahlst. Seit April 2026 wird in einer offenen Diskussion über die zweite Methode berichtet, dass bei mehrseitigen Scans nur die erste Seite verarbeitet wird.
Du kannst auch ein Erkennungsmodell auf deinem eigenen Rechner ausführen, doch das ist ein eigenes Projekt.
Für ein einzelnes Dokument ist es einfacher, es zu öffnen und den Text von Hand zu kopieren. Bei fortlaufenden Scans brauchst du ein Tool mit integrierter Erkennung.
Kannst du die Datei einfach zu einem Online-Konverter hochladen?
Das Wichtigste
Technisch gesehen ja; es gibt viele Websites mit diesem Namen. Keine davon ist jedoch mit Microsoft verbunden. Die Behauptung „Die Datei verlässt nie deinen Browser“ lässt sich mit einem Klick überprüfen und stimmt nicht immer. Bevor du einen Vertrag oder einen Export mit Namen von Personen hochlädst, solltest du selbst prüfen, wohin die Datei geht.
„MarkItDown online“ ist einer der häufigsten Suchvorschläge, und es gibt Websites, die es anbieten. Microsofts Originaltool hat überhaupt keine Website; es ist nur als Programm verfügbar, das du selbst installierst. Alles mit einem ähnlichen Namen, das sich im Browser öffnen lässt, stammt von jemand anderem.
Du kannst einen solchen Dienst in einer Minute überprüfen: Öffne in den Entwicklertools den Tab für Netzwerkanfragen, lade irgendeine harmlose Datei hoch und prüfe, ob sie an einen Server gesendet wird. Ist das der Fall, ist die Behauptung, die Verarbeitung erfolge im Browser, falsch – ganz gleich, wie überzeugend sie in den FAQ dargestellt wird.
Achtung
Ein Vertrag, eine Rechnung oder ein Export mit Namen von Mitarbeitenden enthält personenbezogene Daten. Wenn du eine solche Datei an eine Website eines Drittanbieters sendest, bist du dafür verantwortlich, dass du sie übermittelt hast. Ein lokales Tool vermeidet dieses Problem: Die Datei verlässt deinen Rechner nicht.
Deshalb wird MarkItDown dort geschätzt, wo Dokumente nicht nach außerhalb der Organisation gesendet werden dürfen. In einer Diskussion schilderte jemand die eigene Situation: Beliebige Programme waren auf dem Arbeitslaptop verboten, Python-Bibliotheken jedoch erlaubt, und das lokale Tool stellte sich als einzige verfügbare Option heraus.
Wie viel spart MarkItDown tatsächlich?
Das Wichtigste
Der Hauptvorteil besteht darin, dass das Modell das Dokument überhaupt verstehen kann. Außerdem gibt es einen Größenunterschied: Vergleicht man den Umfang des Markups in Office-Dateien mit der Größe des extrahierten Textes, ergibt sich eine Reduzierung um das Fünf- bis Siebenfache. Außerdem wird alles entfernt, was das Modell nicht lesen muss: Beschreibungen von Schriftarten, Seitenrändern und Zellfarben.
Eine Office-Datei ist als Archiv mit Markup strukturiert. Entpackt man die drei Testdateien und vergleicht die Größe des Inhaltsteils mit der Ausgabe, ergibt sich Folgendes:
| Datei | Markup im Inneren | Extrahierter Text | Um wie viel kleiner |
|---|---|---|---|
| Word-Vertrag | 3,701 Bytes | 711 Bytes | 5.2 |
| Excel-Tabelle | 1,561 Bytes | 262 Bytes | 6.0 |
| Präsentation | 2,203 Bytes | 296 Bytes | 7.4 |
Die Dateien sind klein; bei größeren Dateien unterscheiden sich die Verhältnisse, und es gibt keine allgemeingültige Einsparungszahl. Wenn in Vergleichsartikeln runde Zahlen auftauchen, frage nach der Methodik.
Auch die Entwickler sprechen von Einsparungen: In der Projektbeschreibung steht ausdrücklich, dass Markdown-Konventionen sehr sparsam mit Zeichen umgehen. Das stimmt, sollte aber nicht das Hauptargument sein. Der Unterschied zwischen „Das Modell bekam dreitausend Zeichen statt fünfzehntausend“ und „Das Modell bekam eine klare Struktur statt eines Durcheinanders“ liegt in einer ganz anderen Größenordnung. Das Erste spart Geld; das Zweite entscheidet darüber, ob die Antwort Sinn ergibt.
Wenn dir der Kontextverbrauch Sorgen bereitet, wird das separat behandelt: Wohin die Tokens in Claude gehen und wie viele in jedem Tarif enthalten sind.
Claude Code MCP einrichten: MarkItDown für Dokumente verbinden
Das Wichtigste
Das Projekt bietet ein separates Paket, das mit einem einzigen Befehl einen MCP-Server startet: Dateipfad angeben, Text zurückbekommen. Im September 2026 wurde das Paket endlich auf 0.0.1a7 aktualisiert, doch der Build ist weiterhin eine Vorabversion und sendet standardmäßig Telemetriedaten an Microsoft. Der folgende Befehl verbindet es über uv, legt die Version fest, verwendet Python 3.12 und deaktiviert die Telemetrie. Es gibt keine Authentifizierung, und laut eigener Dokumentation kann der Server jede Datei lesen, auf die der Benutzer Zugriff hat, der ihn gestartet hat.
MCP ist eine Möglichkeit, einer KI ein externes Tool bereitzustellen, das sie selbst nutzen kann. Einen Überblick über den Mechanismus und weitere Server findest du im Test von MCP-Servern für Claude Code.
Der MarkItDown-Server stellt genau ein Tool bereit: ein Dokument in Text umwandeln. Es akzeptiert einen lokalen Dateipfad, eine Seiten-URL oder direkt in die Anfrage eingebettete Daten.
Mit einem einzigen Befehl und festgelegter Serverversion verbindest du es mit Claude Code. Du brauchst den Paketmanager uv:
claude mcp add --scope user --env 'ORT_DISABLE_TELEMETRY=1' --env 'UV_PYTHON=3.12' --transport stdio markitdown -- uvx markitdown-mcp@0.0.1a7
claude mcp list
Die Ausgabe des zweiten Befehls sollte für markitdown „Connected“ anzeigen. Beim ersten Start werden etwa siebzig Pakete heruntergeladen, was bis zu einer Minute dauert; danach startet der Server in ein bis anderthalb Sekunden.
Hier sind die Einschränkungen, jeweils manuell geprüft.
Build 0.0.1a7 wurde am 14. September 2026 veröffentlicht. Zuvor hatte der Server über ein Jahr lang auf 0.0.1a4 vom Mai 2025 festgesessen. Auch die neueste Versionsnummer bezeichnet weiterhin eine Vorabversion.
Die Installation funktioniert nicht auf jedem System mit einer aktuellen Python-Version. Die benötigte onnxruntime-Engine ist für Python 3.14 auf dem Mac nur für Apple Silicon mit macOS 14 oder höher verfügbar. Deshalb schlägt die Installation auf Intel-Macs und unter macOS 13 oder älter mit Python 3.14 fehl. Auf einem Apple-Silicon-Mac wurde der Server mit Python 3.14, 3.13 und 3.12 ausgeführt und auf allen drei Versionen installiert. Der Befehl verwendet UV_PYTHON=3.12: Vorgefertigte Pakete für 3.12 gibt es für Windows, Linux und Apple-Silicon-Macs; ist diese Python-Version nicht vorhanden, lädt uv sie herunter. Auch für Intel-Macs gibt es eine Einschränkung: uv baut die Kryptografiebibliothek aus dem Quellcode, da es seit Juni 2026 kein vorgefertigtes Paket für Intel gibt. Die Installation dauert länger und kann fehlschlagen.
Welche MarkItDown-Version installiert wird, hängt von der uv-Version ab. Seit MarkItDown 0.1.6 erfordert das Extra [all] eine Azure-Bibliothek in Vorabversion: uv 0.12 und höher installiert sie und die neueste MarkItDown-Version 0.1.8, ältere uv-Versionen führen ein Downgrade auf 0.1.5 durch. Mit uv --version kannst du deine uv-Version überprüfen.
Zwei Dinge werden vom Rechner nach außen gesendet. Das erste ist Telemetrie: Auf Mac und Linux sendet die im Server enthaltene onnxruntime-Engine sie standardmäßig an Microsoft. Die Variable ORT_DISABLE_TELEMETRY=1 im Befehl deaktiviert sie. Im Test verband sich der Server ohne diese Variable mit Microsofts Telemetrie-Endpunkten. Mit gesetzter Variable gab es keine Verbindungen, während Dateien von der Festplatte verarbeitet wurden.
Das Zweite ist Audio. Der Server sendet WAV-, MP3-, M4A- und MP4-Dateien über gewöhnliches HTTP ohne Verschlüsselung zur Transkription an Googles Spracherkennungsdienst. Aufnahmen von Gesprächen mit Kundinnen und Kunden sollte man besser nicht dorthin senden.
Ein großes Dokument passt nicht durch den Server. In einer offenen Diskussion wird von einer Serverantwort mit 51,000 Tokens berichtet, die an eine Grenze von 25,000 Tokens stieß; das Tool teilt Dateien nicht in Abschnitte auf.
Und schließlich die Sicherheit. In der eigenen Dokumentation des Pakets steht ausdrücklich:
Der Server unterstützt keine Authentifizierung und läuft mit den Berechtigungen des Benutzers, der ihn gestartet hat. Mit dem Konvertierungstool lässt sich jede Datei lesen, auf die der Serverbenutzer zugreifen kann, ebenso wie alle Daten im Netzwerk.
Anders gesagt: Ein Agent mit diesem Tool kann alles lesen, was du lesen kannst. Für die Arbeit auf dem eigenen Rechner ist das in Ordnung. Du darfst den Server weder öffentlich zugänglich machen noch einem nicht vertrauenswürdigen Agenten überlassen.
Achtung
Die Projektdokumentation enthält keine spezielle Konfiguration für Claude Code – beschrieben werden nur Claude Desktop und der Start in einem Container. Wenn du online eine fertige Konfiguration findest, die als „aus der offiziellen Dokumentation“ für Claude Code bezeichnet wird, weißt du nun: Eine solche Konfiguration gibt es im Repository nicht.
Für die regelmäßige Arbeit ist es einfacher, das Programm mit einem Befehl aufzurufen und den resultierenden Text im Projekt abzulegen. Die Datei liegt dann neben den übrigen Materialien, wo das Modell selbstständig darauf zugreifen kann.
Wann ist es ehrlicher, ein anderes Tool zu verwenden?
Das Wichtigste
Die Regel ist einfach: Ist die Struktur bereits in der Datei gespeichert, verwende MarkItDown – es ist das schnellste und kostenlos. Muss die Struktur aus einem Bild der Seite rekonstruiert werden, verwende ein Tool mit Layoutmodellen. Docling bewältigt Tabellen und komplexe Layouts, MinerU Formeln und mehrere Spalten, und kostenpflichtige Cloud-Dienste helfen, wenn keine Zeit zum Herumprobieren bleibt.
Ein aufgabenbasierter Vergleich; GitHub-Sterne haben damit nichts zu tun:
| Tool | Stärke | Womit du bezahlst |
|---|---|---|
| MarkItDown | Office-Dateien, Geschwindigkeit, kostenlos | kann komplexe PDFs oder Scans nicht verarbeiten |
| Docling | Tabellen und Layouts mit spezialisierten Modellen | Dutzende Sekunden pro Dokument |
| MinerU | mehrere Spalten, Formeln, dichte Tabellen | schwierigere Installation |
| Marker | hohe Genauigkeit, Formeln, Illustrationen | benötigt eine Grafikkarte, und seine Lizenz beschränkt die Nutzung zu Einnahmezwecken |
| unstructured | gibt die Dokumentstruktur in Abschnitten mit Beschreibungen zurück | Ausgabe ist schwieriger zu verwenden |
| Cloud-Parser | keine Einrichtung | Kosten und Übertragung des Dokuments vom eigenen Rechner weg |
Bei Marker gibt es ein Detail, das Vergleichsartikel auslassen. Seit Juli 2026 steht der Code selbst unter einer freizügigen Lizenz, die Modellgewichte jedoch unter einer separaten Lizenz mit einer Schwelle: Die Nutzung ist kostenlos, wenn dein Unternehmen im Vorjahr weder fünf Millionen Dollar Umsatz überschritten noch dieselbe Summe an Finanzmitteln eingeworben hat. Eine weitere Klausel verbietet die Nutzung für alle, die ein Konkurrenzprodukt entwickeln. Für die meisten Leser ist das unerheblich; für ein wachsendes Unternehmen ist es jedoch ein Grund, vor der Einführung die Lizenz zu lesen.
Daraus ergibt sich ein praktischer Ablauf in vier Schritten:
- Lass alles durch MarkItDown laufen – es ist kostenlos und sofort fertig.
- Öffne das Ergebnis und prüfe seine Größe.
- Ergibt der Text Sinn, ist die Aufgabe erledigt; mehr ist nicht nötig.
- Ist die Ausgabe ein Durcheinander oder leer, verarbeite genau diese Datei mit einem leistungsfähigeren Tool.
So fallen Zeitaufwand und Komplexität nur bei Dokumenten an, die sie wirklich benötigen.
Wie baust du MarkItDown in deinen Arbeitsablauf ein?
Das Wichtigste
Anthropic selbst formuliert die Regel in den Beschreibungen seiner Skills: Verwende dieses Tool, um ein Dokument zu lesen. Plane damit keine Änderungen. Hier sind drei Szenarien, in denen es sich schon beim ersten Durchlauf lohnt: einen Stapel ähnlicher Dokumente parsen, einmalig dauerhafte Referenzmaterialien zu einem KI-Projekt hinzufügen und einen Export aus einem Buchhaltungssystem für die Analyse vorbereiten.
Anthropic verwendet MarkItDown in eigenen vorgefertigten Skills für die Arbeit mit Office-Dateien. Diese Skills formulieren die Grenze, die du vollständig übernehmen solltest:
Ein Tabellenblatt schnell prüfen: markitdown file.xlsx. Zellkoordinaten sind nicht verfügbar, plane deshalb keine Änderungen auf dieser Grundlage.
Zell- und Seitenverweise gehen im Text verloren, daher kannst du damit keine Änderungen an der Quelldatei vornehmen. Hier sind drei Szenarien.
Ein Stapel ähnlicher Dokumente – Abnahmeprotokolle, Rechnungen, Formulare, Anträge. Lege sie in einen Ordner und verarbeite sie mit einer einzigen Zeile:
for f in dokumenty/*.docx; do markitdown "$f" -o "text/$(basename "$f" .docx).md"; done
Gib dem Modell anschließend den Ordner mit den Textdateien und bitte es, die relevanten Informationen in einer Tabelle zusammenzustellen. Das funktioniert mit digitalen Dateien; Scans scheitern, und du erkennst sie sofort an ihrer Größe von null.
Dauerhafte Projektmaterialien – Preislisten, Vertragsvorlagen, Richtlinien, Leistungsbeschreibungen. Wandle sie einmal in Text um und lege sie neben dem Projekt ab. Das Modell kann sie dann bei jeder Anfrage lesen, sodass du die Dateien nicht jedes Mal an die Unterhaltung anhängen musst. Der Artikel über das Hochladen von Dateien in Claude erklärt, wie sich das vom Hochladen einer Datei im Chat unterscheidet.
Ein Export aus einem Buchhaltungssystem. Ein Excel-Export aus Buchhaltungssoftware oder einem Bankkonto wird in einem Drittel einer Sekunde zu einer Tabelle, und das Modell kann damit ohne weitere Umwege rechnen. Prüfe den CSV-Export beziehungsweise das Einlesen mit tatsächlichem Trennzeichen, korrekten Anführungszeichen und Kodierung. Vergleiche Zeilen, Spalten und Kontrollsummen, bevor du die Daten an das Modell gibst. Normalisiere Trennzeichen nicht per Suchen und Ersetzen. Erfasse außerdem die Währung ausdrücklich: Ein nur im Excel-Zellenformat gespeichertes Symbol geht bei der Extraktion verloren.
Große PDFs im Terminal zu verarbeiten, steht nicht auf dieser Liste. Das ist eine separate Frage des Kontextverbrauchs, behandelt im Artikel über PDFs in Claude Code ohne Tokenverlust. Wenn du gerade erst deinen Arbeitsbereich einrichtest, beginne mit der Installation von Claude Code.
Um sofort loszulegen, führe pip install 'markitdown[pdf,docx,xlsx,pptx]' aus, verarbeite den ersten Word-Vertrag, den du findest, und prüfe die Größe des Ergebnisses. In einer halben Minute weißt du, ob es mit deinen Dateien funktioniert.
Häufig gestellte Fragen
Ist MarkItDown kostenlos?
Ja. Es steht unter der MIT-Lizenz, die keine Einschränkungen für die kommerzielle Nutzung vorsieht. Bezahlen musst du nur für zwei optionale Methoden: die Cloud-Erkennung durch Microsoft über die Option -d und Bildbeschreibungen durch ein Vision-Modell mit deinem eigenen Schlüssel. Alles andere läuft kostenlos auf deinem Rechner.
Werden Daten an einen Server gesendet?
Bei der gewöhnlichen Umwandlung von Office-Dateien und PDFs nicht – alles wird lokal verarbeitet. Es gibt drei Ausnahmen: Die Audiotranskription läuft über Googles Dienst, die Option -d sendet das Dokument an Microsofts Cloud, und Bildbeschreibungen gehen an ein Modell, das deinen Schlüssel verwendet. Keine dieser Methoden ist automatisch aktiviert.
Warum finde ich nach der Installation den Befehl markitdown nicht?
Meist wurde das Programm in einer Umgebung installiert, die nicht in deinem Suchpfad liegt. Überprüfe den vollständigen Pfad zur Datei innerhalb der Umgebung. Ein weiterer häufiger Fall: Du hast das Programm für eine Python-Version installiert, rufst es aber mit einer anderen auf. Noch eine Falle: Unter Python-Versionen vor 3.10 wird ohne Installationsfehler ein leeres Paket installiert.
Was soll ich tun, wenn statt Buchstaben (cid:1090) und ähnliche Zeichenfolgen erscheinen?
Das ist eine nicht dekodierte Schrifttabelle innerhalb des PDFs. Einstellungen helfen nicht; du musst die Datei mit einem anderen Tool wie Docling oder MinerU verarbeiten. Bei einem einzelnen Dokument geht es schneller, den Text manuell aus einem Viewer zu kopieren.
Kann ich einen ganzen Ordner mit Dateien auf einmal verarbeiten?
Es gibt keinen eigenen Ordnermodus, aber mit einer einzeiligen Terminal-Schleife geht es: for f in papka/*.docx; do markitdown "$f" -o "$f.md"; done. Alternativ kannst du alles in eine ZIP-Datei legen und das Archiv übergeben: Das Programm verarbeitet dessen Inhalte, aber Dateien, die sich nicht parsen lassen, verschwinden ohne Warnung.
Wie unterscheidet sich die Ausgabe vom manuellen Kopieren des Textes?
Sie bewahrt die Struktur. Beim Kopieren erhältst du flachen Text, in dem eine Überschrift nicht von einem Absatz zu unterscheiden ist und eine Tabelle auseinanderfällt. MarkItDown erhält Überschriften, Listen und Tabellen, sodass das Modell erkennen kann, was was ist. Bei einem kurzen Dokument ist der Unterschied gering, bei zwanzig Dokumenten jedoch entscheidend.
Kann MarkItDown passwortgeschützte Dokumente öffnen?
Nein. Eine passwortgeschützte Datei lässt sich nicht öffnen, und du kannst dem Programm das Passwort nicht übergeben. Du musst den Schutz vorher in der Anwendung entfernen, mit der er eingerichtet wurde.
Quellen
- MarkItDown – Projekt-Repository auf GitHub
- MarkItDown auf PyPI – Versionen und Veröffentlichungsdaten
- markitdown-mcp – Beschreibung des MCP-Servers
- Anthropic Skills – Einsatz von MarkItDown für Tabellen
- Docling – Dokumentparsing mit Layoutmodellen
- MinerU – Parsing komplexer PDF-Layouts
- Marker – Lizenz für Modellgewichte
- pandoc – Markup-Konverter
Wenn du bereit bist, lerne Ailoot kennen.
Weitere Details
Fragen und Antworten
Kann ich eine Semikolon-CSV reparieren, indem ich jedes Semikolon durch ein Komma ersetze?
Nein. Text in Anführungszeichen und Dezimalformate können solche Zeichen enthalten. Exportiere erneut mit dem gewünschten Trennzeichen oder verwende CSV-Parser und -Writer mit festgelegtem Trennzeichen, Kodierung und Anführungszeichen. Prüfe Spalten, Zeilen und Kontrollsummen gegen das Original.
Belegt Exitcode null eine brauchbare PDF-Konvertierung?
Nein. Das Scanbeispiel des Artikels lieferte ohne Fehler eine leere Ausgabe; ein komplexes PDF erzeugte unlesbaren Text. Öffne das Ergebnis und prüfe Länge und Struktur. Bei leerem oder zerstückeltem Text brauchst du ein Layout- oder Erkennungstool.