# PDFからテキストを抽出する：埋め込みテキスト、スキャン、OCRの限界

PDFからきれいにテキストを取り出せるかどうかは、見た目よりも「PDFの中に文字データが入っているか」で決まります。ワープロや請求書システムから出力されたPDF、またはOCR済みのスキャンPDFなら、選択・コピーできる文字オブジェクトを持っていることがあります。一方、OCR前のスキャンは、PDFの中に画像が貼られているだけです。その場合、テキスト抽出ツールは文字を新しく読めません。

Lutrakitの[PDFテキスト抽出](/ja/pdf-text-chushutsu/)は、すでにPDF内にある文字を `.txt` として取り出すためのツールです。処理はブラウザ内で行われ、PDFはアップロードされません。ただしOCRエンジンではありません。スキャン画像しかないPDFでは、先に[PDF傾き補正](/ja/pdf-katamuki-hosei/)などで画像を整え、その後にOCR専用の手段を使う必要があります。

## まずPDFの種類を見分ける

PDFを開き、次の3つを確認します。

1. 本文の一文をドラッグして選択できるか。
2. `Ctrl+F` または `Cmd+F` で、見えている単語を検索できるか。
3. 段落をコピーしてテキストエディタに貼ると、文字がほぼ正しいか。

3つとも問題なければ、埋め込みテキストがある可能性が高いです。ページ全体が四角く選択されるだけなら、画像スキャンの可能性があります。検索できるのにコピー結果が間違う場合は、OCR済みだが認識精度の低いテキスト層が入っているかもしれません。

この違いは重要です。PDFのテキスト抽出APIは、ページを人間のように見直すのではなく、PDF内のテキスト内容を読みます。PDF.jsの `getTextContent()` はページのテキスト内容を返し、空白を通常のスペースに正規化します（[PDF.js API](https://mozilla.github.io/pdf.js/api/draft/module-pdfjsLib-PDFPageProxy.html)、2026-08-17参照）。またPDF AssociationのFAQも、スキャン文書を検索可能にするにはOCRで文字層を追加する必要があると説明しています（[PDF Association PDF/A FAQ](https://pdfa.org/pdfa-faq/)、2026-08-17参照）。

## 文字が入っているPDFでLutrakitを使う

基本の手順は次の通りです。

1. [PDFテキスト抽出](/ja/pdf-text-chushutsu/)を開く。
2. PDFを1つドロップする。現行上限は1ファイル100 MB。
3. ページ境界が必要ならページ別の区切りをオンにする。連続した文章でよければオフのままにする。
4. `report-text` のような出力名を入れる。
5. 実行し、生成された `.txt` をダウンロードする。

ページ別の区切りは、請求書、議事録、フォームの確認に向いています。ページ番号ごとの見出しが入るため、「7ページ目の金額が抜けていないか」のような確認をしやすくなります。

## 作例

再配布可能な3ページ構成のサンプルPDFを使います。

| ページ | 内容 | 期待する結果 |
| --- | --- | --- |
| 1 | デジタル文字: "Invoice A-1024, total 148.60 EUR" | 同じ語句と数値が `.txt` に出る。 |
| 2 | 2段組のメモ | 文字は出るが、列の順序を確認する必要がある。 |
| 3 | "Signed on 17 August 2026" と書かれたスキャン画像 | OCR層がなければ空、またはほぼ空になる。 |

再現可能な確認として、ブラウザ、OS、Lutrakitのリビジョン、サンプルファイルのハッシュ、期待テキスト、実際の出力、不一致を記録します。

## 読み順が崩れる理由

PDFはページの見た目だけでなく、描画命令や文字の配置情報を持っています。見た目は普通の段落でも、内部では細かい文字列、2段組、ヘッダー、フッター、特殊フォントに分かれていることがあります。抽出ツールはそれらの情報をたどるため、人間が自然に読む順番と一致しない場合があります。

よくある問題は次の通りです。

- ヘッダーやフッターが本文の途中に入る。
- 2段組の左列と右列が交互に混ざる。
- 合字や特殊フォントで文字が化ける。
- 日本語など、単語間スペースがない言語で不自然な空白が入る。
- OCR済みスキャンで `O` と `0`、`l` と `1` のような誤認識が残る。

法務、学術、会計、アーカイブ用途では、抽出テキストだけを証拠にしないでください。必ず元のPDFと照合します。

## スキャンPDFの場合

画像だけのPDFでは、最初にテキスト抽出をしても十分な結果は出ません。先に画像を整え、OCRを行います。

1. 傾きを直す。Tesseractの品質ガイドは、傾いた画像では行分割の品質が大きく下がるため、文字行が水平になるよう回転することを勧めています（[Tesseract ImproveQuality](https://github.com/tesseract-ocr/tessdoc/blob/main/ImproveQuality.md)、2026-08-17参照）。
2. 可能なら清潔で高解像度のスキャンを使う。同ガイドは300 DPI以上が役立つ場合があるとしています。
3. 黒い縁を取り除き、適度な白い余白を残す。
4. ローカルまたは信頼できるOCRツールで文字層を作り、その後に必要なら `.txt` を抽出する。

[PDF傾き補正](/ja/pdf-katamuki-hosei/)は画像をまっすぐにする補助にはなりますが、OCR文字層は追加しません。きれいな画像は後段のOCRを助けますが、それだけで検索可能PDFになるわけではありません。

## 結果の確認方法

全文を何となく眺めるより、小さな監査をします。

- 元PDFのページ数と、抽出結果のページ区切りを比べる。
- 重要なページごとに固有の語句や番号を1つ検索する。
- 金額、日付、氏名、IDをPDF画面と照合する。
- 2段組では、少なくとも1セクションを通して読み順を確認する。
- OCR済みスキャンでは、重要な文字を目視で読む。

抽出テキストを別のシステムに入れる場合も、元PDFを保管してください。`.txt` は検索用の作業ファイル、PDFは見た目の基準です。

## 使わない方がよい場面

低品質スキャン、手書き、複雑な表、チェックボックス付きフォーム、レイアウト自体が証拠になる文書では、この方法だけに頼らないでください。OCR、文書解析、PDFデスクトップアプリ、または手動確認が必要です。

Lutrakitが得意なのは、すでに存在するPDF内テキストをローカルで取り出し、自分で確認できる形にすることです。ファイルのバイトは端末から出ず、出力はブラウザ内の処理結果としてダウンロードされます。
