Inferio
記事一覧へ
ハウツー

PDF からデータを抽出するには?(デジタル PDF もスキャン PDF も)

2026年7月8日 · 6分で読める

PDF からデータを確実に抽出するには、2 つのステップが必要です。まず各ページの内容を読み取ること(text layer を持つデジタル PDF でも、画像だけのスキャン PDF でも)。次に、その内容を請求書番号・合計金額・税額・明細行といった名前付きフィールドにマッピングし、各値に confidence score を付けること。コピー&ペーストや一般的な PDF-Excel 変換ツールは最初のステップしか行わないため、表がページをまたいだり、新しい取引先が別のレイアウトで送ってきたりした瞬間に崩れるのです。

デジタル PDF とスキャン PDF は何が違うのか?

デジタル PDF(「ネイティブ PDF」「テキスト型 PDF」とも呼ばれます)は、会計システムやワープロといったソフトウェアから出力されたもので、text layer を持っています。つまり文字が、選択もコピーもできるテキストとしてファイル内に存在します。スキャン PDF はその逆で、紙を撮影した写真を PDF の容れ物に包んだだけのものです。中身にテキストはなくピクセルだけなので、何かを抽出するには OCR — ピクセルを文字に戻す光学文字認識 — が必須になります。

多くの解説が飛ばしてしまうのはここからです。text layer があることと、データが抽出済みであることは別物です。デジタル請求書から全文字をコピーできても、プログラム的には、どの数字が請求書の合計でどれが明細行の小計なのか、ページ上の 5 つの日付のうちどれが支払期日なのかは分かりません。どちらのタイプの PDF にも、同じ第 2 のステップ — どのテキストがどのフィールドに属するかの理解 — が必要です。スキャン PDF はその手前に認識という一段が加わるだけで、最新の vision-language モデルはどのみち同じ 1 パスで処理します。

コピー&ペーストや変換ツールでの「PDF to Excel」はなぜ崩れるのか?

一般的な変換ツールは、見た目上の位置をスプレッドシートのセルにマッピングしますが、このマッピングは脆弱です。明細行の説明文が 2 行に折り返されると Excel では 2 行に分かれ、数量と単価が誤った列にずれ込みます。2 ページ目に続く表はヘッダー行を失い、データの後半がラベルなしで届きます。しかも変換後のスプレッドシートは、まだ構造化データではありません — 合計金額、税区分、請求書番号を、誰かが目視で探し出す必要があります。

より根本的な問題はレイアウトの多様性です。取引先ごとに請求書のフォーマットは異なるため、ある仕入先の PDF 向けに作った手作業の修正手順は、次の仕入先にはまったく通用しません。30 社から PDF を受け取る企業にとって、「変換してから手で直す」は 30 通りの修正ルーチンを意味します — それは手順の増えた手入力に他なりません。

  • 明細セル内の折り返しテキストが 1 行を複数行に分割し、以降のすべての列がずれる。
  • 複数ページにわたる表は継続ページでヘッダーを失い、値がラベルなしで届く。
  • 結合セル、印影、ロゴが表の内容として読み込まれ、出力を汚す。
  • きれいに変換できても得られるのはテキストのグリッドであり、フィールドではない — 請求書番号も合計も税率も特定されない。

PDF データ抽出パイプラインは実際どう動くのか?

最新のパイプラインは、PDF の各ページを文書画像として扱い、vision-language モデルで読み取ります — ページが text layer を持っていても、生のスキャンでも、アプローチは同じです。Inferio のパイプライン(Claude Vision ベース)は複数ページの PDF をページ単位で読み進めるため、明細表が 2〜4 ページ目に続く 6 ページの請求書も、バラバラの断片 4 つではなく、統合されたフィールド一式を持つ 1 つの文書として返ってきます。

出力は構造化された JSON です。取引先、請求書番号、発行日、数量と単価を含む明細行、税区分、合計金額といった名前付きフィールドが、それぞれ 0 から 1 の confidence score を持ちます。レビュー閾値(デフォルトは 0.75)を下回ったフィールドは、未確認のまま下流に流れるのではなく、human-in-the-loop の修正 UI にルーティングされ、レビュー担当者はその値だけを確認・修正すれば済みます。このルーティングの一段こそが、帳簿に直接転記できる抽出パイプラインと、出力を 1 行ずつ検証し直さなければならない変換ツールを分けるものです。同じパイプラインが、言語別のセットアップなしに英語・日本語・ベトナム語の文書を読み取ります。

月数百件の請求書 — 大量の PDF はどう処理するのか?

件数が増えると、ボトルネックは抽出精度ではなくワークフローになります。300 件の PDF を 1 件ずつアップロードして 300 個のスプレッドシートをダウンロードしたい人はいません。バッチ処理の定石は、文書ごとのアップロードまたは REST API 呼び出し、非同期処理、そして各文書の構造化結果が完成した時点でシステムに通知する署名付き webhook です — コード側でポーリングは不要で、webhook の署名によりペイロードが本当に抽出サービスから来たことを検証できます。

大量処理のもう半分は、ファイル出力というステップ自体をなくすことです。抽出した請求書データは会計ソフトへ直接同期できます — Inferio は freee と MoneyForward に OAuth で接続します — し、API 経由で ERP にも流せます。「PDF to Excel」は「PDF から仕訳の転記まで」になり、Excel はループから外れます。日本の企業にとっては、このパイプラインがコンプライアンス業務も一緒に担います。適格請求書の T 番号は国税庁(NTA)の公開 API で検証され、消費税は 8% と 10% の税区分に分類され、文書は電子帳簿保存法の 7 年保存要件に沿って保管されます。

よくある質問

不鮮明な低品質のスキャン PDF からもデータを抽出できるか?
限度はありますが、多くの場合可能です — vision-language モデルは文脈を読むため、かすれた文字を周囲のテキストから人間と同じように補って解釈できることが少なくありません。安全装置は confidence score です。モデルが確信を持てない値はレビュー閾値の 0.75 を下回り、黙ってデータに入り込むのではなく人のレビューに回されます。本当に判読不能なスキャンは、自信ありげな誤った数字ではなく、多数の低 confidence フィールドとして表面化します。
複数ページの PDF や大量バッチは処理できるか?
できます。複数ページの PDF(および複数ページの TIFF)はページ単位で読み取られ、1 つの構造化文書として返されるため、数ページにまたがる表も 1 つの表のまま保たれます。バッチについては、ダッシュボードまたは REST API から文書を投入し非同期で処理、各結果の完成時に署名付き webhook がシステムへ通知します — ファイルごとの手作業は不要です。
アップロード前に PDF を画像に変換する必要はあるか?
ありません — PDF はダッシュボードでも API 経由でもそのまま受け付けます。JPG・PNG・WebP の画像や複数ページ TIFF にも対応しています。1 点だけ注意: 本サイトの無料公開プレビューツールが受け付けるのは 8MB までの画像ファイルのみで、PDF 処理はダッシュボードおよび API の機能です。
抽出されたデータはどんな形式で出てくるのか?
構造化された JSON です。名前付きフィールド(取引先、請求書番号、日付、明細行、税区分、合計金額)それぞれにフィールド単位の confidence score が付きます。そこからエクスポートすることも、REST API で自社システムに取り込むことも、スプレッドシートを介さず freee や MoneyForward に直接同期することもできます。
自社の書類で Inferio の抽出精度を確認するディスカバリーコールを予約