3行でいうと
- ClaudeとOpenAIは、PDFを「各ページの画像」と「取り出した文字」の両方でモデルに渡す。Geminiも画像として読む。
- 上限は会社ごとに違う。Claudeは32MB・最大600ページ、OpenAIは1ファイル50MB未満、Geminiは50MBか1,000ページ。
- 専用サービスは、単語や項目ごとの信頼度スコアと位置情報を返す。AIの直読みは、JSONの形は守らせられるが、値の正しさは保証されない。
この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書を読んでまとめたものです。価格の話は、この記事では扱っていません(料金は別の記事を見てください)。数字は2026年10月22日に確認したもので、変わることがあります。
先に結論
見立てです。帳票の抽出は、次の三つの道具の組み合わせで考えると整理しやすいと思います。
- OCR(Optical Character Recognition、画像の中の文字を文字データに変える技術)。文字を読むだけで、意味は理解しません。
- レイアウト解析。ページのどこが見出しで、どこが表で、どこがチェック欄かという「構造」を取り出します。
- AIの直読み。PDFを大規模言語モデル(LLM、文章を読み書きするAI)に渡して、「請求番号と合計金額を取り出して」と頼みます。
公式文書を読むかぎり、1と2は専用サービスが得意な領域として説明され、3は「構造化出力」という機能とあわせて、抽出の例が載っています。どれか一つを選ぶというより、対象の帳票が「決まった様式か、毎回違うか」「間違いをどれだけ許せるか」で組み合わせが変わると思います。
前提:何を取り出したいのか
「PDFから情報を取り出す」は、実際には次のように分かれます。
- 文字の書き起こし:スキャンされた書類を、検索できる文字にする。
- 構造の取り出し:表の行と列、見出し、ページの頭と尻(ヘッダー・フッター)を分ける。
- 項目の抽出:請求書の「請求番号」「合計金額」のように、意味のある項目を取り出す。
- 要約や質問応答:書類全体について質問して答えを得る。
道具によって得意な段階が違います。以下、この順に読んでいきます。
AIにPDFを直接渡す方式
Claude(Anthropic)
公式文書によると、Claudeは次の流れでPDFを処理します。
- 各ページを画像に変換する。
- 各ページから文字を取り出し、そのページの画像と一緒に渡す。
- 文字と画像の両方をもとに、グラフや図も含めて理解する。
つまり、文字だけでなく、ページの見た目も読む方式です。上限は次のとおりです。
| 項目 | 上限 |
|---|---|
| 1リクエストの大きさ | 32MB(プラットフォームで変わる) |
| 1リクエストのページ数 | 600ページ(文脈窓が100万トークン未満のときは100ページ) |
| 形式 | 標準のPDF(パスワードや暗号化なし) |
「文脈窓」は、モデルが一度に扱える文章量の上限です。「トークン」は、AIが文章を数える単位です。公式文書は、1ページあたり通常1,500〜3,000トークンと書いています。ページ数が少なくても、文字が小さく表や図が多いPDFは、上限に達する前に文脈窓がいっぱいになることがある、と注意されています。対策として、文書を分割すること、埋め込み画像を小さくすることが挙がっています。
PDFの渡し方は3通りです。URL、base64(バイナリを文字列にした形式)、Files API(ファイルを先に預けて、IDで参照する窓口)です。同じPDFを何度も使うときはFiles APIが向く、とされています。PDF専用の追加料金はなく、標準のAPI料金が適用されると書かれています。
OpenAI
公式文書によると、画像を読めるモデルでは、PDFから文字とページ画像の両方を取り出してモデルに渡します。上限は、1ファイル50MB未満、1リクエストの合計も50MB以下です。
PDFの画像の読み込みの細かさは、detailという設定(auto、low、high)で選べます。公式文書の説明では、lowにすると入力トークンが減り、highは細かいグラフ・小さい文字・図に向くとされています。文字は常に渡されるため、この設定は画像の部分にだけ効きます。なお、Chat Completionsという別の呼び出し方式では、この設定は使えません。既定はautoで、GPT-5.6以降のモデルではautoがhighとして、それより前のモデルではlowとして扱われる、と書かれています。
注意として、PDF以外のDocxやPPTXは文字だけが処理され、埋め込まれた画像やグラフは取り出されません。グラフを残したいなら、先にPDFに変換するよう勧められています。表計算ファイルは、1シートの最初の1,000行までです。
Gemini(Google)
公式文書によると、GeminiはPDFを「ネイティブなビジョン」で読み、文字・画像・図・グラフ・表を文書全体にわたって扱います。上限は50MBか1,000ページです。1ページは258トークン相当とされ、PDFに埋め込まれた文字から取り出した分のトークンには課金されない、とも書かれています。Files APIは無料で、預けたファイルは48時間保存されます。
3社のPDF直読みを並べた表
| 項目 | Claude | OpenAI | Gemini |
|---|---|---|---|
| 渡す内容 | ページ画像+取り出した文字 | ページ画像+取り出した文字 | ページを画像として読む。埋め込み文字も取り出す |
| サイズの上限 | 32MB(リクエスト全体) | 1ファイル50MB未満、合計50MB以下 | 50MB |
| ページの上限 | 600(文脈窓が100万未満なら100) | 今回読んだページに記載なし | 1,000 |
| 1ページのトークン | 文字で通常1,500〜3,000。画像分は別 | 文字と画像の両方が文脈に入る。数字の記載は確認できていません | 258 |
| 画像の細かさの設定 | 今回読んだページに記載なし | detail(auto・low・high) |
media_resolution(low・medium・high) |
| ファイルを預ける窓口 | Files API | Files API(/v1/files) |
Files API(48時間保存) |
この表は、各社の文書の記述を、僕らが並べ直したものです。数字の意味がそろっているとは限りません。たとえばClaudeの1,500〜3,000は「文字分」の目安で、Geminiの258は「1ページの相当量」です。単純な比較にはしないでください。
専用サービスの方式
Google Document AI
公式の一覧には、用途別の「プロセッサ」(処理の部品)が並んでいます。たとえば次のものです。
- Enterprise Document OCR:手書きを含む文字を、200以上の言語で取り出し、読みやすさも評価する。
- Form Parser:項目名と値のペア、チェック欄、表を取り出す。
- Layout Parser:文字・表・リストを取り出し、検索用に区切った塊(チャンク)を作る。PDFのほか、HTML・DOCX・PPTX・XLSXに対応。
- Custom Extractor:生成AIか、自分で学習させたモデルで項目を取り出す。
注目点は、Layout Parserの一部のバージョン(v1.5、v1.6、v3.1-lite。v1.5以降はPreviewと表示)が、PDFのレイアウト解析にGeminiモデルを使うと書かれていることです。専用サービスと生成AIの境目は、すでに溶けてきています。ただし、v1.6のようにデータの置き場所(データレジデンシー)の基準を満たさないものがある、とも注記されています。
Azure Document Intelligence(Microsoft)
文書の中身を取り出す、クラウドのOCR・文書処理サービスです。概要ページの現在の題は「Azure Document Intelligence in Foundry Tools」で、Azure Content Understanding の機能の一部として位置づけられ、注記では、LLMを使う解析も提供する Content Understanding との使い分けを案内するページへのリンクが付いています。公式文書では、次の型が並びます。
- Read(
prebuilt-read):印刷と手書きの文字。 - Layout(
prebuilt-layout):文字・表・構造。 - 事前構築モデル:請求書(
prebuilt-invoice)、レシート、本人確認書類、銀行明細など。 - カスタム:自分のデータで学習する。
Layoutモデルについて、公式文書は次のように書いています。
- 出力は、ページ・段落・行・単語・表・選択マーク(チェック欄)・図・節などの構造。
- 単語、選択マーク、手書きの判定には信頼度スコア(モデルがどれくらい確かと思っているかを0〜1で示す数字)が付く。
- Markdown形式での出力も選べる。表はHTMLの形で出る(結合セルを表すため)。
- 有料枠で1ファイル500MB、PDFとTIFFは2,000ページまで。無料枠は4MBで、先頭の2ページだけ。
Amazon Textract(AWS)
公式文書は、印刷と手書きの文字を取り出し、文書の中の項目と表も構造化して返すサービスと説明しています。主な機能は、文字の検出、フォーム・表の抽出、質問(Queries)で欲しい情報を指定する方法、請求書・レシート用のAnalyzeExpense、身分証用のAnalyzeID、住宅ローン書類を分類して振り分けるLending、です。1ページなら同期、複数ページなら非同期の処理になります。
今回読んだ概要ページには、信頼度スコアの記載は見つかりませんでした。詳細はAPI仕様書の確認が必要です。
構造化出力:直読みの出力を型に収める
AIの直読みで項目を取り出すときは、出力を「JSONスキーマ」(JSONの項目名と型を決めた設計図)で縛る機能が公式に用意されています。
- Claudeは、
output_config.formatにスキーマを渡す。公式の例は、請求書から請求番号・合計金額・明細を取り出す型です。 - OpenAIは、Structured Outputsで
strict: trueを指定する。出力が必ずスキーマに合う、と説明されています。
ここで重要なのは、OpenAIの文書が示す区別です。この機能が保証するのは「形」であって、「値が正しいこと」ではありません。請求番号の桁を読み間違えても、形としては合格です。Claudeの文書でも、拒否や途中切れ(max_tokens)の場合は、スキーマに合わないことがあると書かれています。また、Claudeでは、引用機能(citations)と構造化出力は同時に使えず、APIがエラーを返します。
公式文書の例:構造化出力の呼び出し(Claude)
次は、Claudeの公式文書にある書き方の抜粋を、短く整えたものです。公式文書の例です。この記事では、実行していません。
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
messages=[...],
output_config={"format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {"name": {"type": "string"}},
"required": ["name"],
"additionalProperties": False,
}}},
)
スキーマで使えない制約もあります。公式文書では、minimum、maximum、minLength、maxLengthなどは未対応と書かれています。SDKの補助機能は、これらを送るスキーマから取り除いて、項目の説明に移し、返ってきた値を後から検証する、とされています。
使い分けの見立て
見立てです。公式文書から読み取れる違いを、判断の軸にまとめます。
| 状況 | 向いていそうな方式 | 理由(文書から読めること) |
|---|---|---|
| 様式がばらばらの書類を、少量、柔軟に読みたい | AIの直読み+構造化出力 | 画像と文字の両方を読み、質問に答えられる。形はスキーマで揃えられる |
| 同じ様式を大量に、位置情報つきで処理したい | 専用サービス(Document AI、Document Intelligence、Textract) | 構造(表・項目)と位置を返す。単語などに信頼度が付く(Azureの文書で確認) |
| 結果を人が確認する前提で、怪しい箇所だけ見たい | 専用サービスの信頼度スコア | 今回読んだAIの直読みの文書には、値ごとの信頼度スコアの説明は見つかりませんでした |
| 検索や質問応答のため、文書を塊に分けたい | Layout Parserのような、チャンク化機能 | Document AIの文書にチャンク生成の説明がある |
つまずきやすい点
- ページ数の上限だけを見る:Claudeの文書は、密なPDFは上限前に文脈窓がいっぱいになる、と警告しています。ページ数ではなくトークン数で見積もる必要があります。
- 画像品質:Claudeは上向きに回転させたページと読みやすい文字を、Geminiは回転の補正とぼやけたページの回避を、それぞれ案内しています。Azureは最小の文字の高さの条件(1024×768の画像で12ピクセル)を載せています。
- Office文書の画像:OpenAIの文書では、DocxやPPTXの埋め込み画像は取り出されません。Azureの文書でも、Officeファイルの埋め込み画像や外部リンク画像は対象外です。
- 提供先ごとの違い:Claudeの文書は、Amazon BedrockやGoogle Cloud、Microsoft Foundryを経由すると、使える渡し方が減る場合があると書いています。たとえばBedrockのConverse API(Opus 4.6以前のモデルについての記述)では、引用機能を有効にしないと、画像を使った分析が行われず文字の取り出しだけになります。また、Amazon BedrockとGoogle Cloudではbase64だけ、Microsoft FoundryのAzure上のデプロイではFiles APIが使えない、とも書かれています。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。この記事は、公式文書に書かれた仕様と上限の整理です。「どれが正確か」は、ここからは分かりません。
- 数字は2026年10月22日に各社のページを取り直して照合しました。ただし返ってくるのは要約です。Geminiの「1ページ258トークン」は文書理解のページに書かれていて、トークンの数え方のページに載っている258は画像の数え方で、PDFのページの数え方は書かれていませんでした。文書は更新されます。使う前に最新の版を見てください。
- ClaudeとGeminiの「1ページのトークン」は、数え方が違います。並べて比べないでください。
- OpenAIの文書では、ページ数の上限やPDFの1ページあたりのトークン数は確認できていません。
- Google Document AIの一覧ページは長く、後半(約2万字)は読んでいません。Invoice parserなど、一覧の後半にある項目は確認できていません。Textractの概要ページには、信頼度スコアの記載が見つかりませんでした。
- 個人情報・契約書・医療や税の書類を外部のサービスに渡す場合の取り扱いは、この記事では調べていません。サービスごとの規約と、社内のルールを確認してください。
- 精度、料金、日本語の帳票での性能は、この記事の範囲外です。
出典
- PDF support(Claude Platform Docs、Anthropic、2026年10月22日確認)
- Structured outputs(Claude Platform Docs、Anthropic、2026年10月22日確認)
- PDF inputs(OpenAI API、OpenAI、2026年10月22日確認)
- Structured Outputs(OpenAI API、OpenAI、2026年10月22日確認)
- Document understanding(Google AI for Developers、Google、2026年10月22日確認)
- Understand and count tokens(Google AI for Developers、Google、2026年10月22日確認)
- Document AI processors list(Google Cloud、Google、2026年10月22日確認)
- Azure Document Intelligence overview(Microsoft Learn、Microsoft、2026年10月22日確認)
- Document Intelligence layout model(Microsoft Learn、Microsoft、2026年10月22日確認)
- What is Amazon Textract?(AWS Documentation、Amazon Web Services、2026年10月22日確認)
更新履歴
-
2026年10月25日 書き方を直しました。
- 前:運営者が使っていないと読める書き方 → いま:「この記事は、実際に使って確かめた記録ではありません」。公式の資料を読んでまとめた記事で、使い心地は書いていない、という意味に直した
-
2026年10月22日 公式の資料を読み直して、次の点を直しました。
- 前:OpenAIのPDFの
detail設定は、auto、low、highの説明だけ → いま:既定はautoで、GPT-5.6以降はhigh、それより前はlowとして扱われる、と追加 - 前:Document AIのLayout ParserでGeminiを使うのは、v1.5とv1.6 → いま:v3.1-liteも加わり、v1.5以降はPreview表示。データの置き場所の基準を満たさないのはv1.6
- 前:Azure Document Intelligenceは、文書の中身を取り出すサービスとだけ紹介 → いま:題は「in Foundry Tools」で、Content Understandingの一部と位置づけられ、使い分けのページへの案内あり
- 前:Bedrockの引用機能の注意は、条件なしの書き方 → いま:Opus 4.6以前のモデルの話と限定。BedrockとGoogle Cloudはbase64のみ、FoundryはFiles API不可と追加
- 前:Geminiの「1ページ258トークン」は、別の聞き方で2回確認した → いま:トークン数のページの258は画像の数え方で、PDFのページの数え方は書かれていなかった
- 前:Document AIの一覧は「後半は読んでいません」 → いま:後半の約2万字は読んでいない、と量を明記
- 前:OpenAIのPDFの
