ユースケース
pdfvision は、PDF を手作業でプロンプトに貼るのではなく、AI エージェントが根拠付きで読む必要がある場面で役立ちます。
共通するテーマは検証です。pdfvision は単なる「PDF to text」コマンドではありません。テキスト抽出だけで十分か、レイアウトが意味を変えていないか、特定の視覚領域を確認すべきかをエージェントが判断するための信号を出します。
未知の PDF
まず低コストな構造化パスから始めます。
pdfvision document.pdf --jsonoverview をルーティング表として使います。
quality.nativeTextStatus: "ok"は、ネイティブテキストが最初の情報源として妥当であることが多いです。empty_but_visual_contentは、ページにレンダリングや OCR が必要な可能性を示します。- 高い
imageCountやvectorCountは、グラフ、スクリーンショット、フォーム、スライド図形に意味がある可能性を示します。 - warning は、人間なら抽出結果を信頼する前に立ち止まるページを示します。
必要な信号だけを追加します。
pdfvision document.pdf --layout --image-boxes --vector-boxes --visual-regions --json研究論文
まずネイティブテキストを使い、段組み、図、数式、表が重要ならレイアウトを追加します。
pdfvision paper.pdf --layout --image-boxes --format json引用語、数式、主張文の位置を確認したい場合は、--search で候補を探してから --render-region でクロップします。
追加で確認したい点:
overview[]で疎なページや glyph-corrupted なページを確認する。--searchで引用語、数式、主張文を探してからクロップをレンダリングする。- 図、数式、表の断片には
--render-regionを使う。 - LLM に直接渡す場合は XML または TOON も検討する。
- 2 段組みページでは
layout.blocksと warning を確認してから読み順を信頼する。 imageBoxesとvisualRegionsで、どの図や表をマルチモーダル確認に回すか決める。
スライドとレポート
スライドは画像、ベクター図形、相対配置に意味があることが多いです。
pdfvision deck.pdf --layout --image-boxes --vector-boxes --visual-regions --format json必要なら重要領域だけをレンダリングします。
pdfvision deck.pdf --render-visual-regions --format json戦略資料、カンファレンススライド、製品 PDF、ダッシュボードの PDF 書き出しで有効です。テキスト層には箇条書きだけが入っていても、結論はグラフ、矢印、タイムライン、スクリーンショット、図形の相対位置にある場合があります。
財務レポートと密な表
年次報告書、決算 PDF、請求書、ベンチマークレポートでは、行と列の関係が混乱したテキストストリームに平坦化されることがあります。
pdfvision report.pdf --layout --vector-boxes --visual-regions --search "Total revenue" --jsonpdfvision を使うと、次を確認できます。
- 指標や行ラベルがあるページと bbox。
- 行と列が視覚的に揃っている場合の数値表ヒント。
- ネイティブテキスト順が視覚的な表と一致しない可能性があるページ。
- vision model に確認させる前のグラフ、表、脚注クロップ。
pdfvision report.pdf --pages 12 --render --render-region 72,210,468,240 --render-output ./evidence --json行政フォームと税務文書
フォームはラベル、ウィジェット、チェックボックス、注釈、罫線が組み合わさっています。
pdfvision form.pdf --layout --form-fields --annotations --links --format jsonフィールドとラベルの関係が曖昧な場合は、それぞれの bbox を使って --render-region で確認します。--form-fields は値、フィールド種別、ラベル、選択状態、read-only/required フラグ、widget metadata を出すため、ラベルと値の視覚的関係が失われる失敗を避けやすくなります。
スキャン文書
概要シグナルでネイティブテキスト不足を確認し、必要なページだけ OCR します。
pdfvision scan.pdf --pages 1-5 --ocr --ocr-lang eng --format json多言語ページでは、主言語を先に置きます。
pdfvision scan.pdf --ocr --ocr-lang jpn+eng --format jsonOCR はネイティブテキストを置き換えず、横に付与されます。エージェントは両方の信号を比較し、信頼度を見ながら、小さな文字や表が必要な場合は高スケールのクロップを追加できます。
図表と視覚的な表
視覚構造と領域検出から始めます。
pdfvision report.pdf --layout --image-boxes --vector-boxes --visual-regions --format json必要な箇所だけクロップして確認します。
pdfvision report.pdf --pages 8 --render --render-region 80,140,430,260 --render-output ./regionsチャート凡例、プロットラベル、アーキテクチャ図、スクリーンショット、地図、フォームセクション、意味がグラフィカルな表で使います。座標がまだ分からないときは --visual-regions が特に有効です。
検索してズームする検証
特定の条項、フィールド、引用、指標、ラベルを検証するときは、まず検索します。
pdfvision contract.pdf --search "termination" --search "governing law" --json一致にはページ、source、context、bbox が含まれる場合があります。エージェントは文書全体をレンダリングせず、該当領域だけをクロップできます。
pdfvision contract.pdf --pages 9 --render --render-region 96,320,420,96 --render-output ./crops --jsonこれは抽出テキストだけでなく、監査可能な PDF 根拠が必要な retrieval-augmented agent に向いています。
多言語と CJK PDF
日本語、中国語、混在言語の PDF は、テキストだけのツールが扱いにくいスペーシングや glyph 問題を持つことがあります。
pdfvision document.pdf --layout --search "請求書" --jsonpdfvision は既定で Unicode を正規化し、正規化で変化した場合は raw text を保持し、CJK を考慮した結合テキストや縦書き CJK のレイアウト信号を扱えます。スキャンでは OCR 言語を組み合わせます。
pdfvision scan.pdf --ocr --ocr-lang jpn+eng --jsonAgentic PDF Triage
未知の PDF では、低コストな overview から始めます。
pdfvision document.pdf --format jsonその後に分岐します。
- 読み順、表、フォーム、警告が重要なら
--layoutを追加する。 - ページが視覚的、またはネイティブテキストが怪しいなら
--renderを追加する。 - ネイティブテキストが欠落し、レンダリングページに見える文字があるなら
--ocrを追加する。 - 図、グラフ、フォーム、ダイアグラムを狙って確認するなら
--visual-regionsを追加する。
目的は、エージェントに誠実な読み方をさせることです。根拠を見て、次に必要な view を選び、空または平坦化されたテキストストリームを PDF 全体だと扱わないようにします。