記事
一部のPDFでテキストをコピーできない理由
あるPDFで行を選択しようとすると、単語は普通にハイライトされ、コピーする準備が整います。別のPDFで同じ操作をすると、何も起こらないか、カーソルはページ全体を写真のようにつかんでしまいます。実際それこそが正体だからです。画面上では同じに見える2つのファイルが、その内部ではまったく異なる作り方をされていることがあります。ここでは、自分の持っているPDFがどちらの種類かを見分ける方法と、コピーを拒むほうについてどうすればよいかを紹介します。
2種類の異なるPDFページ
PDFはページを2つのまったく異なる方法で保存できます。テキストベースのPDFでは、すべての文字がUnicode値、フォント、位置を持つ文字オブジェクトであり、ウェブページがテキストを保存するのと同じ方法です。ビューアはそれを選択し検索でき、スクリーンリーダーは読み上げることができます。画像ベースのPDFでは、ページは1枚のフラットな画像であり、多くの場合スキャナーやファックス、あるいは文書の写真に適用された「印刷してPDFに」というステップで作られます。文字は目には同じように見えますが、ファイル形式にとってはその下に文字は存在せず、ピクセルがあるだけです。

どちらか見分ける手早い方法
Ctrl+FまたはCmd+Fを押して、ページ上ではっきり見える単語を検索してください。検索が見つけてハイライトすれば、そのページには本物のテキスト層があります。文書のどこにも何も見つからなければ、そのページは、どれほど鮮明で、どれほどタイプされた文書のように見えても、画像です。マウスをドラッグして行を選択しても同じ答えが得られます。ハイライトになるか、ただの四角形の選択になるかです。
OCRでテキストを再構築する
光学文字認識(OCR)は画像ベースのページのピクセルを読み取り、その形を特定の言語の学習済みの文字モデルと照合し、認識された文字を出現位置に配置してテキスト層を再構築します。ocrのようなツールはこれを完全にブラウザ内で行います。何もアップロードされず、出力は検索、コピー、編集ができるプレーンテキストファイルです。精度はソースに左右されます。きれいでまっすぐな、対応言語の高解像度スキャンは信頼性高く認識されますが、傾いた、ぼやけた、コントラストの低い、あるいは手書きのページはより多くの誤りを生みます。誤った文字や誤読された単語が出ることもあります。

ファイルにすでにテキストがあるのに抽出結果がおかしく見える場合
PDFに本物のテキスト層があるのに、pdf-to-textのようなツールが列が混ざったり間隔が詰まったりした奇妙な順序のテキストを出す場合、それはまったく別の無関係な問題です。テキストオブジェクトは存在していますが、ページ上の読み取り順序がスクリプトが自然に期待する形では保存されていなかったのです。これは抽出後に整理すべきレイアウトの癖であり、テキストが欠けているサインではなく、修正にOCRは必要ありません。
この記事で紹介するツール
よくある質問
PDFが普通のタイプされた文書のように見えるのに、テキストをまったく選択できません。なぜですか?
おそらくスキャンまたは撮影されたページをPDFとして保存したものか、意図的に画像にフラット化された文書です。見た目はテキストベースのPDFと見分けがつかないことがあり、違いは検索や選択を試みたときにだけ現れます。OCRにかければ、ピクセルから本物の選択可能なテキスト層を再構築できます。
OCRはあらゆる言語で同じようにうまく機能しますか?
いいえ。精度は、その言語と文字体系の学習済みモデルが存在するかどうかと、スキャンの品質に左右されます。きれいでまっすぐなスキャン上の対応言語は信頼性高く認識されますが、手書き、低解像度の画像、学習データの少ない言語はより多くの誤りを生みます。OCRの出力は常にベストエフォートの書き起こしであり、頼る前に一度目を通す価値があります。