# Claude CodeでPDFを扱う：変換、トークン、構造の保持

> MarkItDown、PyMuPDF4LLM、MCP、完全な変換スクリプト、PDFの制限、トークン節約より視覚分析が重要になるケース。

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


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

重要なポイント

Claude Codeでは、最初の質問をする前にPDFの各ページで1,500～3,000トークンを消費します。Anthropicは公式ドキュメントでこれを明記しています。以下の計算例では、15ページを4チャットで使うとPDFは135,000入力トークンで約$0.40、Markdownは18,000で$0.054、約87%少なくなります。PDF1ページ2,250、Markdown1ページ300トークンと例の入力単価を仮定しており、実際の文書では変わります。このガイドでは、3つの変換方法（MarkItDown、PyMuPDF4LLM、MCPサーバー）と、文書フォルダー向けのすぐに使えるbashスクリプトを紹介します。

</div>



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

Ailootの実践的な使い方は[ドキュメント](https://ailoot.ai/docs/)にあります。

</div>

## ClaudeではPDFはどのように処理され、なぜ各ページで1,500～3,000トークンを消費するのか？

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

重要なポイント

Claude CodeにPDFをアップロードしても、テキストファイルとして読むわけではありません。まず各ページが画像に変換され、そこからテキストが抽出されます。そして画像とテキストの両方が同時にコンテキストに追加されます。そのため1ページで1,500～3,000トークンを使い、50ページの文書では最初の質問をする前に75,000～150,000トークンを消費することがあります。

</div>

Anthropicの公式ドキュメントでは、この処理をわかりやすく3つの手順で説明しています。

<figure>
<blockquote>
<p>システムは文書の各ページを画像に変換します。各ページからテキストが抽出され、ページ画像とあわせて提供されます。Claudeはテキストと画像の両方を分析して、文書をより深く理解します。</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

筋は通っていますが、処理コストはページ数に比例して増えます。そして、サブスクリプションの上限がPDFひとつで尽きる理由を示す数字があります。

<figure>
<blockquote>
<p>各ページでは、内容の密度に応じて通常1,500～3,000トークンを使用します。各ページが画像に変換されるため、一般的な画像と同じコストが適用されます。</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

どれほどの量かを示すため、AnthropicはBedrockで同じ3ページのPDFを2つのモードで測定しました。テキストモード（Converse Document Chat）では約1,000トークンでした。視覚分析（Claude PDF Chat）では約7,000トークンでした。画像を含めると処理コストは**7倍**になります。

ページのスクリーンショットはさらに多く消費します。1,000×1,000ピクセルのスクリーンショットは約1,300トークンを消費します。

仕組みは単純です。ClaudeはOCRを信用しきれないため、PDFはコストが高くなります。テキストと画像の両方を使って照合するので、2つの層の料金を同時に支払うことになります。大きな文書では、別の方法を使えます。ファイルをプロジェクトフォルダーにMarkdownとして保存し、Claudeに「情報が入った文書を渡すので、内容を整理して広げてください」と伝えます。Claudeは内容を自分のファイルに分散し、一度にすべてを消費する代わりに、整理されたテキストを使って作業を続けます。

## 一般的なタスクではPDFはどれくらい消費するのか？

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

重要なポイント

分析、引用、翻訳、要約の4つの文脈で使う15ページの公開レポートを考えます。PDF1ページ2,250、変換Markdown1ページ300入力トークンで、同じ入力単価と仮定します。PDFを毎回送ると135,000入力トークン、約$0.40、Markdownなら18,000、$0.054です。約87%の節約はこの仮定から得られるもので、あらゆるPDFでの実測結果ではありません。

</div>

具体的な数字（Sonnet 4.xモデル、入力料金は100万トークンあたり$3）：

| 方法 | トークン数（15ページ、4チャット） | コスト |
|------------------------------|-----------------------------|-------------|
| PDFを直接4回アップロード | 15 × 2250 × 4 = **135,000** | 約$0.40 |
| PDF → Markdown + 4チャット | 15 × 300 × 4 = **18,000** | 約$0.054 |
| 節約額 | **−87%** | **−$0.35** |

これは4回のリクエストを1サイクル行っただけの数字です。その後はプロンプトキャッシュが効き始めます（デフォルトのTTLは5分、拡張ティアでは最大1時間で、その時間内の再呼び出しは最大90%割引）。節約額はさらに増えます。

同じPDFを新しいチャットにアップロードするたびに、Claudeはもう一度読み込みます。チャットをまたいでキャッシュは引き継がれません。

同じ15ページのPDFを一度Markdownへ変換し、4つの新規チャットへ`.md`として読み込むと、この例では15 × 300 × 4 = 18,000入力トークンとなり、135,000ではありません。変換後1ページ300、PDF1ページ2,250はこの計算の仮定で、すべてのPDFの実測定数ではありません。自分の文書の数を測り、変換品質を確認してから節約を見積もってください。

Claude Proサブスクリプションでは、この差がさらに大きくなります。100ページのレポートひとつで5時間の上限を使い切ることがあります。Markdownに変換すれば、同じ予算内でそのような文書を10件以上扱えます。

## 2026年のAnthropic APIにおけるPDFの制限は？

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

重要なポイント

Anthropicには厳格な制限があります。1リクエストあたり最大32 MB（PDFだけでなく、すべての内容を含む）で、1リクエストあたり最大600ページです。ただし、コンテキストが200Kの現行Sonnet 4.xおよびOpus 4.xモデルでは上限が**100ページ**です。PDFはURL、Base64、またはFiles API経由で送信でき、再利用には`file_id`を使います。長い文書にはFiles APIと分割を組み合わせます。

</div>

Anthropicのドキュメントには、上部に制限が記載されています（2026年5月31日現在）。

| 要件 | 制限 |
|-----------------------------|--------------------------------------------|
| リクエストの最大サイズ | 32 MB（プラットフォームによって異なる） |
| リクエストあたりの最大ページ数 | 600（コンテキストが200Kトークンのモデルでは100） |
| 形式 | パスワードや暗号化のない標準PDF |

<figure>
<blockquote>
<p>どちらの制限も、PDFと一緒に送る内容を含むリクエスト本文全体に適用されます。大きなPDFではFiles APIを使用し、`file_id`で参照すると、リクエスト本文を小さく保てます。</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

Claude.ai（一般向けWebアプリ）の制限は異なります。1ファイルあたり最大500 MBで、1チャットあたり最大20ファイルです。ただし、視覚分析が機能するのは100ページ以下のPDFだけです。それを超えると、Claudeにはテキストだけが見え、グラフや図表は見えません。

API経由でPDFを送る方法は3つあります。

1. **URL経由** - `"source": {"type": "url", "url": "..."}` - 文書がオンラインにある場合に最も簡単です。
2. **Base64形式** - `"source": {"type": "base64", "media_type": "application/pdf", "data": "..."}` - ローカルファイル向けです。
3. **Files API経由** - `"source": {"type": "file", "file_id": "file_abc123"}` - 繰り返しのリクエスト向けです。ベータヘッダー`anthropic-beta: files-api-2025-04-14`が必要です。

同じPDFを複数のチャットで使うときに節約する主な方法はFiles APIです。一度アップロードして`file_id`を取得すれば、以後のやり取りではそれを使います。`cache_control: ephemeral`を使うと、再度の呼び出しは通常料金の10%になります。

Anthropicは、使用量を抑えるための公式アドバイスも公開しています。

<figure>
<blockquote>
<p>（小さな文字が多い、複雑な表がある、または画像が多い）密度の高いPDFは、ページ数の上限に達する前にコンテキストウィンドウを埋めてしまうことがあります。文書をセクションごとに分割してみてください。大きなファイルでは、アップロード前に埋め込み画像の解像度を下げてください。</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

## 方法1：5分でMarkItDownをセットアップする方法

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

重要なポイント

MarkItDownは、Microsoft AutoGenチームが開発したPythonユーティリティです。PDF、DOCX、PPTX、XLSX、HTML、音声、画像、さらにはYouTube動画まで、きれいなMarkdownに変換します。GitHubで13万4千スターを獲得し、MITライセンスで、`pip install 'markitdown[all]'`という1つのコマンドでインストールできます。使い方も簡単です。`markitdown document.pdf > document.md`を実行します。Claude Codeを使う前のファイル変換に、最も幅広く使えるツールです。

</div>

MarkItDownはMicrosoftの公式プロジェクトで、AutoGenチームが保守しています。GitHubでは13万4千スター、9,200フォークを獲得しています（2026年5月末時点）。READMEには目的が直接記されています。

<figure>
<blockquote>
<p>LLMやテキスト分析のパイプラインで使うために、ファイルをMarkdownに変換する軽量なPythonユーティリティです。</p>
</blockquote>
<figcaption>— Microsoft, https://github.com/microsoft/markitdown</figcaption>
</figure>

対応形式：

- **文書：** PDF、DOCX、PPTX、XLSX
- **Web：** HTML、JSON、XML、CSV
- **メディア：** 文字起こし付きの音声、EXIFとOCR対応の画像、YouTube動画（字幕経由）
- **アーカイブ：** ZIP、EPub
- **その他：** Outlook MSGファイル内のすべての添付ファイル

### インストール

要件：Python 3.10以上（macOSには通常すでにインストールされています。Windowsでは別途インストールが必要です）。

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

すべての形式が必要でない場合は、選択したものだけをインストールできます。

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

### 単一ファイルの変換

最も簡単な方法：

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

実行後、現在のフォルダーに`document.md`が作成されます。`@document.md`を使ってClaude Codeに読み込ませるか、プロジェクトの隣に置いてください。

### Python API

スクリプトに組み込みたい場合：

```python
from markitdown import MarkItDown

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

# You can save it straight away:
with open("research-paper.md", "w") as f:
    f.write(result.text_content)
```

### MarkItDownでできないこと

- **スキャンPDFのOCR** - 何も返しません。スキャン文書にはPyMuPDF4LLMまたはDoclingが必要です。
- **複雑な複数段組みレイアウト** - 読む順序が乱れることがあります。
- **PDFに埋め込まれたURL** - 保持されません。

レポート、記事、ドキュメントなどの単純なPDFには、MarkItDownが最適です。1分でインストールでき、Pythonの知識も必要ない、汎用性の高いツールです。キリル文字やスキャン文書での性能は、[AI向けにPDFをテキストに変換する方法](https://ailoot.ai/blog/ja/markitdown-pdf-word-to-text/)の分析にある測定結果で示しています。

## 方法2：PyMuPDF4LLMでできることと、優れている場面

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

重要なポイント

PyMuPDF4LLMは、ネイティブのC製MuPDFエンジンを基盤とするArtifex Softwareのプロジェクトです。最速のPDF変換ツールで、GPUは不要です。スマートOCRは読み取り不能な領域だけに適用され、処理時間を50%短縮します。PDF内の埋め込みURLと画像を保持できる、人気ツールの中で唯一のツールです。弱点は、AGPL v3とArtifexの商用ライセンスのデュアルライセンスです。SaaSプロジェクトでAGPLを使うと、コードの公開が必要になります。

</div>

MarkItDownは対応形式の幅を提供し、PyMuPDF4LLMはPDF処理の深さを提供します。

<figure>
<blockquote>
<p>最小限のセットアップで、PDFをきれいに構造化されたデータに変換する軽量なPyMuPDF拡張です。</p>
</blockquote>
<figcaption>— Artifex Software, https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/</figcaption>
</figure>

2026年5月31日現在のバージョンは1.27.2.3です（2026年4月24日リリース）。

### 含まれる機能

- 正しい読み順での複数段組みページ対応
- 表をGitHub Flavored Markdownに変換
- ヘッダーとフッターを自動削除
- 相対リンク付きで画像を抽出し、別フォルダーに保存
- スマートOCR：読み取り不能な領域だけに適用し、処理時間を約50%短縮
- ネイティブのCエンジン、**GPU不要**

### インストール

```bash
pip install pymupdf4llm
```

### 使い方

```python
import pymupdf4llm

# Basic use - straight to Markdown:
md_text = pymupdf4llm.to_markdown("document.pdf")

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

約束どおり、1行で実行できます。

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

### MarkItDownよりPyMuPDF4LLMを選ぶ場面

- 保持する必要のあるリンクがPDFに多数含まれている場合（MarkItDownでは失われます）。
- 文書がスキャンされており、OCRが必要な場合。
- ローカルで数千ファイルを高速に処理したい場合（ネイティブCエンジンはPythonラッパーより高速です）。
- さらに処理するため、PDF内の画像を別フォルダーに取り出す必要がある場合。

### ライセンスの詳細（ビジネス向けの重要事項）

PyMuPDF4LLMはデュアルライセンスです：AGPL v3またはArtifex商用ライセンス。

<strong>AGPLの意味：</strong>公開SaaSでライブラリを使う場合、サービスのソースコード全体を同じAGPLライセンスで公開する必要があります（自分のノートPCでスクリプトを使うような社内利用には制限がありません）。

コードを公開せずに商用開発を行うには、Artifex（artifex.com）からライセンスを購入してください。価格は公表されていないため、営業に問い合わせてください。

顧客向けの製品を開発する場合は、最初にライセンスを確認してください。MITライセンスのMarkItDownとDoclingのほうが、SaaSでは安全です。

## 方法3：Claude Code MCP 設定でMarkItDownサーバーを接続する {#方法3markitdown-mcpサーバーをclaude-codeに接続する方法}

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

重要なポイント

MarkItDown MCPサーバーは、MCPプロトコルでラップしたMarkItDownそのものです。そのためClaude Codeは、元のファイルをコンテキストに読み込まずに、その場でPDFを変換できます。uvを使った1つのコマンドで接続でき、バージョンは固定されています：`markitdown-mcp@0.0.1a7`。Claudeが使うツールは`convert_to_markdown(uri)`です。待機中のコストはスキルの説明に約110トークンで、不要なときはゼロです。

</div>

CLIモードのMarkItDownは「事前に手動でファイルを変換する」方式です。MCPサーバーは「変換するタイミングをClaude Codeが決める」方式です。

### インストール

uvパッケージマネージャーが必要です。サーバーを別途インストールする必要はありません。uvが初回起動時にダウンロードします。

### Claude Codeでの設定

バージョンを固定したまま、1つのコマンドですべてのプロジェクトにサーバーを接続できます。

```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`の項目に「Connected」と表示されるはずです。初回起動時には約70個のパッケージをダウンロードするため、最大1分かかります。その後のサーバー起動は1～2秒です。

このコマンドに2つの変数が必要な理由は次のとおりです。`ORT_DISABLE_TELEMETRY=1`は、サーバー内のonnxruntimeエンジンがMacとLinuxでデフォルトでMicrosoftに送信する統計情報を無効にします。`UV_PYTHON=3.12`は、Windows、Linux、Apple Silicon搭載Mac向けのビルド済みパッケージがあるPython 3.12でサーバーを実行します。Intel MacとmacOS 13以前では、Python 3.14でサーバーをインストールできません。Intel環境でPython 3.12を使う場合は注意点があります。2026年6月以降、Intel用のビルド済みパッケージがないため、uvがcryptographyライブラリをソースからビルドします。インストールに時間がかかり、失敗することもあります。Python 3.12がない場合、uvがダウンロードします。

サーバーはコンピューター上で直接実行され、アクセス権のあるすべてのファイルを開けます。Claude Codeを開いていた場合は再起動すると、MCPサーバー一覧に`markitdown`が表示されます。

### 使い方

Claude Codeで、次のように伝えるだけです。

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

Claudeは自分で`convert_to_markdown(uri)`を呼び出してMarkdownを受け取り、それを使って作業します。PDFはコンテキストに読み込まれません。

### 対応URI

- `file://` - ローカルファイル
- `http://`、`https://` - オンライン文書
- `data:` - インラインデータ（Base64）

### セキュリティ

公式READMEからの引用：

<figure>
<blockquote>
<p>このサーバーは認証に対応しておらず、起動したユーザーの権限で実行されます。</p>
</blockquote>
<figcaption>— Microsoft, https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp</figcaption>
</figure>

デフォルトではlocalhostにバインドします。HTTP/SSE（オプション`--http --host 127.0.0.1 --port 3001`）で実行する場合、認証済みリバースプロキシなしでポートを外部に公開しないでください。

## タスクに合う方法は？

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

重要なポイント

さまざまな形式（PDF + DOCX + PPTX + YouTube）を扱い、CLIコマンドですばやく変換したいならMarkItDownが万能ツールです。PyMuPDF4LLMはPDFの専門ツールで、OCRとリンク保持に対応し、より高速ですが、SaaSではAGPLが落とし穴になります。Doclingは本番利用に適しており、表や数式の処理に優れています。Markerは数式を含む科学論文向けです。変換について考えず、Claude Codeに判断させたい場合はMCPサーバーを選びます。

</div>

詳しい比較表：

| ツール | GitHubスター数 | 最適な用途 | 速度 | ライセンス |
|----|----|----|----|----|
| **MarkItDown**（Microsoft） | 134k | PDF + DOCX + PPTX + YouTube + 音声 | 中 | MIT |
| **PyMuPDF4LLM**（Artifex） | \- | ネイティブPDF、OCR、埋め込みURL | 最速（GPU不要） | AGPL v3 / 商用 |
| **Docling**（IBM Research） | 60.7k | 本番RAG、表、数式 | 中 | MIT |
| **Marker**（datalab.to） | 35.6k | 科学論文PDF、arXiv、数式 | 高（GPU使用時） | GPL-3.0 + Open Rail-M |
| **MinerU** | \- | CJK文書（中国語／日本語） | 高 | Apache-2.0 |

Markerはベンチマークで優れた精度の数値を公表しています。

<figure>
<blockquote>
<p>H100 GPUで1ページあたり0.18秒（毎秒122ページ）。精度は95.67%で、Llamaparse（84.24%）とMathpix（86.43%）を上回ります。科学論文では96.67%です。</p>
</blockquote>
<figcaption>— datalab.to, https://github.com/datalab-to/marker</figcaption>
</figure>

ただし、Markerで高速に処理するにはGPUが必要で、機械学習モデルも付属します。通常のテキストPDFを扱う大半のタスクには、GPUなしでも数秒で処理できるPyMuPDF4LLMかMarkItDownで十分です。

### 選び方の簡単な目安

1. **PDFが1、2件で、とにかく速く済ませたい** - MarkItDown CLI。
2. **PDFが数十件あり、自動化したい** - MarkItDown MCPサーバー、またはスクリプト内のPyMuPDF4LLM。
3. **構造の保持が重要な、リンクや画像を含むPDF** - PyMuPDF4LLM。
4. **表の安定性が重要な、本番環境の業務用RAG** - Docling。
5. **数式を含む科学論文** - Marker。
6. **変換について考えず、Claudeに任せたい** - MarkItDown MCPサーバー。

## 文書フォルダーを自動変換するスクリプトをすぐ使える形で書く方法

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

重要なポイント

使いやすい方法は、プロジェクトフォルダー内を走査し、PDF、DOCX、PPTXファイルをすべてMarkdownに変換して、`_md/`サブフォルダーに出力するbashスクリプトです。一度設定すれば、新しい文書フォルダーも1回の処理で「Claudeが読める」ようになります。その後、`@_md/`を使ってClaude Codeに読み込ませ、圧縮されたテキストで作業できます。

</div>

実用例を考えてみましょう。証券会社の明細書、契約書、プレゼン資料など、顧客のPDFとPPTXレポートが40件、1つのフォルダーに入っています。フォルダーをそのままClaudeにアップロードしても役に立ちません。最初の応答を得る前に、コンテキストウィンドウが情報で埋まってしまいます。以下のスクリプトでフォルダー全体を一度に処理してから、大きなPDFの代わりに軽量な`.md`ファイルを使って作業を続けましょう。

このスクリプトをプロジェクトルートの`scripts/docs-to-md.sh`として保存します。

```bash
#!/bin/bash
# docs-to-md.sh - converts all documents in a folder to Markdown using MarkItDown
# Usage: 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"
```

実行可能にします。

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

実行します。

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

実行後、`./reports/_md/`にすべての文書の`.md`版が保存されています。`@reports/_md/`を使ってClaude Codeに読み込ませ、PDFの代わりに圧縮されたテキストを使って作業できます。

スクリプトは、すでに変換したファイル（`.md`ファイルがソースより新しいもの）を自動的にスキップします。再実行しても低コストで、すべてを変換し直すことはありません。

### 冪等性と差分変換

同じ名前のまま再保存されたPDFの変更を検出するには、コンテンツハッシュのチェックを追加します。

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

この方法では、内容が変わった場合にだけファイルを再変換します。

## ClaudeではPDFのほうがMarkdownより適しているのはどんな場合か？

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

重要なポイント

Markdownへの変換では、視覚要素（図、グラフ、設計図）、結合セルやキャプションのある複雑な表、そして成果物としての文書の完全な書式（たとえばページ番号を付けて引用する必要のある契約書）の3つが失われます。これらがタスクに重要なら、PDFを使い続けて視覚分析を有効にし、視覚処理のコストを理解したうえで支払ってください。

</div>

Markdown変換では不十分な3つのケース：

### 1. 図やグラフの視覚分析

Claudeにグラフ（価格推移、プロセス図、アーキテクチャ図など）を「読ませる」必要がある場合、その情報はMarkdownにはありません。Markdownで保持されるのは図のキャプションだけで、図そのものは失われます。

解決策：PDFをアップロードし、視覚モードを明示的に有効にします。Claude APIではフラグが自動で機能しますが、AWS Bedrockでは`citations`フラグが必要です。

<figure>
<blockquote>
<p>Claudeはテキストと画像の両方を分析して、文書をより深く理解します。</p>
</blockquote>
<figcaption>— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support</figcaption>
</figure>

### 2. 結合セルがある複雑な表

Markdownの表は平坦です。PDFに結合セル、複数段のヘッダー、または入れ子の小さな表があると、変換ツールは表を平坦化するか、関連性を失わせます。

解決策：PDFを直接使うか、Doclingを使う（複雑な表の処理に最適です）か、変換後に手作業で書式を整えます。

### 3. ページ参照が必要な成果物としての文書

法律文書、契約書、議事録では、「7ページ、3段落目」と引用できることが重要です。Markdownではページ番号が失われます。

解決策：PDF + Files API + プロンプトキャッシュを使います。一度アップロードして`file_id`で参照すれば、Claudeはページ番号を保持した状態で文書を確認し、特定ページを引用できます。

### 短い文書

PDFが2ページ未満で、1回しか使わないなら、変換する価値はありません。PDFの5,000トークンに対してMarkdownは800トークンですが、MarkItDownをインストールするほどの節約ではありません。

損益分岐点は約5ページ以上、または同じ文書を2回以上使う場合です。それ未満ならPDFを直接アップロードし、それ以上なら変換します。

## ClaudeでPDFを扱うときによくある5つの間違い

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

重要なポイント

主な落とし穴は、同じPDFを変換せずに別のチャットへ再びアップロードすること、繰り返しのリクエストでプロンプトキャッシュを使わないこと、テキストの代わりにスクリーンショットを使うこと、スキャンPDFにOCRをかけないこと、そしてコンテキストが200Kのモデルで100ページの上限を見落とすことです。どの間違いも、理由なく数万トークンを無駄にします。

</div>

### 1. 同じPDFを新しいチャットに毎回アップロードする

Claude Proには5時間あたりのメッセージ上限があります。50ページのレポートひとつで、2つ目の質問をする前に使い切ることがあります。

そのためのシンプルな原則は、**1つのタスクにつき1つのチャット**です。AIが異常な量のトークンを使い始めるのは、すべてを1つのチャットに詰め込み、PDFを何度も読み込ませているということです。各ウィンドウでは小さなタスクを1つずつ扱いましょう。文書を一度Markdownに変換し、プロジェクトと一緒に各新規ウィンドウへ`.md`ファイルを追加します。コンテキストウィンドウの円は黄色になりません。

解決策：一度Markdownに変換するか、`file_id`とプロンプトキャッシュを使うFiles APIを利用します。

### 2. テキストの代わりにスクリーンショットを使う

よくある例として、コードや表をClaudeに見せようとして、1920×1080画面全体のスクリーンショットを撮り、5回リクエストしただけで上限に達した理由がわからない、というケースがあります。

1,000×1,000ピクセルのスクリーンショットは約1,300トークンを消費します。同じテキストを手でコピーすれば50～100トークンです。13～26倍の差です。

解決策：スクリーンショットの範囲を重要な部分だけに絞るか、もっとよい方法として、テキストを直接コピーしてください。

### 3. OCRなしのスキャンPDF

MarkItDownはOCRができません。スキャン文書を変換すると、空の`.md`ファイル（または意味のない3行）ができます。

解決策：スキャンには、組み込みのスマートOCRがあるPyMuPDF4LLMかDoclingを使います。

### 4. 100ページの上限を見落とす

Anthropicのドキュメントに記載された上限は1リクエストあたり600ページですが、コンテキストが200Kのモデル（Sonnet 4.x、Opus 4.x）では実際の上限は**100ページ**です。600ページの上限は旧モデルまたは特別なティア向けです。

150ページのレポートをSonnet 4.6にアップロードすると、エラーになるか、さらに悪い場合には、最初の100ページだけを処理したのに文書全体を読んだかのようにClaudeが振る舞います。

解決策：長いPDFはアップロード前に分割します。またはMarkdownに変換します。ページ数の上限はなく、トークン数の上限だけです。

### 5. 繰り返しのリクエストでプロンプトキャッシュを使わない

同じ文書をAPI経由で扱う場合は、`cache_control: ephemeral`でラップします。5分以内の再呼び出しは初回料金の10%です。最初のリクエストは高く、残りは90%割引になります。

解決策：複数回アップロードするものには、デフォルトでプロンプトキャッシュを有効にします。

## 次に読む：コンテキストエンジニアリング

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

重要なポイント

PDFをMarkdownに変換するのは、AIを使いこなすための新しいリテラシーであるコンテキストエンジニアリングの手法のひとつです。プロンプトは質問です。コンテキストとは、質問の前後にClaudeが目にするすべてのものです。システムプロンプト、CLAUDE.md、ファイル、MCPサーバー、セッション履歴などが含まれます。コンテキストが整理されているほど、回答の精度が上がり、コストは下がります。「2026年のコンテキストエンジニアリング」ガイドで詳しい分析を読んでください。

</div>

PDFからMarkdownへの変換は、トークンを節約する方法のひとつです。それだけではClaudeの回答精度は上がりません。精度を高めるのは**コンテキストエンジニアリング**です。質問する前にモデルのコンテキストへ何を入れるかを決める分野です。

`CLAUDE.md`が800行あり、プロジェクトに不要なMCPサーバーが10個あり、さらに100ページのPDFを読み込ませるなら、Markdown変換で防げるのは漏れの1つだけで、残る3つはそのままです。そのため、次のガイドを用意しています。

- [Claude Codeでトークンはどこに消えるのか](https://ailoot.ai/blog/ja/where-claude-code-tokens-go/) - PDFだけでなく、コンテキストが漏れる9つのパターン。
- [2026年のコンテキストエンジニアリング](https://ailoot.ai/blog/ja/context-engineering/) - コンテキストを体系的に管理する方法。
- [Claude CodeのPlan Mode](https://ailoot.ai/blog/ja/claude-code-plan-mode/) - Claudeがコードを書き始める前に使う計画モード。

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

### 出典

- [Anthropic - PDFサポート（platform.claude.com）](https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support)
- [Anthropic - Claudeへのファイルのアップロード（support.claude.com）](https://support.claude.com/en/articles/8241126-upload-files-to-claude)
- [Microsoft MarkItDown（GitHub）](https://github.com/microsoft/markitdown)
- [MarkItDown MCPサーバー](https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp)
- [PyMuPDF4LLM - 公式ドキュメント](https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/)
- [Docling（IBM Research、GitHub）](https://github.com/DS4SD/docling)
- [Marker（datalab.to、GitHub）](https://github.com/datalab-to/marker)

</div>







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

[Ailoot](https://ailoot.ai/)の情報も引き続きご覧ください。

</div>

## Claude CodeでPDFを扱う：変換、トークン、構造の保持：よくある質問

### 15ページを4チャットで使う例のMarkdown入力は何トークンですか？

記事の1ページ300トークンという仮定では、15 × 300 × 4 = 18,000です。例示の見積もりなので、自分の変換文書のトークン数を計測してください。

### どのPDFでも文章変換だけで十分ですか？

いいえ。表、ページ順、画像に依存する内容を中心に、変換したMarkdownをPDFと照合します。必要な情報が残ったことを確認してから利用量を比較してください。


## Ailoot · 企業とそのプロジェクト群

Ailootは、蓄積した運営経験、幅広い顧客基盤、安定したサービス、継続的なKPI管理を基盤としています。

企業とそのプロジェクト群：数百万の顧客、毎月数十億規模の売上。

Ailootはこの運営経験を、お客様の製品、エージェント、アプリケーション、自動化でAI機能を利用するためのAPIアクセスに活かしています。
