PDFから文字を抽出する方法
- PDFを追加する. 「PDFを選択」をタップするか、ファイルをページにドロップします。パスワードで保護されている場合は、パスワードを入力して「開く」をタップします。
- ページの読み取りを待つ. 各ページのテキスト項目が読み取られ、その位置から行に組み立て直されます。進行バーに現在のページが表示されます。
- 出力を調整する. 「ページごとに区切る」にチェックを入れると各ページの上に見出しが付き、「ハイフネーションを除去」で行末で分かれた単語がつながります。ボックスはすぐに更新されます。
- コピーまたはダウンロードする. 「文字をコピー」をタップしてクリップボードに入れるか、「.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ビューアーのコピー機能でも同じ結果になります。
- 書式は残りません。太字、斜体、色、リンク、画像は落とされます。