PDFから文字を抽出する方法

  1. PDFを追加する. 「PDFを選択」をタップするか、ファイルをページにドロップします。パスワードで保護されている場合は、パスワードを入力して「開く」をタップします。
  2. ページの読み取りを待つ. 各ページのテキスト項目が読み取られ、その位置から行に組み立て直されます。進行バーに現在のページが表示されます。
  3. 出力を調整する. 「ページごとに区切る」にチェックを入れると各ページの上に見出しが付き、「ハイフネーションを除去」で行末で分かれた単語がつながります。ボックスはすぐに更新されます。
  4. コピーまたはダウンロードする. 「文字をコピー」をタップしてクリップボードに入れるか、「.txtをダウンロード」でPDFの名前を付けたプレーンテキストファイルを保存します。

できること

  • PDFのテキストレイヤー全体を、ページ上の見た目どおりの改行と段落の間隔を保って抽出
  • ページごとに区切る:各ページの文字の上に「12ページ中3ページ目」の見出しを追加
  • ハイフネーションを除去:行末で分かれた単語をつなげる(docu- / ment → document)
  • ワンタップでクリップボードにコピー、またはUTF-8の.txtファイルとしてダウンロード
  • PDFにテキストレイヤーがない(スキャン)場合はそれを知らせ、空のファイルを返す代わりにOCRツールへ案内
  • すべて端末内で完結 — 通信が発生するのは、オープンソースのPDF.jsライブラリを取得するときだけ

このツールは何を抽出するのか

PDFのページは描画命令の一覧です。ファイルがデジタル文書(Wordファイル、Webページ、メール)から作られた場合、その命令にはテキストレイヤーが含まれます。文字そのものと、各断片がページ上のどこにあるかという情報です。PDF.jsはそのレイヤーを読み、位置付きのテキスト項目として報告します(getTextContent API)。このツールはそれらの項目から読める行を組み立て直し、結果をプレーンテキストとして渡します。PDFがスキャンならテキストレイヤーはなく、抽出するものもありません。ツールはそう伝え、空のファイルを渡す代わりにOCRへ案内します。

行はどのように組み立て直されるのか

ルール何をするか理由
同じベースライン → 同じ行縦位置の差がグリフの高さの半分未満のテキスト項目を、左から右に1行にまとめるPDFの書き出し側は1行を多くの項目に分割する(単語ごと、フォント変更ごと、カーニングペアごと)
隙間 → スペース2つの項目の間にグリフの高さの4分の1より広い横の隙間があれば、1つのスペースにする多くのPDFはスペース文字を保存しておらず、隙間だけが手がかり
大きな縦の間隔 → 空行行間が1.6行分を超える場合は空行を挿入する段落と見出しを見て分かるように区切る
ページごとに区切る(オプション)各ページの前に===== Page n of N =====の見出しを追加する。空のページも含む原本の中で該当箇所を見つけられるようにする
ハイフネーションを除去(オプション)両側が小文字ならdocu-+改行+mentをdocumentにつなげ、行末のソフトハイフンを削除する両端揃えの文章には、単語の一部ではない行末ハイフンが大量にある

プレーンテキストが正しい出力になるのはどんなときか

  • 契約書の条項、手紙、引用をメール、メモ、検索ボックスに貼り付けるとき。
  • 文書を翻訳ツール、スクリーンリーダー、テキスト分析スクリプトに渡すとき。
  • 原本の隣に検索可能なコピーを保管するとき、またはスキャナーのOCRが実際に何を認識したかを確認するとき。
  • 数えて引用するとき:PDF 文字数カウントが数値を、このツールが文字そのものを渡します。

レイアウトが必要なら、PDFそのものを使うか、PDF JPG 変換でページを画像にしてください。共有前に何かを消す必要があるなら、PDF墨消しがインクだけでなく下にある文字も削除します。

制限事項

  • テキストレイヤーのみが対象です。OCRなしのスキャンからは何も出ず、OCRありのスキャンからはOCRの出力が、誤りも含めて出てきます。
  • 読み取り順は幾何学的です。上から下、左から右です。段組みのページや表は入り交じることがあります。
  • フォーム欄の値、コメント、注釈、しおり、添付ファイルはページの文字ではないため、抽出されません。
  • Unicodeの対応付けが壊れているか欠けているフォント(古いPDF生成ツールや一部の記号フォント)は文字化けして出てきます。これはファイル側の欠陥で、PDFビューアーのコピー機能でも同じ結果になります。
  • 書式は残りません。太字、斜体、色、リンク、画像は落とされます。