Lokale scripts

PDF naar Markdown met Python

Bijgewerkt op · pdftomd.tools-team

Wie PDF naar Markdown met Python omzet, doet dat in een script op de eigen computer. Deze gids toont geteste snippets voor twee opensourcebibliotheken en een browsertool voor de dagen dat je liever niets installeert.

Document gaat door een code-editor en komt eruit als Markdown-bestand

Geen Python bij de hand? De browsertool hieronder doet dezelfde klus van PDF naar Markdown, zonder installatie. Zet een bestand met tekstlaag neer en kopieer het resultaat.

In de browser · geen upload

Bron-PDF

Sleep een PDF hierheen of klik om te kiezen

Alleen PDF’s met tekst. Scans hebben OCR nodig, en dat doet deze tool niet.

Markdown-voorbeeld

Hier verschijnt de Markdown.
Installatie

PDF naar Markdown met Python: inrichten in vier stappen

Een lokale pipeline, van installatie tot uitvoerbestanden.

  1. Bestand wordt naar een uploadvlak gesleept
    01

    Omgeving aanmaken

    Maak met python -m venv .venv een virtuele omgeving aan en activeer die, zodat de bibliotheken niet in je systeeminstallatie belanden.

    Snippets bekijken
  2. Tekstfragmenten worden tot geordende regels gegroepeerd
    02

    Bibliotheek installeren

    Voer pip install pymupdf4llm uit voor algemene Markdown-uitvoer, of pip install pdfplumber als het vooral om tabellen gaat.

    Bibliotheek kiezen
  3. Markdown-voorbeeld met koppen en lijsten
    03

    Script uitvoeren

    Kopieer een snippet van deze pagina naar een .py-bestand en richt het op je document. Elke run schrijft een .md-bestand dat je kunt openen.

    Snippet kopiëren
  4. Markdown- en documentpictogrammen met pijlen
    04

    Uitvoer controleren

    Vergelijk het .md-bestand met het origineel en haal verdwaalde kop- en voetteksten weg voordat de tekst ergens anders verder gaat.

    Vergelijken in de browser
Opties

Welke Python-bibliotheek voor PDF naar Markdown?

Er is niet één beste bibliotheek om PDF naar Markdown met Python om te zetten; elke bibliotheek weegt snelheid, licentie en tabellen anders af. pymupdf4llm bouwt op PyMuPDF, leest de opmaak en schrijft direct Markdown, inclusief koppen en tabellen met lijnen. Dat maakt het een verstandige standaardkeuze voor notities en retrieval. pdfplumber geeft diepere toegang tot tekens, lijnen en tabelcellen en past daarom bij scripts die vooral om tabelgegevens draaien.

Beide zijn opensourceprojecten van derden, geen producten van deze website. Voor een paar documenten doet de browsertool op deze pagina een vergelijkbare ronde zonder installatie. Voor honderden bestanden volgens een schema is een lokaal Python-script de betere keuze.

  • pymupdf4llm: PDF naar Markdown met één aanroep
  • pdfplumber: precieze toegang tot cellen van tabellen met lijnen
  • Browsertool: geen installatie, geen upload

Grenzen die elke aanpak deelt

Geen van deze opties leest scans uit zichzelf: de browsertool heeft geen OCR, en de bibliotheken hierboven hebben voor pagina’s die alleen uit afbeeldingen bestaan een aparte OCR-stap nodig. Samengevoegde cellen, gedraaide tabellen en tweekoloms opmaak zijn lastig voor elke Python-bibliotheek en voor onze browsertool, dus controleer tabellen met de hand. In de browsertool hebben tabellen zonder randen minstens drie rijen nodig, en de eerste rij wordt altijd de kopregel.

Browser of scriptVergelijking
Uploadvlak met slot naast een terminal met tandwiel
Links de browsertool zonder instellingen; rechts een Python-script voor geautomatiseerde taken.
Snippets

Python-snippets voor PDF naar Markdown

Getest met pymupdf4llm 1.28 en pdfplumber 0.11. Kopieer er een en voer hem lokaal uit.

Eén bestand met pymupdf4llm

Derden · AGPL

Snel en opmaakbewust: de uitvoer behoudt koppen en tabellen met lijnen. PyMuPDF valt onder AGPL; controleer de voorwaarden voordat je het in een gesloten product inbouwt.

# pip install pymupdf4llm
import pathlib
import pymupdf4llm

md = pymupdf4llm.to_markdown("report.pdf")
pathlib.Path("report.md").write_text(md, encoding="utf-8")

Tabellen met pdfplumber

Derden · MIT

Het best voor tabellen met lijnen. Standaard vindt het alleen tabellen met getekende lijnen; rasters zonder randen hebben eigen instellingen nodig. De hulpfunctie schrijft elke tabel als pipe-tabel.

# 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")

Een hele map met pymupdf4llm

Derden · AGPL

Eén lus: die leest elk bestand in de map pdfs en schrijft per invoer een .md-bestand.

# 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")
Toepassingen

Waar een Python-script past

Drie klussen waarbij scripten loont.

Eerst lokaal
Lokale verwerking in de browser

Script of browser: je bestanden blijven lokaal

Een lokaal script stuurt je bestanden nergens heen, en onze browsertool ook niet: het omzetten van PDF naar Markdown draait met pdf.js in de pagina, en het bestand bereikt onze servers nooit.

Scripts draaien op je computerBrowsertool uploadt nietsOpensourceopties
Andere richting
Pijl in twee richtingen tussen een Markdown- en een documentpictogram

Markdown weer als pagina’s weergeven

Na een Python-run heb je misschien een printbare versie nodig. De tool aan de andere kant maakt van Markdown A4-pagina’s in de browser.

Tools

Verwante tools

Meer pagina’s rond PDF naar Markdown.

Liever zonder installatie? Zet je PDF hier naar Markdown om

Zet een document neer en kopieer schone tekst, of voer de snippets hierboven op je computer uit. Gratis en privé.

Bestand omzetten

Bronnen

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

Veelgestelde vragen

Vragen over Python-opties, licenties en grenzen.

Wat is de eenvoudigste manier om PDF naar Markdown met Python om te zetten?

pymupdf4llm: installeer het met pip en roep to_markdown aan op een bestand. Je krijgt Markdown met koppen, lijsten en tabellen met lijnen.

Heb ik een account of sleutel nodig?

Nee. De bibliotheken installeer je met pip en ze draaien offline, en de browsertool heeft geen account nodig. Gebruik voor scripts een lokale Python-bibliotheek.

Zijn pymupdf4llm en pdfplumber van jullie?

Nee. Beide zijn opensourceprojecten van derden. pymupdf4llm en PyMuPDF vallen onder AGPL, pdfplumber onder MIT.

Kan een Python-script scans lezen?

Niet uit zichzelf. Pagina’s die alleen uit afbeeldingen bestaan, hebben eerst een OCR-stap nodig. Onze browsertool heeft ook geen OCR en waarschuwt je als een bestand gescand lijkt.

Hoe behoud ik tabellen als ik PDF naar Markdown omzet?

pymupdf4llm schrijft tabellen met lijnen als pipe-tabellen; pdfplumber vindt ze, en de hulpfunctie zet ze om. Tabellen zonder randen vragen bij allebei om fijnafstemming.

Is de browsertool hetzelfde als deze bibliotheken?

Nee. Hij gebruikt pdf.js en eigen opmaakregels, dus de uitvoer kan verschillen. Hij heeft geen installatie nodig en past bij een handvol bestanden.

Uploadt een Python-script mijn bestanden?

Nee. Lokale scripts draaien op je computer, en de browsertool hier verwerkt bestanden zonder upload.