メインコンテンツへ移動

PDFテキスト抽出

PDFテキスト抽出は、文書から言葉を取り出し、コピーしたり検索したりできるようにします。OCRのようにページを見て文字を推測するのではなく、PDFがすでに持っているテキストを、書き込まれた通りにそのまま読み取ります。そのため、言葉の画像しか含まないスキャン原稿からは何も取り出せませんが、ツールはでたらめを作り出す代わりに、その旨を報告します。

端末内で処理

ここにPDFをドロップ

ページのどこにでもドロップできます · ファイルを選択 · 100 MB

対応形式: PDF

PDFテキスト抽出はどう動きますか?

PDFには段落が存在しません。存在するのは、座標にグリフを配置せよという指示——「この文字をx=72, y=708の位置に、このフォント・このサイズで描け」——であり、それが1ページに数千回繰り返されています。テキスト抽出とは、それらの指示を集め、描画された位置から単語と行を組み立て直すことです。

これはOCRではなく、その違いが重要です

OCRはページの画像を見て、形を文字として認識します。誤認はつきものです。テキスト抽出は、文書がすでに格納している文字を、正確にそのまま読み取ります。テキストレイヤーが存在すれば結果は完璧です。OCRが確実に混同する文字——rnとm、lと1——を含め、すべての文字が再現されます。

テキストレイヤーが存在しない場合(スキャンされたページは写真であり、写真に文字は含まれていません)、抽出できるものは何もありません。ツールは、黙って結果を返してファイルが壊れたと誤認させるのではなく、空だったページの数を報告します。そうした文書に適しているのはOCRであり、これはまったく別のソフトウェアです。

改行の再構築

pdf.jsが返すテキスト項目は、行ではなく位置情報を持つ断片です。単純にスペースでつなげると1ページが1つの長い段落になり、レイアウトのある文書では読めたものではありません。そこで各断片の縦座標を直前の断片と比較します。意味のある幅で下がっていれば新しい行、さらに大きく下がっていれば段落の区切り、同じ高さなら行の継続です。

これは近似手法であり、その点を偽りなく伝えています。限界が最も表れるのは段組レイアウトです。抽出処理はグリフが描かれた順に読むため、2段組の学術論文では、1段ずつではなく段を横断する順序になることがよくあります。これを解決するには本格的なレイアウト解析が必要ですが、レイアウト解析は推測を行うものです。

合字、ハイフン、消えたスペース

抽出テキストには、頻出するため知っておく価値のある3つの現象があります。合字(fiやfflを1つのグリフで表したもの)は、見た目は正しいのに「fi」での検索に一致しない1文字として抽出されることがあります。行の折り返しでハイフン継ぎになっている単語は、ハイフンが文書内の実際の文字であるため、ハイフン付きのまま抽出されます。そして、2つの単語の間にスペースがない場合は、通常、スペース文字を書き込まずに単語を別々の位置に配置したことを意味します。組版ソフトウェアで組まれたテキストでよく見られる現象です。

すべての処理はタブの中で完結します

抽出処理はお使いのブラウザ内で動作します。これは多くのツール以上に重要です。テキストを抽出される文書は契約書、報告書、明細書であり、抽出されたテキストとは、まさにその内容を検索可能にし、grepでき、どこにでも貼り付けられる形にしたものだからです。

入力

invoice.pdf (2 pages, text layer present)

出力

--- page 1 ---
INVOICE 2026-0412
Ada Lovelace Ltd
Due: 30 September 2026

--- page 2 ---
Terms and conditions…

PDFテキスト抽出が対応するオプションとエッジケースは?

技術リファレンスとオプション
パラメータ型デフォルト動作とエッジケース
テキストレイヤーそのまま読み取り—文字は、ドキュメントに保存されているとおりにそのまま取得されます。認識処理を行わないため、誤認識率というものもありません。ピクセルから推測するOCRとはここが異なります。
スキャンページ空表示されるスキャンは単語の画像であって、文字を含みません。空のページの数は、推測に委ねられるのではなく、明示的に表示されます。
改行再構成オン各テキスト断片の縦方向の位置から復元します。意味のある落ち込みは行、さらに大きい落ち込みは段落とみなします。ページごとに1つの連続したブロックにしたい場合はオフにしてください。
ページマーカーブール値オンページ間に「--- page N ---」という行が挿入され、長い抽出結果も行き来しやすくなります。
段組みレイアウト概算—描画順に読み取るため、2段組みでは縦ではなく横方向に読んでしまうことがよくあります。これを正すには、推測を伴うレイアウト解析が必要です。
リガチャ(合字)保存時のまま—fiのリガチャは1文字として出力されることがあり、見た目は正しいのに、fとiの2文字で検索しても一致しません。
ハイフネーション保持—行をまたいで分割された単語はハイフンを保ちます。ハイフンは描画のアーティファクトではなく、ドキュメント内に実際に存在する文字だからです。
暗号化されたPDF拒否—まずパスワードでロックを解除してください。

よくある質問

何も結果が返ってきません。PDFが壊れていますか?

ほぼ間違いなく壊れていません。スキャン画像です。スキャンされた文書はページの写真であり、写真に含まれるのは文字ではなく、文字に見えるように並べたピクセルだけです。抽出すべきテキストレイヤーが存在しないため、ツールは黙って結果を返す代わりに、空ページの数を報告します。そのような文書に必要なのはOCRです。OCRは形を文字として認識するため誤認率があります。このツールは、すでに存在する文字を読むだけで誤認はありません。

2段組の論文が崩れた順序で出力されるのはなぜですか?

抽出処理はグリフを描かれた順に読むためです。2段組レイアウトでは、左段、右段、左段とページを横断する順序になることがよくあります。意図された読み順を再構築するには、ページの幾何構造を解析して段の位置を判定する必要がありますが、それは推測であり、表やサイドバー、図があると失敗します。このツールは推測をしません。文字がどの順序で並んでいるかを、そのまま伝えます。

単語がくっついたままになるのはなぜですか?

PDFが単語間にスペースを書き込んでいないからです。組版ソフトウェアは、スペース文字を出力する代わりに各単語を独立して配置することが多く、見た目の隙間は文字を伴わない座標の差にすぎません。隙間があればすべてスペースを挿入する抽出器は、カーニングされた単語の内部にもスペースを挿入してしまい、それはさらにひどい結果になります。これは抽出されたPDFテキストで最もよくある現象であり、フォーマット自体に起因するものです。

これはOCRですか?

いいえ。ここが、このツールについて最も知っておく価値のある点です。OCRは画像を見て文字を認識します。スキャン画像に使える一方で誤認率があり、rnをmと、lを1と混同し、品質の低いスキャンでは苦戦します。このツールは文書がすでに格納している文字を読み取るため、テキストレイヤーがあれば結果は正確です。2つのツールは異なる問題を解決するもので、互いの代わりにはなりません。

一部のページだけからテキストを抽出できますか?

文書全体がページマーカー付きで抽出されるため、必要な部分を探すのは簡単です。「--- page 7 ---」を検索して、その後ろを使えばよいだけです。ページ範囲を指定できるようにすると、スクロールの手間は少し減りますが、文書全体をまとめて検索できるという利点、つまり大半の人がテキストを抽出するそもそもの目的を失うことになります。

文書はアップロードされますか?

いいえ。pdf.jsはこのタブ内で動作します(Mozillaのエンジンであり、FirefoxがPDFを表示するのに使っているのと同じコードです)。テキストはあなたのマシン上で抽出されます。ページのContent-Security-Policyにconnect-src 'self'が設定されているため、アップロードを試みてもブラウザがブロックします。抽出されたテキストは、文書の内容を完全に検索可能で、コピー&ペーストできる形にしたものですから、これは重要な点です。