Blog

PDF’s in Claude Code: conversie, tokens en behoud van structuur

Markdown

MarkItDown, PyMuPDF4LLM, MCP, complete conversiescripts, PDF-limieten en situaties waarin visuele analyse belangrijker is dan tokenbesparing.

Lees het volledige artikel

Belangrijkste punt

Elke PDF-pagina in Claude Code kost 1.500–3.000 tokens voordat je de eerste vraag stelt — Anthropic zegt dit duidelijk in de documentatie. In de illustratieve berekening hieronder gebruikt een rapport van 15 pagina’s in 4 verschillende chats 135,000 PDF-invoertokens voor circa $0.40 tegenover 18,000 Markdown-invoertokens voor $0.054, ongeveer 87% minder. Dat veronderstelt 2,250 PDF-tokens of 300 Markdown-tokens per pagina tegen het voorbeeldinvoertarief; echte documenten verschillen. Deze gids behandelt drie conversiemethoden (MarkItDown, PyMuPDF4LLM en een MCP-server) en een kant-en-klaar bash-script voor een map met documenten.

Praktische instructies voor het gebruik van Ailoot vind je in de documentatie.

Wat gebeurt er met een PDF in Claude, en waarom kost elke pagina 1.500–3.000 tokens?

Belangrijkste punt

Wanneer je een PDF uploadt naar Claude Code, leest het die niet als een tekstbestand. Eerst wordt elke pagina omgezet in een afbeelding, daarna wordt de tekst eruit gehaald, en beide lagen — de afbeelding en de tekst — worden samen aan de context toegevoegd. Daarom neemt één pagina 1.500–3.000 tokens in beslag en kan een document van 50 pagina’s 75.000–150.000 tokens gebruiken voordat je je eerste vraag stelt.

De officiële documentatie van Anthropic beschrijft het proces in drie eenvoudige stappen:

Het systeem zet elke documentpagina om in een afbeelding. De tekst van elke pagina wordt geëxtraheerd en naast de pagina-afbeelding aangeboden. Claude analyseert zowel de tekst als de afbeeldingen om het document beter te begrijpen.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

Dat klinkt logisch, maar de verwerkingskosten groeien lineair met het aantal pagina’s. En dit cijfer verklaart waarom je abonnementslimiet opgaat aan één PDF:

Elke pagina gebruikt doorgaans 1.500–3.000 tokens, afhankelijk van de informatiedichtheid. Omdat elke pagina wordt omgezet in een afbeelding, gelden dezelfde kosten als voor standaardafbeeldingen.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

Om te zien hoeveel dat is, heeft Anthropic dezelfde PDF van 3 pagina’s op Bedrock in twee modi gemeten. In tekstmodus (Converse Document Chat) gebruikte die ~1.000 tokens. Met visuele analyse (Claude PDF Chat) waren dat ~7.000 tokens. Afbeeldingen meenemen maakt de verwerking 7 keer duurder.

Schermafbeeldingen van pagina’s zijn nog erger. Een schermafbeelding van 1000×1000 pixels kost ongeveer 1.300 tokens.

Het mechanisme is eenvoudig: PDF’s zijn duur omdat Claude zijn OCR niet vertrouwt. Het gebruikt zowel tekst als afbeeldingen om ze met elkaar te vergelijken — en je betaalt in één keer voor beide lagen. Voor grote documenten kun je het anders aanpakken: sla het bestand als Markdown op in je projectmap en zeg tegen Claude: “hier is een document met informatie — verdeel die over je bestanden.” Claude verdeelt de inhoud over eigen bestanden en werkt verder met de geordende tekst in plaats van alles in één keer te verwerken.

Hoeveel kost een PDF in een typische taak?

Belangrijkste punt

Neem een openbaar rapport van 15 pagina’s voor 4 contexten: analyse, citaten, vertaling en samenvatting. Veronderstel 2,250 invoertokens per PDF-pagina, 300 per geconverteerde Markdown-pagina en hetzelfde invoertarief. Opnieuw uploaden van PDF geeft 135,000 invoertokens voor circa $0.40; Markdown geeft 18,000 voor $0.054. De besparing van circa 87% volgt uit die aannames, niet uit een meting van elke PDF.

De precieze cijfers (Sonnet 4.x-model, invoer voor $3 per miljoen tokens):

AanpakTokens (15 pagina’s, 4 chats)Kosten
PDF 4 keer rechtstreeks uploaden15 × 2250 × 4 = 135.000~$0.40
PDF → Markdown + 4 chats15 × 300 × 4 = 18.000~$0.054
Besparing−87%−$0.35

En dat is voor slechts één cyclus van 4 verzoeken. Daarna speelt promptcaching een rol (standaard TTL van 5 minuten, tot 1 uur op een uitgebreid niveau, met tot 90% korting op herhaalde verzoeken binnen die periode) — de besparing neemt toe.

Elke keer dat je dezelfde PDF in een nieuwe chat uploadt, leest Claude die opnieuw; de cache wordt niet tussen chats gedeeld.

Zet je dezelfde PDF van 15 pagina’s eenmaal om naar Markdown en voeg je die in elk van vier nieuwe chats als .md-bestand toe, dan gebruikt dit voorbeeld 15 × 300 × 4 = 18,000 invoertokens in plaats van 135,000. De 300 tokens per geconverteerde pagina en 2,250 per PDF-pagina zijn aannames voor deze berekening, geen gemeten constanten voor elke PDF. Tel je echte document en bevestig conversiekwaliteit voordat je besparing schat.

Deze berekening wordt nog relevanter met een Claude Pro-abonnement. Eén rapport van 100 pagina’s kan de volledige limiet van 5 uur opgebruiken. Na omzetting naar Markdown passen 10+ van zulke documenten binnen hetzelfde budget.

Wat zijn de Anthropic API-limieten voor PDF’s in 2026?

Belangrijkste punt

Anthropic hanteert strikte limieten: maximaal 32 MB per verzoek (inclusief alle inhoud, niet alleen de PDF) en maximaal 600 pagina’s per verzoek. Voor de huidige Sonnet 4.x- en Opus 4.x-modellen met 200K context ligt de limiet echter lager: 100 pagina’s. Je kunt een PDF op drie manieren versturen: via een URL, in Base64 of via de Files API voor hergebruik met file_id. De Files API in combinatie met het opsplitsen in delen wordt gebruikt voor lange documenten.

De documentatie van Anthropic vermeldt de limieten bovenaan (actueel per 31 mei 2026):

VereisteLimiet
Maximale verzoekgrootte32 MB (verschilt per platform)
Maximaal aantal pagina’s per verzoek600 (100 voor modellen met 200K-tokencontext)
IndelingStandaard-PDF zonder wachtwoorden of versleuteling

Beide limieten gelden voor de volledige hoofdtekst van het verzoek, inclusief inhoud naast de PDF. Gebruik voor grote PDF’s de Files API en verwijs ernaar met `file_id` om de hoofdtekst van het verzoek klein te houden.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

Claude.ai (de consumentenwebapp) hanteert andere limieten: maximaal 500 MB per bestand en maximaal 20 bestanden in een chat. Visuele analyse werkt echter alleen voor PDF’s tot 100 pagina’s — daarboven ziet Claude alleen tekst, zonder grafieken en diagrammen.

Drie manieren om een PDF via de API te versturen:

  1. Via een URL - "source": {"type": "url", "url": "..."} - het eenvoudigst wanneer het document online staat.
  2. In Base64 - "source": {"type": "base64", "media_type": "application/pdf", "data": "..."} - voor lokale bestanden.
  3. Via de Files API - "source": {"type": "file", "file_id": "file_abc123"} - voor herhaalde verzoeken; vereist de bètaheader anthropic-beta: files-api-2025-04-14.

De Files API is de belangrijkste manier om te besparen wanneer je dezelfde PDF in verschillende chats gebruikt. Upload het bestand één keer, ontvang een file_id en gebruik die vervolgens voor alle interacties. Met cache_control: ephemeral kosten herhaalde verzoeken 10% van de reguliere prijs.

Anthropic geeft ook officieel advies om het gebruik te beperken:

Dichte PDF’s (met veel kleine tekst, complexe tabellen of veel afbeeldingen) kunnen het contextvenster vullen voordat je de paginalimiet bereikt. Probeer het document in secties op te splitsen; verlaag voor grote bestanden de resolutie van ingesloten afbeeldingen voordat je ze uploadt.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

Methode 1: Hoe stel je MarkItDown in 5 minuten in?

Belangrijkste punt

MarkItDown is een Python-hulpprogramma van het Microsoft AutoGen-team dat PDF-, DOCX-, PPTX-, XLSX-, HTML-, audio- en afbeeldingsbestanden, en zelfs YouTube-video’s, omzet in nette Markdown. Het heeft 134 duizend sterren op GitHub, een MIT-licentie en wordt met één opdracht geïnstalleerd: pip install 'markitdown[all]'. Het is net zo eenvoudig in gebruik: markitdown document.pdf > document.md. De veelzijdigste tool om bestanden te converteren voordat je Claude Code gebruikt.

MarkItDown is een officieel Microsoft-project dat wordt onderhouden door het AutoGen-team. Op GitHub heeft het 134 duizend sterren en 9,2 duizend forks (stand eind mei 2026). Het doel wordt rechtstreeks in de README vermeld:

Een lichtgewicht Python-hulpprogramma om bestanden naar Markdown om te zetten voor gebruik met LLM’s en tekstanalysepipelines.

— Microsoft, https://github.com/microsoft/markitdown

Ondersteunde formaten:

  • Documenten: PDF, DOCX, PPTX, XLSX
  • Web: HTML, JSON, XML, CSV
  • Media: audio met transcriptie, afbeeldingen met EXIF en OCR, YouTube-video’s (via ondertiteling)
  • Archieven: ZIP, EPub
  • Overig: alle bijlagen in Outlook MSG-bestanden

Installatie

Vereiste: Python 3.10+ (meestal al geïnstalleerd op macOS; op Windows moet je het apart installeren).

pip install 'markitdown[all]'

Als je niet alle formaten nodig hebt, kun je alleen bepaalde formaten installeren:

pip install 'markitdown[pdf, docx, pptx]'

Eén bestand converteren

Het eenvoudigste geval:

markitdown document.pdf > document.md

Daarna verschijnt document.md in de huidige map. Voeg het toe aan Claude Code met @document.md of zet het gewoon naast je project.

Python-API

Als je het in je script wilt integreren:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("research-paper.pdf")
print(result.text_content)

# Je kunt het meteen opslaan:
with open("research-paper.md", "w") as f:
    f.write(result.text_content)

Wat MarkItDown NIET KAN

  • OCR voor gescande PDF’s - het retourneert niets. Voor scans heb je PyMuPDF4LLM of Docling nodig.
  • Complexe lay-outs met meerdere kolommen - de leesvolgorde kan door elkaar raken.
  • In PDF’s ingesloten URL’s - die blijven niet behouden.

Voor eenvoudige PDF’s (rapporten, artikelen, documentatie) is MarkItDown de beste keuze: een veelzijdige tool die je in een minuut installeert en waarvoor je geen Python-kennis nodig hebt. De prestaties met Cyrillische tekst en scans worden getoond in de metingen in de analyse van een PDF omzetten naar tekst voor AI.

Methode 2: Wat biedt PyMuPDF4LLM, en wanneer is het beter?

Belangrijkste punt

PyMuPDF4LLM is een project van Artifex Software op basis van de native C MuPDF-engine. Het is de snelste PDF-converter (geen GPU nodig); slimme OCR wordt alleen op onleesbare delen toegepast en verkort de verwerkingstijd met 50%. Het is de enige populaire tool die ingesloten URL’s en afbeeldingen uit PDF’s behoudt. Het nadeel is de dubbele AGPL v3 / Artifex commerciële licentie: voor SaaS-projecten betekent AGPL dat je je code moet publiceren.

MarkItDown biedt een brede ondersteuning van formaten; PyMuPDF4LLM biedt diepgaande PDF-verwerking.

Een lichtgewicht PyMuPDF-uitbreiding die PDF’s met minimale configuratie omzet in nette, gestructureerde gegevens.

— Artifex Software, https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/

De versie per 31 mei 2026 is 1.27.2.3 (uitgebracht op 24 april 2026).

Wat is inbegrepen

  • Pagina’s met meerdere kolommen in de juiste leesvolgorde
  • Tabellen omgezet naar GitHub-flavored Markdown
  • Kop- en voetteksten automatisch verwijderd
  • Afbeeldingen geëxtraheerd met relatieve links naar een aparte map
  • Slimme OCR: alleen toegepast op onleesbare delen, waardoor ~50% verwerkingstijd wordt bespaard
  • Native C-engine, geen GPU nodig

Installatie

pip install pymupdf4llm

Gebruik

import pymupdf4llm

# Basisgebruik - rechtstreeks naar Markdown:
md_text = pymupdf4llm.to_markdown("document.pdf")

# Opslaan:
with open("document.md", "w") as f:
    f.write(md_text)

In één regel, zoals beloofd:

python3 -c "import pymupdf4llm; \
  open('document.md','w').write(pymupdf4llm.to_markdown('document.pdf'))"

Wanneer kies je PyMuPDF4LLM boven MarkItDown?

  • Wanneer de PDF veel links bevat die je wilt behouden (MarkItDown verliest ze).
  • Wanneer het document gescand is en je OCR nodig hebt.
  • Wanneer je lokaal duizenden bestanden snel wilt verwerken — de native C-engine is sneller dan Python-wrappers.
  • Wanneer je afbeeldingen uit de PDF in een aparte map nodig hebt voor verdere verwerking.

Licentiedetails (belangrijk voor bedrijven)

PyMuPDF4LLM heeft een dubbele licentie: AGPL v3 OF Artifex commercial.

AGPL betekent: als je de bibliotheek in een publieke SaaS gebruikt, moet je de volledige broncode van je dienst publiceren onder dezelfde AGPL. Voor intern gebruik (je script op je laptop) gelden geen beperkingen.

Koop voor commerciële ontwikkeling zonder code openbaar te maken een licentie bij Artifex (artifex.com). De prijzen zijn niet gepubliceerd; vraag ze op bij sales.

Als je een product voor klanten bouwt, controleer dan meteen de licentie. MarkItDown (MIT) en Docling (MIT) zijn veiliger voor SaaS.

Methode 3: Hoe verbind je de MarkItDown MCP-server met Claude Code?

Belangrijkste punt

De MarkItDown MCP-server is dezelfde MarkItDown, verpakt in het MCP-protocol. Daardoor kan Claude Code PDF’s direct converteren zonder het oorspronkelijke bestand in de context te laden. Verbind de server met één opdracht via uv; de versie is vastgezet: markitdown-mcp@0.0.1a7. De tool die Claude krijgt is convert_to_markdown(uri). Het inactieve verbruik is ~110 tokens voor de beschrijving van de skill, en nul wanneer die niet nodig is.

MarkItDown in CLI-modus betekent “ik converteer bestanden vooraf handmatig”; de MCP-server betekent “Claude Code bepaalt zelf wanneer het moet converteren”.

Installatie

Je hebt de pakketbeheerder uv nodig. Je hoeft de server niet apart te installeren; uv downloadt die de eerste keer dat hij wordt uitgevoerd.

Configuratie in Claude Code

Met één opdracht verbind je de server met al je projecten en zet je de versie vast:

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

Bij de vermelding markitdown moet “Connected” staan. De eerste keer worden ongeveer zeventig pakketten gedownload, wat tot een minuut duurt; daarna start de server binnen een of twee seconden.

Dit is waarom de opdracht de twee variabelen nodig heeft. ORT_DISABLE_TELEMETRY=1 schakelt statistieken uit die de onnxruntime-engine in de server standaard naar Microsoft stuurt op Mac en Linux. UV_PYTHON=3.12 voert de server uit met Python 3.12, waarvoor vooraf gebouwde pakketten beschikbaar zijn voor Windows, Linux en Macs met Apple Silicon. Op Intel-Macs en macOS 13 en ouder kan de server niet met Python 3.14 worden geïnstalleerd. Voor Intel en Python 3.12 geldt een kanttekening: uv bouwt de cryptography-bibliotheek vanuit de broncode omdat er sinds juni 2026 geen vooraf gebouwd Intel-pakket beschikbaar is. De installatie duurt langer en kan mislukken. Als je Python 3.12 niet hebt, downloadt uv het voor je.

De server draait rechtstreeks op je computer en kan elk bestand openen waartoe jij toegang hebt. Als Claude Code openstond, start je het opnieuw; daarna verschijnt markitdown in de lijst met MCP-servers.

Hoe gebruik je de server?

Zeg in Claude Code eenvoudigweg:

Convert /Users/your-user/Documents/report.pdf to Markdown and analyze the main points.

Claude roept zelf convert_to_markdown(uri) aan, ontvangt de Markdown en werkt ermee — de PDF wordt helemaal niet in de context geladen.

Ondersteunde URI’s

  • file:// - lokale bestanden
  • http://, https:// - online documenten
  • data: - inlinegegevens (Base64)

Beveiliging

Uit de officiële README:

De server ondersteunt geen autorisatie en draait met de rechten van de gebruiker die hem heeft gestart.

— Microsoft, https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp

Standaard wordt de server aan localhost gebonden. Als je hem via HTTP/SSE uitvoert (optie --http --host 127.0.0.1 --port 3001), stel de poort dan niet extern open zonder een geauthenticeerde reverse proxy.

Welke methode kies je voor jouw taak?

Belangrijkste punt

MarkItDown is de alleskunner als je met verschillende formaten werkt (PDF + DOCX + PPTX + YouTube) en een snelle CLI-opdracht nodig hebt. PyMuPDF4LLM is de PDF-specialist: sneller, met OCR en behoud van links, maar met een AGPL-valkuil voor SaaS. Docling is geschikt voor productie en verwerkt tabellen en formules het best. Marker is voor wetenschappelijke artikelen met wiskunde. De MCP-server is bedoeld voor wie niet over conversie wil nadenken en Claude Code zelf wil laten beslissen.

Uitgebreide vergelijkingstabel:

ToolGitHub-sterrenGeschikt voorSnelheidLicentie
MarkItDown (Microsoft)134kPDF + DOCX + PPTX + YouTube + audioGemiddeldMIT
PyMuPDF4LLM (Artifex)-Native PDF, OCR, ingesloten URL’sSnelst (geen GPU)AGPL v3 / commercieel
Docling (IBM Research)60.7kProductie-RAG, tabellen, formulesGemiddeldMIT
Marker (datalab.to)35.6kWetenschappelijke PDF’s, arXiv, formulesHoog (met GPU)GPL-3.0 + Open Rail-M
MinerU-CJK-documenten (Chinees/Japans)HoogApache-2.0

Marker publiceert indrukwekkende nauwkeurigheidscijfers voor benchmarks:

0,18 seconden per pagina op een H100-GPU (122 pagina’s per seconde). Nauwkeurigheid van 95,67% tegenover Llamaparse (84,24%) en Mathpix (86,43%). Bij wetenschappelijke artikelen is dat 96,67%.

— datalab.to, https://github.com/datalab-to/marker

Maar Marker heeft een GPU nodig voor goede snelheid en brengt machinelearningmodellen met zich mee. Voor de meeste taken (gewone PDF’s met tekst) klaren PyMuPDF4LLM of MarkItDown de klus zonder GPU in enkele seconden.

Een eenvoudige keuzeregel

  1. Eén of twee PDF’s, snel nodig - MarkItDown CLI.
  2. Tientallen PDF’s, automatisering nodig - MarkItDown MCP-server of PyMuPDF4LLM in een script.
  3. PDF’s met links en afbeeldingen waarbij behoud van de structuur belangrijk is - PyMuPDF4LLM.
  4. Productie-RAG voor bedrijven waarbij stabiele tabellen belangrijk zijn - Docling.
  5. Wetenschappelijke artikelen met formules - Marker.
  6. Geen zin om erover na te denken; laat Claude converteren - MarkItDown MCP-server.

Hoe schrijf je een kant-en-klaar script om automatisch een map met documenten te converteren?

Belangrijkste punt

De handigste aanpak is een bash-script dat een projectmap doorloopt, alle PDF-, DOCX- en PPTX-bestanden naar Markdown converteert en ze in een submap _md/ zet. Stel het één keer in, en elke nieuwe map met documenten wordt in één keer “leesbaar voor Claude”. Voeg daarna _md/ met @_md/ toe aan Claude Code en werk met de gecomprimeerde tekst.

Een praktisch voorbeeld: stel dat je 40 PDF- en PPTX-rapporten van klanten in één map hebt — rekeningoverzichten van brokers, contracten, presentaties. De hele map rechtstreeks naar Claude uploaden heeft geen zin: het contextvenster raakt gevuld met informatie voordat je het eerste antwoord krijgt. Voer de hele map in één keer door het onderstaande script en werk daarna met lichte .md-bestanden in plaats van omvangrijke PDF’s.

Sla dit script op als scripts/docs-to-md.sh in de hoofdmap van het project:

#!/bin/bash
# docs-to-md.sh - converteert alle documenten in een map naar Markdown met MarkItDown
# Gebruik: bash docs-to-md.sh ./documents

set -e

INPUT_DIR="${1:-./documents}"
OUTPUT_DIR="${INPUT_DIR}/_md"

mkdir -p "$OUTPUT_DIR"

echo "Scanning $INPUT_DIR..."

for file in "$INPUT_DIR"/*.{pdf,docx,pptx,xlsx}; do
  [ -f "$file" ] || continue

  basename=$(basename "$file")
  name="${basename%.*}"
  output="$OUTPUT_DIR/${name}.md"

  if [ -f "$output" ] && [ "$output" -nt "$file" ]; then
    echo "Skipping $basename (already converted)"
    continue
  fi

  echo "Converting $basename..."
  markitdown "$file" > "$output"
done

echo "Done. Results are in $OUTPUT_DIR"

Maak het uitvoerbaar:

chmod +x scripts/docs-to-md.sh

Voer het uit:

bash scripts/docs-to-md.sh ./reports

Na afloop bevat ./reports/_md/ .md-versies van alle documenten. Voeg ze toe aan Claude Code met @reports/_md/ en werk met de gecomprimeerde tekst in plaats van PDF’s.

Het script slaat bestanden die al zijn geconverteerd automatisch over (als het .md-bestand nieuwer is dan de bron) — opnieuw uitvoeren is goedkoop en het rekent niet alles opnieuw door.

Idempotentie en incrementele conversie

Wil je dat het script PDF’s detecteert die zijn gewijzigd (opnieuw opgeslagen onder dezelfde naam), voeg dan een controle van de inhoudshash toe:

hash=$(shasum -a 256 "$file" | cut -d' ' -f1)
hash_file="$OUTPUT_DIR/.${name}.sha256"

if [ -f "$hash_file" ] && [ "$(cat "$hash_file")" = "$hash" ]; then
  echo "Skipping $basename (hash matches)"
  continue
fi

markitdown "$file" > "$output"
echo "$hash" > "$hash_file"

Deze versie converteert een bestand alleen opnieuw als de inhoud is gewijzigd.

Wanneer is een PDF in Claude nog steeds beter dan Markdown?

Belangrijkste punt

Bij conversie naar Markdown gaan drie dingen verloren: visuele elementen (diagrammen, grafieken, blauwdrukken), complexe tabellen met samengevoegde cellen en bijschriften, en de volledige opmaak van het document als artefact (bijvoorbeeld een contract waarnaar je per pagina wilt verwijzen). Als die zaken belangrijk zijn voor de taak, behoud dan de PDF, schakel visuele analyse in en accepteer bewust de visuele kosten.

Drie situaties waarin conversie naar Markdown tekortschiet:

1. Visuele analyse van diagrammen en grafieken

Als Claude een grafiek moet “lezen” — een prijscurve, procesdiagram of architectuurdiagram — staat die informatie niet in Markdown. Markdown behoudt alleen de bijschriften bij figuren; de figuur zelf gaat verloren.

Oplossing: upload de PDF en schakel de visuele modus expliciet in. Bij de Claude API werkt de vlag automatisch; op AWS Bedrock heb je de vlag citations nodig.

Claude analyseert zowel de tekst als de afbeeldingen om het document beter te begrijpen.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

2. Complexe tabellen met samengevoegde cellen

Markdown-tabellen zijn plat. Als de PDF een tabel met samengevoegde cellen, koppen op meerdere niveaus of geneste subtabelletjes bevat, maakt de converter er een platte tabel van of gaan de onderlinge verbanden verloren.

Oplossing: gebruik de PDF rechtstreeks, gebruik Docling (dat complexe tabellen het best verwerkt) of formatteer de tabel na conversie handmatig.

3. Documenten als artefacten met paginaverwijzingen

Bij juridische documenten, contracten en notulen is het belangrijk dat je kunt verwijzen naar “pagina 7, alinea 3”. Paginanummers gaan verloren in Markdown.

Oplossing: PDF + Files API + promptcaching. Upload het document één keer en verwijs er daarna naar met file_id; Claude ziet de paginering en kan specifieke pagina’s noemen.

Korte documenten

Als een PDF minder dan 2 pagina’s telt en je die één keer gebruikt, is converteren de moeite niet waard. 5.000 tokens voor een PDF tegenover 800 voor Markdown is niet genoeg besparing om MarkItDown te installeren.

Het omslagpunt ligt rond 5+ pagina’s of 2+ keer hetzelfde document gebruiken. Daaronder upload je de PDF rechtstreeks; daarboven converteer je die.

Wat zijn de 5 meestgemaakte fouten bij het werken met PDF’s in Claude?

Belangrijkste punt

De belangrijkste valkuilen: dezelfde PDF opnieuw uploaden in verschillende chats in plaats van die één keer te converteren, promptcaching niet gebruiken voor herhaalde verzoeken, schermafbeeldingen gebruiken in plaats van tekst, gescande PDF’s niet met OCR verwerken en de limiet van 100 pagina’s voor modellen met 200K context negeren. Elke fout verspilt tienduizenden tokens zonder goede reden.

1. Dezelfde PDF telkens opnieuw uploaden in een nieuwe chat

Claude Pro heeft een berichtenlimiet per 5 uur — één rapport van 50 pagina’s kan die volledig opgebruiken voordat je een tweede vraag stelt.

Hiervoor geldt een eenvoudig principe: één taak — één chat. Wanneer AI een absurde hoeveelheid tokens begint te verbruiken, betekent dit dat je alles in één chat propt en de PDF steeds opnieuw toevoegt. Houd in elk venster één kleine taak aan. Converteer het document één keer naar Markdown en voeg het .md-bestand daarna samen met het project toe aan elk nieuw venster. De cirkel van het contextvenster wordt niet geel.

Oplossing: converteer de PDF één keer naar Markdown of gebruik de Files API met file_id en promptcaching.

2. Een schermafbeelding in plaats van tekst

Een typisch voorbeeld: iemand wil Claude een stukje code of een tabel laten zien, maakt een schermafbeelding van het volledige scherm van 1920×1080 en vraagt zich af waarom de limiet na 5 verzoeken op is.

Een schermafbeelding van 1000×1000 pixels kost ~1.300 tokens. Dezelfde tekst handmatig kopiëren kost 50–100 tokens. Dat is een verschil van 13–26 keer.

Oplossing: snijd schermafbeeldingen strak bij (zodat alleen het belangrijke deel overblijft), of beter nog, kopieer de tekst rechtstreeks.

3. Een gescande PDF zonder OCR

MarkItDown kan geen OCR uitvoeren. Als je een scan converteert, krijg je een leeg .md-bestand (of 3 regels ruis).

Oplossing: gebruik voor scans PyMuPDF4LLM (met de ingebouwde slimme OCR) of Docling.

4. De limiet van 100 pagina’s negeren

De documentatie van Anthropic vermeldt een limiet van 600 pagina’s per verzoek — maar in de praktijk geldt voor modellen met 200K context (Sonnet 4.x, Opus 4.x) een limiet van 100 pagina’s. De limiet van 600 pagina’s is bedoeld voor oudere modellen of speciale niveaus.

Als je een rapport van 150 pagina’s uploadt naar Sonnet 4.6, krijg je een foutmelding of, erger nog, verwerkt Claude alleen de eerste 100 pagina’s en doet het alsof het het hele document heeft gelezen.

Oplossing: splits lange PDF’s in delen voordat je ze uploadt. Of converteer ze naar Markdown — daarvoor geldt geen paginalimiet, alleen een tokenlimiet.

5. Promptcaching niet gebruiken voor herhaalde verzoeken

Als je via de API met hetzelfde document werkt, zet het dan in cache_control: ephemeral. Herhaalde verzoeken binnen 5 minuten kosten 10% van de oorspronkelijke prijs. Eén verzoek kost meer; de rest krijgt 90% korting.

Oplossing: schakel promptcaching standaard in voor alles wat je meer dan één keer uploadt.

Wat volgt: context engineering

Belangrijkste punt

PDF’s omzetten naar Markdown is een techniek voor context engineering, een nieuwe vaardigheid in het werken met AI. Een prompt is een vraag. Context is alles wat Claude vóór en rond de vraag ziet: de systeemprompt, CLAUDE.md, bestanden, MCP-servers en de sessiegeschiedenis. Hoe schoner de context, hoe nauwkeuriger het antwoord en hoe lager de kosten. Lees de volledige analyse in de gids “Context Engineering in 2026”.

PDF naar Markdown omzetten is één manier om tokens te besparen. Op zichzelf maakt het Claude’s antwoorden niet nauwkeuriger. Nauwkeurigheid komt voort uit context engineering — de discipline van bepalen wat je in de context van het model zet voordat je een vraag stelt.

Als je CLAUDE.md 800 regels telt, je project 10 onnodige MCP-servers bevat en je ook een PDF van 100 pagina’s toevoegt, voorkomt conversie naar Markdown één lek, maar de andere drie blijven bestaan. Daarom behandelen deze gidsen het volgende:

Ontdek Ailoot verder op ailoot.ai.

Meer details

Vragen en antwoorden

Hoeveel Markdown-tokens gebruikt het voorbeeld met 15 pagina’s en vier chats?

Met de aanname van 300 tokens per geconverteerde pagina is het totaal 15 × 300 × 4 = 18,000 invoertokens. Dat is een illustratieve schatting; tel de tokens van het geconverteerde document voor je eigen bestand.

Is tekstconversie genoeg voor elke PDF?

Nee. Vergelijk de geconverteerde Markdown met de PDF, vooral tabellen, paginavolgorde en inhoud die van afbeeldingen afhangt. Vergelijk tokengebruik pas nadat je bevestigt dat de nodige informatie voor je taak behouden bleef.

Alle artikelen