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.

Dokument läuft durch einen Code-Editor und kommt als Markdown-Datei heraus

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.

Läuft im Browser · kein Upload

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.
Einrichtung

PDF in Markdown mit Python: Einrichtung in vier Schritten

Eine lokale Pipeline, von der Installation bis zu den Ausgabedateien.

  1. Datei wird auf eine Upload-Fläche gezogen
    01

    Umgebung anlegen

    Erstelle mit python -m venv .venv eine virtuelle Umgebung und aktiviere sie, damit die Bibliotheken nicht in deiner System-Installation landen.

    Snippets ansehen
  2. Textstücke werden zu geordneten Zeilen gruppiert
    02

    Eine 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
  3. Markdown-Vorschau mit Überschriften und Listen
    03

    Skript 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
  4. Markdown- und Dokument-Symbole mit Pfeilen
    04

    Ausgabe 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
Optionen

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.

Browser oder SkriptVergleich
Upload-Fläche mit Schloss neben einem Terminal mit Zahnrad
Links das Browser-Tool ohne Einrichtung; rechts ein Python-Skript für automatisierte Aufgaben.
Snippets

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 · AGPL

Layoutbewusst 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 · MIT

Am 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 · AGPL

Eine 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")
Einsatzzwecke

Wo ein Python-Skript passt

Drei Aufgaben, bei denen sich Skripten lohnt.

Lokal zuerst
Lokale Verarbeitung im Browser

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.

Skripte laufen auf deinem RechnerBrowser-Tool lädt nichts hochOpen-Source-Optionen
Andere Richtung
Pfeil in beide Richtungen zwischen Markdown- und Dokument-Symbol

Markdown wieder als Seiten rendern

Nach einem Python-Lauf brauchst du vielleicht eine druckbare Fassung. Die Gegenseite rendert Markdown im Browser als A4-Seiten.

Werkzeuge

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 umwandeln

Quellen

  1. pymupdf4llm to_markdown() reference — PDF4LLM docs
  2. PyMuPDF (AGPL-3.0) — GitHub
  3. pdfplumber (MIT) — GitHub
  4. pdf.js — Mozilla
Fragen

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.