# PDF:t Claude Codessa: muuntaminen, tokenit ja rakenteen säilyttäminen

> MarkItDown, PyMuPDF4LLM, MCP, täydelliset muunnosskriptit, PDF-rajoitukset ja tilanteet, joissa visuaalinen analyysi on tärkeämpää kuin tokenien säästäminen.

Source: https://ailoot.ai/blog/fi/pdf-claude-code-markdown/
Canonical: https://ailoot.ai/blog/fi/pdf-claude-code-markdown/
Language: fi
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-196
Revision: sha256-beac4fe78e5b471de6f2e96aa023f88e0cc77e66cd082b3e308972fc081e9423


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

Jokainen Claude Coden PDF-sivu maksaa 1 500–3 000 tokenia jo ennen ensimmäistä kysymystä – ja Anthropic sanoo tämän suoraan dokumentaatiossaan. Alla olevassa havainnollistavassa laskelmassa 15-sivuinen raportti neljässä keskustelussa käyttää 135 000 PDF-syötetokenia noin 0,40 dollarilla ja 18 000 Markdown-syötetokenia 0,054 dollarilla, eli noin 87% vähemmän. Oletuksena on 2 250 PDF-tokenia tai 300 Markdown-tokenia sivua kohti esimerkin syötehinnalla. Todelliset asiakirjat vaihtelevat. Tässä oppaassa esitellään kolme muunnostapaa (MarkItDown, PyMuPDF4LLM ja MCP-palvelin) sekä käyttövalmis bash-skripti asiakirjakansion käsittelyyn.

</div>

<div class="aside" data-semantic="ailoot-docs-link" aria-label="Ailoot documentation">

Käytännön ohjeet Ailootin käyttöön löytyvät [dokumentaatiosta](https://ailoot.ai/docs/).

</div>

## Mitä PDF:lle tapahtuu Claudessa, ja miksi jokainen sivu maksaa 1 500–3 000 tokenia?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

Kun lataat PDF:n Claude Codeen, se ei lue sitä tekstitiedostona. Ensin jokainen sivu muunnetaan kuvaksi, sitten siitä poimitaan teksti, ja molemmat kerrokset – kuva ja teksti – lisätään kontekstiin yhdessä. Siksi yksi sivu vie 1 500–3 000 tokenia, ja 50-sivuinen dokumentti voi kuluttaa 75 000–150 000 tokenia ennen ensimmäistä kysymystäsi.

</div>

Anthropicin virallinen dokumentaatio kuvaa prosessin kolmessa yksinkertaisessa vaiheessa:

<figure>
<blockquote>
<p>Järjestelmä muuntaa jokaisen dokumentin sivun kuvaksi. Jokaiselta sivulta poimitaan teksti, joka toimitetaan sivukuvan rinnalla. Claude analysoi sekä tekstiä että kuvia ymmärtääkseen dokumentin paremmin.</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

Tämä kuulostaa loogiselta, mutta käsittelykustannukset kasvavat lineaarisesti sivumäärän mukana. Tässä on luku, joka selittää, miksi tilauksesi käyttöraja loppuu yhden PDF:n takia:

<figure>
<blockquote>
<p>Yksi sivu käyttää yleensä 1 500–3 000 tokenia sisällön tiheydestä riippuen. Koska jokainen sivu muunnetaan kuvaksi, siihen sovelletaan samaa kustannusta kuin tavallisiin kuviin.</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

Anthropic mittasi saman 3-sivuisen PDF:n Bedrockissa kahdella tavalla nähdäkseen, kuinka paljon tokeneita se vie. Tekstitilassa (Converse Document Chat) se käytti ~1 000 tokenia. Visuaalisessa analyysissä (Claude PDF Chat) se käytti ~7 000 tokenia. Kuvien lisääminen tekee käsittelystä **7 kertaa kalliimpaa**.

Sivujen kuvakaappaukset ovat vielä pahempia. 1000×1000 pikselin kuvakaappaus maksaa noin 1 300 tokenia.

Mekanismi on yksinkertainen: PDF:t ovat kalliita, koska Claude ei luota OCR-tunnistukseensa. Se käyttää sekä tekstiä että kuvaa voidakseen vertailla niitä – ja maksat molemmista kerroksista yhtä aikaa. Suurten dokumenttien kanssa voit toimia toisin: tallenna tiedosto Markdown-muodossa projektikansioosi ja sano Claudelle: ”tässä on tietoa sisältävä dokumentti – jaa se osiin.” Claude jakaa sisällön omien tiedostojensa kesken ja jatkaa työskentelyä järjestetyn tekstin parissa kuluttamatta kaikkea kerralla.

## Kuinka paljon PDF kuluttaa tavallisessa tehtävässä?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

Tarkastellaan 15-sivuista julkista raporttia neljässä eri yhteydessä: analyysissä, sitaateissa, käännöksessä ja yhteenvedossa. Oletetaan 2 250 syötetokenia PDF-sivulta, 300 muunnetulta Markdown-sivulta ja molemmille sama syötehinta. PDF:n uudelleenlataus käyttää 135 000 syötetokenia noin 0,40 dollarilla, Markdown 18 000 tokenia 0,054 dollarilla. Noin 87% säästö seuraa näistä oletuksista, ei jokaisen PDF:n mittauksesta.

</div>

Tarkat luvut (Sonnet 4.x -malli, syöte 3 $ miljoonaa tokenia kohden):

| Tapa | Tokenit (15 sivua, 4 keskustelua) | Hinta |
|------------------------------|-----------------------------|-------------|
| PDF ladattu suoraan 4 kertaa | 15 × 2250 × 4 = **135 000** | ~0,40 $ |
| PDF → Markdown + 4 keskustelua | 15 × 300 × 4 = **18 000** | ~0,054 $ |
| Säästö | **−87 %** | **−0,35 $** |

Tämä koskee vain yhtä neljän pyynnön kierrosta. Sen jälkeen käyttöön tulee promptien välimuisti (oletuksena 5 minuutin TTL, laajennetulla tasolla enintään 1 tunti ja enintään 90 % alennus toistuvista kutsuista aikaikkunan sisällä) – säästöt kasvavat.

Aina kun lataat saman PDF:n uuteen keskusteluun, Claude lukee sen uudelleen; välimuisti ei siirry keskustelusta toiseen.

Jos muunnat saman 15-sivuisen PDF:n kerran Markdowniksi ja tuot sen sitten kuhunkin neljään uuteen keskusteluun `.md`-tiedostona, esimerkki käyttää 15 × 300 × 4 = 18 000 syötetokenia 135 000:n sijaan. Muunnetun sivun 300 tokenia ja PDF-sivun 2 250 tokenia ovat laskelman oletuksia, eivät jokaiselle PDF:lle mitattuja vakioita. Laske oman asiakirjasi tokenit ja varmista muunnoksen laatu ennen säästön arviointia.

Tämä laskelma on vielä merkityksellisempi Claude Pro -tilauksella. Yksi 100-sivuinen raportti voi kuluttaa koko 5 tunnin käyttörajan. Markdown-muunnoksen jälkeen samaan budjettiin mahtuu yli 10 tällaista dokumenttia.

## Mitkä ovat Anthropicin PDF-tiedostojen API-rajoitukset vuonna 2026?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

Anthropicilla on tiukat rajat: enintään 32 Mt pyyntöä kohti (mukaan lukien kaikki sisältö, ei vain PDF) ja enintään 600 sivua pyyntöä kohti. Nykyisillä Sonnet 4.x- ja Opus 4.x -malleilla, joiden konteksti on 200K, raja on kuitenkin pienempi: **100 sivua**. PDF:n voi lähettää kolmella tavalla: URL-osoitteella, Base64-muodossa tai Files API:n kautta, jolloin sitä voi käyttää uudelleen `file_id`-tunnisteella. Files API:a ja tiedoston jakamista osiin käytetään pitkissä dokumenteissa.

</div>

Anthropicin dokumentaatiossa rajat luetellaan heti alussa (tilanne 31. toukokuuta 2026):

| Vaatimus | Raja |
|-----------------------------|--------------------------------------------|
| Pyynnön enimmäiskoko | 32 Mt (vaihtelee alustakohtaisesti) |
| Sivujen enimmäismäärä pyyntöä kohti | 600 (100 malleilla, joiden konteksti on 200K tokenia) |
| Muoto | Tavallinen PDF ilman salasanaa tai salausta |

<figure>
<blockquote>
<p>Molemmat rajat koskevat koko pyyntörunkoa, myös PDF:n rinnalla toimitettavaa sisältöä. Suurissa PDF-tiedostoissa käytä Files API:a ja viittaa tiedostoon `file_id`-tunnisteella, jotta pyyntörunko pysyy pienenä.</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

Claude.ai-kuluttajasovelluksessa on eri rajat: enintään 500 Mt tiedostoa kohti ja enintään 20 tiedostoa keskustelussa. Visuaalinen analyysi toimii kuitenkin vain enintään 100-sivuisissa PDF-tiedostoissa – tätä pidemmissä Claude näkee vain tekstin, ei kaavioita tai kuvia.

PDF:n voi lähettää API:n kautta kolmella tavalla:

1. **URL-osoitteella** - `"source": {"type": "url", "url": "..."}` - yksinkertaisin tapa, kun dokumentti on verkossa.
2. **Base64-muodossa** - `"source": {"type": "base64", "media_type": "application/pdf", "data": "..."}` - paikallisille tiedostoille.
3. **Files API:n kautta** - `"source": {"type": "file", "file_id": "file_abc123"}` - toistuviin pyyntöihin; vaatii beta-otsakkeen `anthropic-beta: files-api-2025-04-14`.

Files API on tärkein säästötapa, kun työskentelet saman PDF:n kanssa eri keskusteluissa. Lataa tiedosto kerran, hanki `file_id` ja käytä sitä kaikissa vuorovaikutuksissa. Kun käytössä on `cache_control: ephemeral`, toistuvat kutsut maksavat 10 % normaalihinnasta.

Anthropic neuvoo virallisesti myös käytön minimoimisessa:

<figure>
<blockquote>
<p>Tiheät PDF:t (paljon pientä tekstiä, monimutkaisia taulukoita tai runsaasti grafiikkaa) voivat täyttää konteksti-ikkunan ennen sivurajan saavuttamista. Kokeile jakaa dokumentti osiin; suurissa tiedostoissa pienennä upotettujen kuvien tarkkuutta ennen lataamista.</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

## Menetelmä 1: Miten MarkItDown otetaan käyttöön 5 minuutissa?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

MarkItDown on Microsoftin AutoGen-tiimin Python-apuohjelma, joka muuntaa PDF-, DOCX-, PPTX-, XLSX- ja HTML-tiedostot, äänitiedostot, kuvat ja jopa YouTube-videot siistiksi Markdowniksi. Sillä on GitHubissa 134 tuhatta tähteä, MIT-lisenssi ja se asentuu yhdellä komennolla: `pip install 'markitdown[all]'`. Käyttö on yhtä helppoa: `markitdown document.pdf > document.md`. Monipuolisin työkalu tiedostojen muuntamiseen ennen Claude Coden käyttöä.

</div>

MarkItDown on Microsoftin virallinen projekti, jota ylläpitää AutoGen-tiimi. GitHubissa sillä on 134 tuhatta tähteä ja 9,2 tuhatta forkia (toukokuun 2026 lopussa). README kuvaa sen tarkoituksen suoraan:

<figure>
<blockquote>
<p>Kevyt Python-apuohjelma tiedostojen muuntamiseen Markdown-muotoon LLM-malleja ja tekstianalyysiputkia varten.</p>
</blockquote>
<figcaption>— Microsoft, https://github.com/microsoft/markitdown</figcaption>
</figure>

Tuetut tiedostomuodot:

- **Dokumentit:** PDF, DOCX, PPTX, XLSX
- **Verkko:** HTML, JSON, XML, CSV
- **Media:** ääni transkriptiolla, kuvat EXIF-tiedoilla ja OCR:llä, YouTube-videot (tekstitysten kautta)
- **Arkistot:** ZIP, EPub
- **Muut:** kaikki Outlook MSG -tiedostojen liitteet

### Asennus

Vaatimus: Python 3.10+ (yleensä jo asennettuna macOS:ssä; Windowsissa se on asennettava erikseen).

```bash
pip install 'markitdown[all]'
```

Jos et tarvitse kaikkia tiedostomuotoja, voit asentaa vain valitut:

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

### Yhden tiedoston muuntaminen

Yksinkertaisin tapaus:

```bash
markitdown document.pdf > document.md
```

Sen jälkeen `document.md` ilmestyy nykyiseen kansioon. Tuo se Claude Codeen komennolla `@document.md` tai sijoita se projektin viereen.

### Python-rajapinta

Jos haluat integroida sen skriptiisi:

```python
from markitdown import MarkItDown

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

# Voit tallentaa sen saman tien:
with open("research-paper.md", "w") as f:
    f.write(result.text_content)
```

### Mitä MarkItDown EI osaa

- **Skannattujen PDF-tiedostojen OCR** - se ei palauta mitään. Skannaukset vaativat PyMuPDF4LLM:n tai Doclingin.
- **Monimutkaiset, usean palstan asettelut** - lukujärjestys voi mennä sekaisin.
- **PDF-tiedostoihin upotetut URL-osoitteet** - niitä ei säilytetä.

Yksinkertaisille PDF-tiedostoille (raportit, artikkelit, dokumentaatio) MarkItDown on paras valinta: monipuolinen työkalu, joka asentuu minuutissa eikä vaadi Python-osaamista. Sen toimintaa kyrillisellä tekstillä ja skannauksilla kuvaavat mittaukset analyysissä, jossa käsitellään [PDF:n muuntamista tekstiksi tekoälyä varten](https://ailoot.ai/blog/fi/markitdown-pdf-word-to-text/).

## Menetelmä 2: Mitä PyMuPDF4LLM tarjoaa, ja milloin se on parempi?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

PyMuPDF4LLM on Artifex Softwaren projekti, joka perustuu natiiviin C-kielellä toteutettuun MuPDF-moottoriin. Se on nopein PDF-muunnin (GPU:ta ei tarvita); älykästä OCR:ää käytetään vain lukukelvottomilla alueilla, mikä lyhentää käsittelyaikaa 50 %. Se on ainoa suosittu työkalu, joka säilyttää PDF-tiedostojen upotetut URL-osoitteet ja kuvat. Haittapuolena on kaksoislisenssi AGPL v3 / Artifex Commercial: SaaS-projekteissa AGPL tarkoittaa, että sinun on julkaistava koodisi.

</div>

MarkItDown tarjoaa laajan tiedostomuototuen; PyMuPDF4LLM tarjoaa syvällistä PDF-käsittelyä.

<figure>
<blockquote>
<p>Kevyt PyMuPDF-laajennus, joka muuntaa PDF:t selkeäksi, rakenteiseksi dataksi vähäisellä käyttöönotolla.</p>
</blockquote>
<figcaption>— Artifex Software, https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/</figcaption>
</figure>

Versio 31. toukokuuta 2026 on 1.27.2.3 (julkaistu 24. huhtikuuta 2026).

### Mitä sisältyy

- Monipalstaiset sivut oikeassa lukujärjestyksessä
- Taulukot muunnetaan GitHub-flavored Markdowniksi
- Ylä- ja alatunnisteet poistetaan automaattisesti
- Kuvat poimitaan erilliseen kansioon suhteellisten linkkien kanssa
- Älykäs OCR: käytetään vain lukukelvottomilla alueilla, mikä säästää ~50 % käsittelyajasta
- Natiivi C-moottori, **GPU:ta ei tarvita**

### Asennus

```bash
pip install pymupdf4llm
```

### Käyttö

```python
import pymupdf4llm

# Peruskäyttö - suoraan Markdown-muotoon:
md_text = pymupdf4llm.to_markdown("document.pdf")

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

Yhdellä rivillä, kuten luvattiin:

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

### Milloin kannattaa valita PyMuPDF4LLM MarkItDownin sijaan?

- Kun PDF sisältää paljon säilytettäviä linkkejä (MarkItDown kadottaa ne).
- Kun dokumentti on skannattu ja tarvitset OCR:ää.
- Kun käsittelet tuhansia tiedostoja paikallisesti ja tarvitset nopeutta – natiivi C-moottori on Python-kääreitä nopeampi.
- Kun tarvitset PDF:n kuvat erilliseen kansioon jatkokäsittelyä varten.

### Lisenssin yksityiskohdat (tärkeää yrityksille)

PyMuPDF4LLM:llä on kaksoislisenssi: AGPL v3 TAI Artifex Commercial.

**AGPL tarkoittaa:** jos käytät kirjastoa julkisessa SaaS-palvelussa, koko palvelun lähdekoodi on julkaistava saman AGPL-lisenssin alaisena. Sisäisessä käytössä (esimerkiksi omalla kannettavallasi oleva skripti) ei ole rajoituksia.

Jos kehität kaupalliseen käyttöön paljastamatta koodia, osta lisenssi Artifexilta (artifex.com). Hintoja ei julkaista; pyydä ne myynnistä.

Jos rakennat tuotetta asiakkaille, tarkista lisenssi heti alussa. MarkItDown (MIT) ja Docling (MIT) ovat turvallisempia valintoja SaaS-palveluille.

## Menetelmä 3: Miten MarkItDown MCP -palvelin yhdistetään Claude Codeen?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

MarkItDown MCP -palvelin on sama MarkItDown MCP-protokollaan käärittynä, joten Claude Code voi muuntaa PDF-tiedostoja lennosta lataamatta alkuperäistä tiedostoa kontekstiin. Yhdistä se yhdellä uv-komennolla; versio on lukittu: `markitdown-mcp@0.0.1a7`. Clauden saama työkalu on `convert_to_markdown(uri)`. Tyhjäkäynnin kustannus on ~110 tokenia taitokuvauksesta ja nolla silloin, kun sitä ei tarvita.

</div>

MarkItDown CLI-tilassa tarkoittaa ”muunnan tiedostot käsin etukäteen”; MCP-palvelin tarkoittaa ”Claude Code päättää, milloin muunnos tehdään”.

### Asennus

Tarvitset uv-pakettienhallinnan. Palvelinta ei tarvitse asentaa erikseen; uv lataa sen ensimmäisellä käynnistyskerralla.

### Määritys Claude Codessa

Yksi komento yhdistää palvelimen kaikkiin projekteihisi kiinteällä versiolla:

```bash
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
```

`markitdown`-merkinnän pitäisi näyttää ”Connected”. Ensimmäinen käynnistys lataa noin seitsemänkymmentä pakettia ja kestää enintään minuutin; sen jälkeen palvelin käynnistyy sekunnissa tai kahdessa.

Kaksi muuttujaa tarvitaan seuraavista syistä. `ORT_DISABLE_TELEMETRY=1` poistaa käytöstä tilastot, joita palvelimen sisäinen onnxruntime-moottori lähettää oletuksena Microsoftille Macissa ja Linuxissa. `UV_PYTHON=3.12` käynnistää palvelimen Python 3.12:lla, jolle on saatavilla valmiiksi käännetyt paketit Windowsille, Linuxille ja Apple Silicon -Maceille. Intel-Maceissa ja macOS 13:ssa tai sitä vanhemmissa palvelin ei asennu Python 3.14:llä. Intelille ja 3.12:lle on yksi huomio: uv kääntää cryptography-kirjaston lähdekoodista, koska valmista Intel-pakettia ei ole ollut saatavilla kesäkuun 2026 jälkeen. Asennus kestää kauemmin ja voi epäonnistua. Jos Python 3.12 ei ole asennettuna, uv lataa sen puolestasi.

Palvelin toimii suoraan tietokoneellasi ja voi avata kaikki tiedostot, joihin sinulla on käyttöoikeus. Jos Claude Code oli auki, käynnistä se uudelleen; `markitdown` ilmestyy MCP-palvelinten luetteloon.

### Käyttö

Sano Claude Codessa esimerkiksi:

```
Muunna /Users/your-user/Documents/report.pdf Markdown-muotoon ja analysoi pääkohdat.
```

Claude kutsuu itse `convert_to_markdown(uri)`-työkalua, saa Markdownin ja työskentelee sen kanssa – PDF:ää ei ladata lainkaan kontekstiin.

### Tuetut URI:t

- `file://` - paikalliset tiedostot
- `http://`, `https://` - verkossa olevat dokumentit
- `data:` - sisäiset tiedot (Base64)

### Tietoturva

Virallisesta README-tiedostosta:

<figure>
<blockquote>
<p>Palvelin ei tue valtuutusta, ja se toimii sen käyttäjän käyttöoikeuksilla, joka käynnisti sen.</p>
</blockquote>
<figcaption>— Microsoft, https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp</figcaption>
</figure>

Oletuksena se on sidottu localhost-osoitteeseen. Jos suoritat sen HTTP/SSE:n kautta (valinnalla `--http --host 127.0.0.1 --port 3001`), älä avaa porttia ulkoisesti ilman tunnistautumista vaativaa käänteistä välityspalvelinta.

## Minkä menetelmän valitset tehtävääsi?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

MarkItDown on yleisratkaisu, jos käsittelet useita tiedostomuotoja (PDF + DOCX + PPTX + YouTube) ja tarvitset nopean CLI-komennon. PyMuPDF4LLM on PDF-asiantuntija: nopeampi, OCR:llä ja linkkien säilytyksellä varustettu, mutta SaaS-käyttöön liittyy AGPL-ansa. Docling soveltuu tuotantokäyttöön ja käsittelee parhaiten taulukoita ja kaavoja. Marker on tarkoitettu matemaattisille tieteellisille artikkeleille. MCP-palvelin sopii silloin, kun et halua miettiä muunnosta vaan haluat Claude Coden päättävän siitä itse.

</div>

Laajennettu vertailutaulukko:

| Työkalu | GitHub-tähdet | Paras käyttökohde | Nopeus | Lisenssi |
|----|----|----|----|----|
| **MarkItDown** (Microsoft) | 134k | PDF + DOCX + PPTX + YouTube + ääni | Keskitaso | MIT |
| **PyMuPDF4LLM** (Artifex) | \- | Natiivi PDF, OCR, upotetut URL-osoitteet | Nopein (ei GPU:ta) | AGPL v3 / kaupallinen |
| **Docling** (IBM Research) | 60.7k | Tuotannon RAG, taulukot, kaavat | Keskitaso | MIT |
| **Marker** (datalab.to) | 35.6k | Tieteelliset PDF:t, arXiv, kaavat | Korkea (GPU:lla) | GPL-3.0 + Open Rail-M |
| **MinerU** | \- | CJK-asiakirjat (kiina/japani) | Korkea | Apache-2.0 |

Marker ilmoittaa vaikuttavia tarkkuuslukuja vertailutesteissä:

<figure>
<blockquote>
<p>0,18 sekuntia sivua kohden H100-GPU:lla (122 sivua sekunnissa). Tarkkuus 95,67 % verrattuna Llamaparseen (84,24 %) ja Mathpixiin (86,43 %). Tieteellisissä artikkeleissa 96,67 %.</p>
</blockquote>
<figcaption>— datalab.to, https://github.com/datalab-to/marker</figcaption>
</figure>

Marker vaatii kuitenkin GPU:n ollakseen nopea, ja se tuo mukanaan koneoppimismalleja. Useimpiin tehtäviin (tavalliset tekstipohjaiset PDF:t) PyMuPDF4LLM tai MarkItDown hoitaa työn muutamassa sekunnissa ilman GPU:ta.

### Yksinkertainen valintasääntö

1. **Yksi tai kaksi PDF:ää, tarvitaan nopeasti** - MarkItDown CLI.
2. **Kymmeniä PDF:iä, tarvitaan automaatiota** - MarkItDown MCP -palvelin tai PyMuPDF4LLM-skriptissä.
3. **PDF:t, joissa on säilytettäviä linkkejä ja kuvia ja joiden rakenne on tärkeä** - PyMuPDF4LLM.
4. **Yrityksen tuotannon RAG, jossa taulukoiden vakaus on tärkeää** - Docling.
5. **Tieteelliset artikkelit, joissa on kaavoja** - Marker.
6. **Et halua miettiä asiaa; anna Clauden muuntaa** - MarkItDown MCP -palvelin.

## Miten kirjoitat valmiin skriptin, joka muuntaa asiakirjakansion automaattisesti?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

Kätevin tapa on bash-skripti, joka käy projektikansion läpi, muuntaa kaikki PDF-, DOCX- ja PPTX-tiedostot Markdowniksi ja tallentaa ne `_md/`-alikansioon. Ota se käyttöön kerran, niin jokainen uusi asiakirjakansio muuttuu ”Claude-luettavaksi” yhdellä ajolla. Tuo sitten `_md/` Claude Codeen komennolla `@_md/` ja työskentele pakatun tekstin kanssa.

</div>

Käytännön esimerkki: kuvittele, että yhdessä kansiossa on 40 asiakkaiden PDF- ja PPTX-raporttia – välitysliikkeiden tiliotteita, sopimuksia ja esityksiä. Koko kansion lataaminen suoraan Claudeen ei auta: konteksti-ikkuna täyttyy tiedoista ennen ensimmäistä vastausta. Aja koko kansio alla olevalla skriptillä kerralla ja jatka sen jälkeen kevyiden `.md`-tiedostojen käsittelyä raskaiden PDF:ien sijaan.

Tallenna tämä skripti projektin juureen nimellä `scripts/docs-to-md.sh`:

```bash
#!/bin/bash
# docs-to-md.sh - muuntaa kaikki kansion asiakirjat Markdown-muotoon MarkItDownilla
# Käyttö: 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"
```

Tee siitä suoritettava:

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

Suorita se:

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

Ajokerran jälkeen `./reports/_md/` sisältää kaikkien dokumenttien `.md`-versiot. Tuo ne Claude Codeen komennolla `@reports/_md/` ja työskentele pakatun tekstin kanssa PDF:ien sijaan.

Skripti ohittaa automaattisesti jo muunnetut tiedostot (jos `.md`-tiedosto on lähdetiedostoa uudempi) – sen uudelleenajo on nopeaa eikä kaikkea tarvitse käsitellä uudestaan.

### Idempotenssi ja inkrementaalinen muuntaminen

Jos haluat skriptin tunnistavan PDF:t, joita on muutettu (tallennettu uudelleen samalla nimellä), lisää sisältötiivisteen tarkistus:

```bash
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"
```

Tämä versio muuntaa tiedoston uudelleen vain, jos sen sisältö on muuttunut.

## Milloin PDF on Claudessa edelleen parempi kuin Markdown?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

Markdown-muunnoksessa katoaa kolme asiaa: visuaaliset elementit (kaaviot, graafit, piirustukset), monimutkaiset taulukot yhdistettyine soluineen ja kuvateksteineen sekä dokumentin täydellinen ulkoasu artefaktina (esimerkiksi sopimus, johon sinun on viitattava sivunumeron perusteella). Jos nämä asiat ovat tehtävän kannalta tärkeitä, säilytä PDF, ota visuaalinen analyysi käyttöön ja maksa visuaalisesta käsittelystä tietoisesti.

</div>

Kolme tilannetta, joissa Markdown-muunnos ei riitä:

### 1. Kaavioiden ja graafien visuaalinen analyysi

Jos Clauden pitää ”lukea” kaaviota – hintakäyrää, prosessikaaviota tai arkkitehtuurikaaviota – tieto ei ole Markdownissa. Markdown säilyttää vain kuvatekstit; itse kuva katoaa.

Ratkaisu: lataa PDF ja ota visuaalinen tila erikseen käyttöön. Claude API:ssa lippu toimii automaattisesti; AWS Bedrockissa tarvitset `citations`-lipun.

<figure>
<blockquote>
<p>Claude analysoi sekä tekstiä että kuvia ymmärtääkseen dokumentin paremmin.</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

### 2. Monimutkaiset taulukot, joissa on yhdistettyjä soluja

Markdown-taulukot ovat litteitä. Jos PDF:ssä on yhdistettyjä soluja, monitasoisia otsikoita tai sisäkkäisiä alitaulukoita, muunnin joko litistää taulukon tai kadottaa sen suhteet.

Ratkaisu: käytä PDF:ää suoraan, käytä Doclingia (se käsittelee monimutkaiset taulukot parhaiten) tai muotoile taulukko käsin muunnoksen jälkeen.

### 3. Dokumentit artefakteina ja sivuviittaukset

Oikeudellisissa asiakirjoissa, sopimuksissa ja pöytäkirjoissa on tärkeää voida viitata kohtaan ”sivu 7, kappale 3”. Sivunumerot katoavat Markdownissa.

Ratkaisu: PDF + Files API + promptien välimuisti. Lataa dokumentti kerran ja viittaa siihen sitten `file_id`-tunnisteella; Claude näkee sivunumeroinnin ja voi viitata tiettyihin sivuihin.

### Lyhyet dokumentit

Jos PDF on alle 2 sivua ja käytät sitä kerran, muuntaminen ei kannata. PDF:n 5 000 tokenia verrattuna Markdownin 800 tokeniin ei tuota riittävästi säästöä MarkItDownin asennuksen perustelemiseksi.

Kannattavuusraja on noin 5+ sivua tai 2+ käyttökertaa samalle dokumentille. Tätä pienemmät tiedostot kannattaa ladata suoraan PDF:nä; tätä suuremmat kannattaa muuntaa.

## Mitkä ovat 5 yleisintä virhettä, joita ihmiset tekevät Clauden PDF-tiedostojen kanssa?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

Tärkeimmät sudenkuopat: saman PDF:n lataaminen uudelleen eri keskusteluihin sen sijaan, että se muunnettaisiin kerran; promptien välimuistin käyttämättä jättäminen toistuvissa pyynnöissä; kuvakaappausten käyttäminen tekstin sijaan; skannattujen PDF:ien jättäminen OCR-käsittelyä vaille ja 100 sivun rajan unohtaminen malleissa, joiden konteksti on 200K. Jokainen virhe tuhlaa kymmeniä tuhansia tokeneita ilman hyvää syytä.

</div>

### 1. Saman PDF:n lataaminen uuteen keskusteluun joka kerta

Claude Prolla on viiden tunnin viestiraja – yksi 50-sivuinen raportti voi kuluttaa sen loppuun ennen kuin ehdit esittää toista kysymystä.

Tähän on yksinkertainen periaate: **yksi tehtävä – yksi keskustelu**. Kun tekoäly alkaa kuluttaa kohtuuttoman paljon tokeneita, syynä on se, että yrität mahduttaa kaiken yhteen keskusteluun ja tuot PDF:n mukaan yhä uudelleen. Pidä jokaisessa ikkunassa yksi mikrotehtävä. Muunna dokumentti Markdowniksi kerran ja lisää `.md`-tiedosto jokaiseen uuteen ikkunaan projektin rinnalle. Konteksti-ikkunan ympyrä ei muutu keltaiseksi.

Ratkaisu: muunna se Markdowniksi kerran tai käytä Files API:a `file_id`-tunnisteen ja promptien välimuistin kanssa.

### 2. Kuvakaappaus tekstin sijaan

Tyypillinen esimerkki: joku haluaa näyttää Claudelle koodinpätkän tai taulukon, ottaa kuvakaappauksen koko 1920×1080-näytöstä ja ihmettelee, miksi käyttöraja tuli vastaan viiden pyynnön jälkeen.

1000×1000 pikselin kuvakaappaus maksaa ~1 300 tokenia. Sama käsin kopioitu teksti maksaa 50–100 tokenia. Ero on 13–26-kertainen.

Ratkaisu: rajaa kuvakaappaukset tiukasti vain tärkeään kohtaan tai, mikä vielä parempi, kopioi teksti suoraan.

### 3. Skannattu PDF ilman OCR:ää

MarkItDown ei osaa OCR:ää. Jos muunnat skannauksen, tuloksena on tyhjä `.md`-tiedosto (tai kolme riviä kohinaa).

Ratkaisu: käytä skannauksiin PyMuPDF4LLM:ää (jossa on sisäänrakennettu älykäs OCR) tai Doclingia.

### 4. 100 sivun rajan sivuuttaminen

Anthropicin dokumentaatiossa pyyntökohtaiseksi rajaksi annetaan 600 sivua – käytännössä 200K-kontekstia käyttävien mallien (Sonnet 4.x, Opus 4.x) raja on kuitenkin **100 sivua**. 600 sivun raja on tarkoitettu vanhemmille malleille tai erityistasoille.

Jos lataat 150-sivuisen raportin Sonnet 4.6:een, saat virheen tai, mikä pahempaa, Claude käsittelee vain ensimmäiset 100 sivua ja toimii kuin olisi lukenut koko dokumentin.

Ratkaisu: jaa pitkät PDF:t osiin ennen lataamista. Tai muunna ne Markdowniksi – sivurajaa ei ole, vain tokenraja.

### 5. Promptien välimuistin käyttämättä jättäminen toistuvissa pyynnöissä

Jos käsittelet samaa dokumenttia API:n kautta, lisää se kenttään `cache_control: ephemeral`. Viiden minuutin sisällä toistetut kutsut maksavat 10 % alkuperäisestä hinnasta. Ensimmäinen pyyntö maksaa enemmän; loput saavat 90 % alennuksen.

Ratkaisu: ota promptien välimuisti oletusarvoisesti käyttöön kaikelle, jonka lataat useammin kuin kerran.

## Mitä seuraavaksi: kontekstisuunnittelu

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway">

Keskeinen huomio

PDF:ien muuntaminen Markdowniksi on yksi kontekstisuunnittelun tekniikka ja uusi taito tekoälyn kanssa työskentelyyn. Prompti on kysymys. Konteksti on kaikki, mitä Claude näkee ennen kysymystä ja sen ympärillä: järjestelmäprompti, CLAUDE.md, tiedostot, MCP-palvelimet ja istunnon historia. Mitä siistimpi konteksti, sitä tarkempi vastaus ja sitä pienemmät kustannukset. Lue koko analyysi oppaasta ”Kontekstisuunnittelu vuonna 2026”.

</div>

PDF:n muuntaminen Markdowniksi on yksi tapa säästää tokeneita. Se ei yksinään tee Clauden vastauksista tarkempia. Tarkkuus syntyy **kontekstisuunnittelusta** – siitä, mitä mallin kontekstiin lisätään ennen kysymyksen esittämistä.

Jos `CLAUDE.md`-tiedostossasi on 800 riviä, projektissasi on 10 tarpeetonta MCP-palvelinta ja tuot mukaan 100-sivuisen PDF:n, Markdown-muunnos estää yhden vuodon, mutta kolme muuta jäävät jäljelle. Siksi näissä oppaissa käsitellään seuraavia aiheita:

- [Mihin tokenit kuluvat Claude Codessa](https://ailoot.ai/blog/fi/where-claude-code-tokens-go/) - 9 kontekstivuodon mallia, eivätkä vain PDF:t.
- [Kontekstisuunnittelu vuonna 2026](https://ailoot.ai/blog/fi/context-engineering/) - järjestelmällinen kontekstinhallinta.
- [Plan Mode Claude Codessa](https://ailoot.ai/blog/fi/claude-code-plan-mode/) - suunnittelutila ennen kuin Claude alkaa kirjoittaa koodia.

<div class="section" role="doc-bibliography" aria-label="Sources">

### Lähteet

- [Anthropic - PDF-tuki (platform.claude.com)](https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support)
- [Anthropic - Tiedostojen lataaminen Claudeen (support.claude.com)](https://support.claude.com/en/articles/8241126-upload-files-to-claude)
- [Microsoft MarkItDown GitHubissa](https://github.com/microsoft/markitdown)
- [MarkItDown MCP -palvelin](https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp)
- [PyMuPDF4LLM - virallinen dokumentaatio](https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/)
- [Docling GitHubissa (IBM Research)](https://github.com/DS4SD/docling)
- [Marker GitHubissa (datalab.to)](https://github.com/datalab-to/marker)

</div>



<div class="aside" data-semantic="ailoot-link" aria-label="Ailoot">

Tutustu Ailootiin lisää osoitteessa [ailoot.ai](https://ailoot.ai/).

</div>

## Kysymyksiä tästä oppaasta: PDF:t Claude Codessa: muuntaminen, tokenit ja rakenteen säilyttäminen

### Montako Markdown-tokenia 15 sivun ja neljän keskustelun esimerkki käyttää?

Artikkelin 300 tokenin sivuoletuksella kokonaismäärä on 15 × 300 × 4 = 18 000 syötetokenia. Tämä on havainnollistava arvio. Laske muunnetun asiakirjan tokenit omaa tiedostoasi varten.

### Riittääkö tekstimuunnos jokaiselle PDF:lle?

Ei. Vertaa muunnettua Markdownia PDF:ään erityisesti taulukoiden, sivujärjestyksen ja kuviin perustuvan sisällön osalta. Vertaa tokenikäyttöä vasta varmistettuasi tehtävän tarvitseman tiedon säilyneen muunnoksessa.


## Ailoot · Yritys ja sen projektisalkku

Ailoot perustuu kertyneeseen toimintakokemukseen, laajaan asiakaskuntaan, vakaaseen palveluun ja jatkuvaan KPI-seurantaan.

Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.

Ailoot hyödyntää tätä toimintakokemusta tarjotessaan API-yhteyden tekoälytoimintoihin asiakkaiden tuotteissa, agenteissa, sovelluksissa ja automaatioissa.
