PDF lokaal naar Markdown converteren, zonder te uploaden

Door pdftomd.tools-team · Bijgewerkt op · 8 min leestijd

Zo converteer je een PDF lokaal naar Markdown: open een converter die in je browser draait, zoals onze tool om PDF naar MD te converteren, verbreek de netwerkverbinding en converteer. Werkt het nog steeds, dan heeft niets je apparaat verlaten. Voor scripts of grote batches doet een Python-bibliotheek of een opdrachtregeltool hetzelfde werk op je eigen computer.

Illustratie: een laptop zet op het scherm een PDF om in een Markdown-bestand, de upload naar de cloud is doorgestreept

Wat "lokaal" betekent en hoe je het controleert

Een conversie is lokaal als het bestand door software op je eigen apparaat wordt gelezen en in Markdown wordt omgezet, en er geen kopie naar een server gaat. Dat sluit de meeste "gratis online converters" uit, die de PDF uploaden, op afstand verwerken en het resultaat terugsturen. Het sluit ook tools uit die wel op je laptop draaien, maar voor de lastige delen stilletjes een clouddienst aanroepen.

Je hoeft niemand op zijn woord te geloven, ons ook niet. Hoe je een PDF ook lokaal naar Markdown converteert, twee controles werken bij elke tool:

  1. Stekker eruit. Laad de tool, zet wifi uit (of zet de ontwikkelaarstools van je browser op offline) en converteer dan. Een tool die een server nodig heeft, faalt.
  2. Verkeer bekijken. Open in de browser het tabblad Netwerk voordat je het bestand neerzet en let tijdens de conversie op POST-verzoeken of andere verzoeken met gegevens. Bij een desktopprogramma vertelt een firewallmelding of netwerkmonitor je hetzelfde.
Illustratie: een PDF gaat een browservenster in dat het werk zelf doet en er komt een Markdown-bestand uit, terwijl de netwerkkabel eruit is
Lokale conversie: de engine draait in het browsertabblad, dus de kabel kan eruit blijven.

Optie 1: PDF lokaal naar Markdown converteren in de browser

Een browsertool is de snelste route als je één bestand hebt en geen Python-omgeving. Onze converter leest de PDF met de opensource-engine PDF.js in het tabblad: hij herkent koppen aan de lettergrootte, bouwt lijsten en tabellen met verticale strepen opnieuw op en kan herhaalde kopteksten en paginanummers weghalen. Er is geen uploadstap, dus de conversie is even privé of het bestand nu een contract is of een recept.

We deden de stekkertest op 19 okt. 2026 met een script. Dat opende de pagina in Chrome 155.0.8059.84, zette de browser offline en converteerde daarna een rapport van 4 pagina's met een herhaalde koptekst, paginanummers en een tabel. In onze tests was de offline conversie na 87 ms klaar en leverde ze 546 tekens Markdown op. Terwijl hij offline was, deed de pagina 1 verzoek, een GET voor een decoratieve afbeelding verderop op de pagina, en geen enkele bevatte gegevens. Ook bij het laden van de pagina waren er geen POST-verzoeken.

Schermafbeelding: PDF lokaal naar Markdown converteren met onze browserconverter, een rapport van 4 pagina's geconverteerd met het netwerk uit
Schermafbeelding van onze offlinetest: het rapport werd zonder netwerk geconverteerd, herhaalde kopteksten en paginanummers zijn weg.

De grenzen zijn die van elke converter die de tekstlaag leest. Een gescande pagina heeft geen leesbare tekst, en onze tool doet geen OCR; daarom meldt hij dat het bestand gescand lijkt in plaats van te gokken. Lay-outs met meerdere kolommen en complexe tabellen moet je daarna nakijken; onze gids over opmaak zet op een rij waar je op let.

Optie 2: Python-bibliotheken op je eigen computer

Voor terugkerende klussen past een Python-bibliotheek beter: je kunt een map doorlopen, de code in versiebeheer zetten en hem draaien op een server die je zelf beheert. Onze Python-gids gaat dieper op de code in; hier bekijken we vier veelgebruikte pakketten alleen vanuit het oogpunt "lokaal".

  • PyMuPDF4LLM maakt met één aanroep Markdown van een PDF: pymupdf4llm.to_markdown("report.pdf"). Het draait volledig offline. Controleer eerst de licentie: het en PyMuPDF vallen onder AGPL-3.0, met een commerciële licentie die apart wordt verkocht.
  • MarkItDown van Microsoft (MIT) converteert veel bestandstypen. Installeer de PDF-uitbreiding met pip install 'markitdown[pdf]' en voer markitdown report.pdf -o report.md uit. De standaardroute voor PDF is lokaal. Optionele uitbreidingen sturen bestanden naar Azure Document Intelligence of Content Understanding; laat die weg bij vertrouwelijke bestanden.
  • Docling (MIT) gebruikt lay-out- en tabelmodellen en noemt lokaal draaien voor gevoelige gegevens als een van zijn functies. De modellen worden bij het eerste gebruik gedownload; de documentatie toont docling-tools models download om ze vooraf op te halen voor machines zonder netwerk.
  • Marker (code onder Apache-2.0; modelgewichten onder een eigen licentie met commerciële beperkingen) is ook modelgebaseerd. De optionele vlag --use_llm stuurt inhoud naar een LLM-dienst, standaard Gemini; het is dus alleen lokaal als je het op een zelf gehost model richt.
python -m venv .venv && . .venv/bin/activate
pip install pymupdf4llm 'markitdown[pdf]'

# then work with the network off
python -c "import pymupdf4llm; open('report.md','w').write(pymupdf4llm.to_markdown('report.pdf'))"
markitdown report.pdf -o report-markitdown.md
Eén keer online installeren, daarna PDF's lokaal naar Markdown converteren met het netwerk uit. Dezelfde opdrachten werken op macOS, Linux en Windows.

Wil je een PDF op de Mac naar Markdown converteren, dan verandert er niets: beide pakketten installeer je met pip op macOS, en het Homebrew-pakket poppler levert pdftotext voor de volgende optie.

Optie 3: opdrachtregeltools

De klassieke offlinetool is pdftotext van Poppler. Hij is snel en bijna overal geïnstalleerd, maar schrijft platte tekst, geen Markdown: geen #-koppen, geen tabellen met strepen. De vlag -layout houdt kolommen met spaties uitgelijnd; dat helpt een mens bij het lezen, maar minder als een parser of model structuur nodig heeft. Pandoc, het gebruikelijke antwoord op formaatconversies, leest helemaal geen PDF.

Om de routes met hetzelfde bestand te vergelijken, draaiden we de twee Python-pakketten en pdftotext op onze buildmachine (Linux x86_64, 8 vCPU) met het netwerk uitgeschakeld voor het proces, en telden we wat eruit kwam. Het bestand was hetzelfde rapport van 4 pagina's als in de browsertest. De rij voor onze converter komt van hetzelfde bestand in de modus "AI-resten opschonen".

Lokale tools met een rapport van 4 pagina's, volgens onze tests (19 okt. 2026, netwerk uitgeschakeld)
ToolTijdKoppenTabel met strepenKopieën van de koptekstRegels met paginanummerWoord afgebroken met koppelteken
PyMuPDF4LLM 1.28.21 s4Ja44Nee
MarkItDown 0.1.80,32 s0Ja44Ja
pdftotext 25.03.0 -layout0,02 s0Nee44Ja
Onze browserconverter (AI-resten opgeschoond)87 ms4Ja00Nee
Eén klein bestand, dus de tijden tonen alleen de ordegrootte; Python-tijden bevatten het starten van de interpreter. Kopieën van de koptekst en regels met paginanummers zijn restjes die je met de hand zou moeten weghalen.

Welke optie bij welke klus past

Illustratie: vier kaarten voor een browsertool, een Python-bibliotheek, een opdrachtregeltool en de notitie-app die de Markdown ontvangt
Drie manieren om een PDF lokaal naar Markdown te converteren, één bestemming: je editor of je notitie-app.
  • Eén bestand, nu meteen, zonder installatie: de browser. Gebruik onze tool om PDF naar MD te converteren of de batchpagina voor een stapel bestanden.
  • Elke week een map of een pijplijn: PyMuPDF4LLM als de AGPL-licentie past, MarkItDown als je MIT en veel bestandstypen nodig hebt.
  • Lastige lay-outs, scans, formules: Docling of Marker, met een modeldownload en tragere runs.
  • Alleen de woorden, voor zoeken of een snelle diff: pdftotext.
  • Rechtstreeks naar een kluis: converteer in de browser en volg de Obsidian-werkwijze.

Een opmerking over de termen: een offlinetool en een privétool beloven niet hetzelfde. Offline betekent dat hij geen netwerk nodig heeft. Privé gaat ook over wat de tool op de schijf bewaart, zoals caches, logs of crashrapporten; lees dus de privacypagina van alles wat je installeert.

Checklist voor vertrouwelijke PDF's

  1. Lees de privacyverklaring van de tool en controleer die zelf met de offlinetest hierboven. De onze staat op de privacypagina.
  2. Installeer pakketten en download modellen online, en converteer de PDF daarna lokaal naar Markdown met het netwerk uit.
  3. Laat clouduitbreidingen uitgeschakeld: de Azure-opties van MarkItDown, de LLM-modus van Marker, elke schakelaar voor "AI-opschoning" die een dienst aanroept.
  4. Converteer in een map die je zelf beheert en verwijder tussenkopieën als je klaar bent.
  5. Voordat je de Markdown in een chatmodel plakt: die stap is wél een upload. Niets uploaden tijdens het converteren dekt niet wat daarna gebeurt.
  6. Kies bij juridische of medische bestanden voor tools waarvan je de code kunt lezen, en bewaar de gebruikte versies bij de uitvoer.

Bronnen

  1. PDF.js — Mozilla
  2. PyMuPDF4LLM (README and licence) — Artifex, GitHub
  3. MarkItDown (README and licence) — Microsoft, GitHub
  4. Docling: model prefetching and offline usage — Docling project
  5. Marker (README and licence) — Datalab, GitHub
  6. Poppler (pdftotext) — freedesktop.org

Veelgestelde vragen

Hoe converteer ik een PDF lokaal naar Markdown?

Gebruik een browserconverter die het bestand in het tabblad verwerkt, of installeer een Python-bibliotheek zoals PyMuPDF4LLM of MarkItDown en draai die op je eigen computer. Test beide met het netwerk uit om zeker te weten dat er niets wordt geüpload.

Hoe weet ik of een online converter mijn bestand uploadt?

Open het tabblad Netwerk van de browser en converteer dan. Verzoeken met je bestand verschijnen als POST- of uploadverkeer. Nog eenvoudiger: ga offline voordat je converteert. Een tool die uploadt, wordt zonder verbinding niet klaar.

Werkt jullie converter offline?

Ja, bij PDF's met een tekstlaag. Laad de pagina online zodat de PDF-engine wordt gedownload; daarna kun je de verbinding verbreken. In onze tests werd een rapport van 4 pagina's offline geconverteerd zonder dat een verzoek gegevens bevatte.

Welke Python-bibliotheek is het best voor lokaal converteren?

PyMuPDF4LLM leverde in onze kleine test de meeste structuur, maar valt onder AGPL. MarkItDown valt onder MIT en kan veel formaten aan. Docling en Marker passen bij lastige lay-outs en scans, ten koste van een modeldownload.

Kan ik gescande PDF's lokaal converteren?

Alleen met een tool die op je computer OCR doet. Docling en Marker kunnen dat; onze browserconverter leest alleen de tekstlaag en doet geen OCR, daarom meldt hij dat het bestand gescand lijkt.

Is pdftotext genoeg in plaats van Markdown?

Voor zoeken en snel lezen vaak wel. Het maakt geen koppen of tabellen in Markdown-syntaxis, dus notities, documentatie en AI-prompts die op structuur leunen, hebben een echte Markdown-converter nodig.