Lokale Skripte
PDF in Markdown mit Python
Aktualisiert am · pdftomd.tools-Team
Wer PDF in Markdown mit Python umwandelt, erledigt das in einem Skript auf dem eigenen Rechner. Dieser Ratgeber zeigt getestete Snippets für zwei Open-Source-Bibliotheken und ein Browser-Tool für die Tage, an denen du lieber nichts installierst.

Kein Python zur Hand? Das Browser-Tool unten erledigt dieselbe Aufgabe von PDF zu Markdown, ohne Installation. Datei mit Textebene ablegen und das Ergebnis kopieren.
Quell-PDF
PDF hier ablegen oder klicken zum Auswählen
Nur PDFs mit Text. Scans bräuchten OCR, und das kann dieses Tool nicht.
Markdown-Vorschau
Hier erscheint das Markdown.
PDF in Markdown mit Python: Einrichtung in vier Schritten
Eine lokale Pipeline, von der Installation bis zu den Ausgabedateien.
01Umgebung anlegen
Erstelle mit python -m venv .venv eine virtuelle Umgebung und aktiviere sie, damit die Bibliotheken nicht in deiner System-Installation landen.
Snippets ansehen
02Eine Bibliothek installieren
Führe pip install pymupdf4llm für allgemeine Markdown-Ausgabe aus oder pip install pdfplumber, wenn es vor allem um Tabellen geht.
Bibliothek wählen
03Skript ausführen
Kopiere ein Snippet von dieser Seite in eine .py-Datei und richte es auf dein Dokument. Jeder Lauf schreibt eine .md-Datei, die du öffnen kannst.
Snippet kopieren
04Ausgabe prüfen
Vergleiche die .md-Datei mit dem Original und entferne verirrte Kopf- und Fußzeilen, bevor der Text irgendwo weiterverarbeitet wird.
Im Browser vergleichen
Welche Python-Bibliothek für PDF zu Markdown?
Die eine beste Bibliothek, um PDF in Markdown mit Python umzuwandeln, gibt es nicht; jede wägt Geschwindigkeit, Lizenz und Tabellen anders ab. pymupdf4llm baut auf PyMuPDF auf, liest das Layout und schreibt direkt Markdown, einschließlich Überschriften und linierter Tabellen. Das macht es zu einem sinnvollen Standard für Notizen und Retrieval. pdfplumber bietet tieferen Zugriff auf Zeichen, Linien und Tabellenzellen und passt deshalb zu Skripten, denen es vor allem um Tabellendaten geht.
Beides sind Open-Source-Projekte von Drittanbietern, keine Produkte dieser Website. Für ein paar Dokumente erledigt das Browser-Tool auf dieser Seite einen ähnlichen Durchgang ohne Installation. Für Hunderte Dateien nach Zeitplan ist ein lokales Python-Skript die bessere Wahl.
- pymupdf4llm: PDF zu Markdown mit einem Aufruf
- pdfplumber: genauer Zugriff auf Zellen linierter Tabellen
- Browser-Tool: keine Installation, kein Upload
Grenzen, die jeder Ansatz teilt
Keine dieser Optionen liest Scans von sich aus: Das Browser-Tool hat keine OCR, und die Bibliotheken oben brauchen für reine Bildseiten einen eigenen OCR-Schritt. Verbundene Zellen, gedrehte Tabellen und zweispaltige Layouts sind für jede Python-Bibliothek und für unser Browser-Tool schwierig, prüfe Tabellen also von Hand. Im Browser-Tool brauchen randlose Tabellen mindestens drei Zeilen, und die erste Zeile wird immer zur Kopfzeile.

Python-Snippets für PDF in Markdown
Getestet mit pymupdf4llm 1.28 und pdfplumber 0.11. Eins kopieren und lokal ausführen.
Eine Datei mit pymupdf4llm
Drittanbieter · AGPLLayoutbewusst und schnell: Die Ausgabe behält Überschriften und linierte Tabellen. PyMuPDF steht unter AGPL; prüfe die Bedingungen, bevor du es in ein geschlossenes Produkt einbaust.
# pip install pymupdf4llm
import pathlib
import pymupdf4llm
md = pymupdf4llm.to_markdown("report.pdf")
pathlib.Path("report.md").write_text(md, encoding="utf-8")
Tabellen mit pdfplumber
Drittanbieter · MITAm besten für linierte Tabellen. Standardmäßig findet es nur Tabellen mit gezeichneten Linien; randlose Raster brauchen eigene Einstellungen. Die Hilfsfunktion schreibt jede Tabelle als Pipe-Tabelle.
# pip install pdfplumber
import pdfplumber
def table_to_md(rows):
rows = [[(c or "").replace("|", "\\|").strip() for c in r] for r in rows]
head, body = rows[0], rows[1:]
lines = ["| " + " | ".join(head) + " |", "|" + " --- |" * len(head)]
lines += ["| " + " | ".join(r) + " |" for r in body]
return "\n".join(lines)
with pdfplumber.open("invoice.pdf") as pdf:
for page in pdf.pages:
for table in page.extract_tables():
print(table_to_md(table), end="\n\n")
Ein ganzer Ordner mit pymupdf4llm
Drittanbieter · AGPLEine Schleife: Sie liest jede Datei im Ordner pdfs und schreibt pro Eingabe eine .md-Datei.
# pip install pymupdf4llm
import pathlib
import pymupdf4llm
out = pathlib.Path("markdown")
out.mkdir(exist_ok=True)
for pdf in sorted(pathlib.Path("pdfs").glob("*.pdf")):
md = pymupdf4llm.to_markdown(str(pdf))
(out / f"{pdf.stem}.md").write_text(md, encoding="utf-8")
print("wrote", out / f"{pdf.stem}.md")
Wo ein Python-Skript passt
Drei Aufgaben, bei denen sich Skripten lohnt.

Retrieval-Pipelines
Lass vor dem Indexieren ein Skript laufen, das PDF in Markdown umwandelt, teile die Ausgabe an den Überschriften und speichere jeden Abschnitt.
LLM-Ratgeber lesen
Analyse im Notebook
Extrahiere Tabellen mit pdfplumber in einem Notebook, gleiche die Zeilen mit dem Original ab und bewahre die Ausgabe neben deiner Analyse auf.
Snippets ansehen
Tabellenextraktion
Geht es vor allem um Zahlen, macht die Hilfsfunktion oben aus linierten Tabellen Pipe-Tabellen, den Fließtext kannst du dir sparen.
Browser-Tool ausprobieren
Skript oder Browser: deine Dateien bleiben lokal
Ein lokales Skript schickt deine Dateien nirgendwohin, und unser Browser-Tool auch nicht: Die Umwandlung von PDF zu Markdown läuft mit pdf.js in der Seite, und die Datei erreicht unsere Server nie.

Markdown wieder als Seiten rendern
Nach einem Python-Lauf brauchst du vielleicht eine druckbare Fassung. Die Gegenseite rendert Markdown im Browser als A4-Seiten.
Verwandte Tools
Weitere Seiten rund um PDF zu Markdown.
Lieber ohne Einrichtung? PDF hier in Markdown umwandeln
Dokument ablegen und sauberen Text kopieren, oder die Snippets oben auf deinem Rechner ausführen. Kostenlos und privat.
Datei umwandelnQuellen
- pymupdf4llm to_markdown() reference — PDF4LLM docs
- PyMuPDF (AGPL-3.0) — GitHub
- pdfplumber (MIT) — GitHub
- pdf.js — Mozilla
FAQ
Fragen zu Python-Optionen, Lizenzen und Grenzen.
Was ist der einfachste Weg, PDF in Markdown mit Python umzuwandeln?
pymupdf4llm: mit pip installieren und to_markdown auf eine Datei aufrufen. Du bekommst Markdown mit Überschriften, Listen und linierten Tabellen.
Brauche ich ein Konto oder einen Schlüssel?
Nein. Die Bibliotheken werden mit pip installiert und laufen offline, und das Browser-Tool braucht kein Konto. Für Skripte nimm eine lokale Python-Bibliothek.
Sind pymupdf4llm und pdfplumber von euch?
Nein. Beides sind Open-Source-Projekte von Drittanbietern. pymupdf4llm und PyMuPDF stehen unter AGPL, pdfplumber unter MIT.
Kann ein Python-Skript Scans lesen?
Nicht von allein. Reine Bildseiten brauchen zuerst einen OCR-Schritt. Unser Browser-Tool hat auch keine OCR und warnt dich, wenn eine Datei gescannt wirkt.
Wie behalte ich Tabellen, wenn ich PDF in Markdown umwandle?
pymupdf4llm schreibt linierte Tabellen als Pipe-Tabellen; pdfplumber findet sie, und die Hilfsfunktion wandelt sie um. Randlose Tabellen brauchen bei beiden Feintuning.
Ist das Browser-Tool dasselbe wie diese Bibliotheken?
Nein. Es nutzt pdf.js und eigene Layout-Regeln, die Ausgabe kann sich also unterscheiden. Es braucht keine Installation und passt für eine Handvoll Dateien.
Lädt ein Python-Skript meine Dateien hoch?
Nein. Lokale Skripte laufen auf deinem Rechner, und das Browser-Tool hier verarbeitet Dateien ohne Upload.