スキャンPDFをOCRで検索可能にする方法
スキャンしたPDFを、ブラウザ上で検索・テキストコピーができるドキュメントに変換する方法をLuraPDFで解説。OCRの仕組みや精度を左右する要因、結果の確認方法、他の操作より先にOCRを行うべき場面、ブラウザ処理ならではのプライバシーの利点や限界も紹介。

編集・技術チーム · 2026年5月4日 · 13分読む
スキャンされたPDFは、ドキュメントをデジタル写真として撮影したものです。各ページは画像です。テキストを選択したり、単語を検索したり、文章をコピーしたり、テキスト処理ツールにコンテンツを渡したりすることはできません。情報検索の観点から見ると、スキャンされたPDFは実質的に不透明な存在です。
OCR(光学文字認識)は、それらの画像を分析し、視覚的なコンテンツの上に重なるテキストレイヤーを構築することでこの問題を解決します。その結果、元のスキャンと見た目は同じでありながら、すべての内容が選択・検索・コピー可能になる不可視のテキストレイヤーを持つPDFが生成されます。
OCRの仕組み
LuraPDFはTesseract.jsを使用しています。これは、Googleが管理しHPラボが開発した最も精度の高いオープンソースOCRエンジンの一つであるTesseractのブラウザコンパイル版です。TesseractはLSTMベースのニューラルネットワークモデルを使用しており、数十の言語にわたる数百万のドキュメントページで訓練されています。
OCRの処理パイプライン:
- ページレンダリング: 各PDFページが高解像度(精度最大化のため300+ DPI)でキャンバス画像としてレンダリングされます
- 前処理: 画像の強化 — 2値化、ノイズ除去、傾き補正(回転したスキャンの矯正)
- レイアウト解析: テキスト領域、段組み、表、非テキスト要素の検出
- 文字認識: ニューラルネットワークが分割されたテキスト領域から各文字を分類します
- 後処理: 言語モデルによるスコアリングで類似文字(「l」と「1」、「O」と「0」など)を識別します
- PDF書き込み: 認識されたテキストは、対応する視覚的な文字の上に正確に配置された不可視のテキストレイヤーとして埋め込まれます
この不可視のテキストレイヤーが、結果を検索可能にする核心です。ページの視覚的な外観は元のスキャン画像のまま保持され、スキャンしたものがそのまま見えますが、その下のテキストは機械で読み取れる状態になっています。
OCR精度に影響する要因
精度は入力品質によって大きく異なります:
スキャン解像度
信頼性の高い精度には300 DPIが最低条件です。 200 DPI未満では、文字認識が著しく低下します。OCRのためにドキュメントをスキャンする場合は、必ず300 DPI以上でスキャンしてください。
150 DPI以下でスキャンされたドキュメントは、OCRを実行する前に高解像度で再スキャンする必要があります。低解像度スキャンにOCRを実行しても、エンジンの性能に関わらず良い結果は得られません。
フォントと印刷品質
- 印刷テキスト(レーザープリンター出力、組版書籍):クリーンな原稿で98〜99%の精度
- 文字が明確な高品質の手書き文字:85〜95%
- かすれたまたは薄いテキスト:コントラストによって80〜95%
- カーボンコピー用紙:60〜85%
- 古い新聞・タイプライター:クリーンなスキャンで90〜95%
- 筆記体の手書き文字:40〜70% — ニューラルネットワークOCRは筆記体の処理が苦手です
ページの向き
大きく傾いたり回転したりしたページは精度を低下させます。Tesseractを含むほとんどのOCRエンジンは、わずかな回転(最大約10度)を自動的に検出して補正します。大きく回転したページは、PDFを回転を使って先に手動で補正してください。
言語
Tesseractは100以上の言語をサポートしています。LuraPDFのOCRツールは英語を自動検出します。ラテン文字以外のスクリプトや英語以外のドキュメントの場合、言語を選択することで精度が大幅に向上します。
LuraPDFでPDFをOCR処理する方法
- OCRツールを開く:LuraPDF OCR PDFに移動します
- スキャンされたPDFをアップロード:ファイルをドラッグ&ドロップします
- 言語を選択(英語以外の場合):ドキュメントの主要言語を選択します
- 「OCRを実行」をクリック:処理はブラウザ内でページ単位で行われます。処理時間はドキュメントの長さによって異なり、20ページのスキャンでは通常、最新のコンピューターで30〜90秒かかります。
- 検索可能なPDFをダウンロード:出力は元のスキャン画像に埋め込みテキストレイヤーが追加されたPDFです
結果の確認
OCR後に精度を確認します:
- ページ上のテキストを選択する — 印刷された文字の上で正確にテキストが選択できるはずです
- 一般的な単語をCtrl+F / Cmd+Fで検索する — 見つかるはずです
- 段落をコピーしてテキストエディタに貼り付ける — 出力が読み取れる状態であるはずです
精度が低い場合は、他のツールを試す前にまず入力スキャンの品質を確認してください。
他の操作の前にOCRを実行すべき場合
OCRは、純粋な画像PDFでは機能しない追加のLuraPDF操作を利用可能にします:
- OCR後にPDFを圧縮:テキストが抽出されると、画像領域をより積極的に圧縮できる場合があります
- OCR後にPDFをWordに変換:OCR処理済みPDFをWordに変換すると編集可能なテキストが得られますが、未加工のスキャンを変換すると画像が埋め込まれたWordファイルになります
- OCR後にPDFを墨消し:テキストベースの墨消しはOCR処理済みドキュメントで正しく機能します
- 検索と抽出:再入力なしに特定の情報を検索してコピーできます
プライバシー:OCRはブラウザ内で実行される
Tesseract.jsはWebAssemblyを使用してOCR処理全体をローカルで実行します。医療記録、財務諸表、法的文書、個人を特定できる情報を含むことが多いスキャンドキュメントが、お使いのデバイスの外に出ることはありません。リモートサーバーがあなたのファイルを処理することはありません。
これは、処理するすべてのもののコピーを必ず受け取るクラウドOCRサービスに対する大きな優位点です。
ブラウザベースOCRの制限事項
処理時間
Tesseract.jsは、ネイティブデスクトップのTesseractやクラウドOCR APIよりも低速です。ハードウェアによって異なりますが、1ページあたり約3〜8秒かかります。50ページのドキュメントは数分かかる場合があります。
表
TesseractはXの内容を認識しますが、PDFのテキストレイヤーに表の構造を再構築しません — テキストは読み取り順序で配置されますが、セル構造は保持されません。構造化された表の抽出には、OCR処理済みPDFをWordに変換して表を手動で再フォーマットしてください。
数式表記
LaTeX形式の数式や数学記号は精度が低くなります。Tesseractモデルは自然言語テキストに最適化されています。
手書き文字
前述のとおり、筆記体の手書き文字の精度は限られています。活字体の手書き文字はより良い結果が得られます。重要な手書きドキュメントは、各ページを手動で確認してください。
よくある質問
OCR処理されたテキストが文字と一致しない — バグですか? これは大きく歪んだスキャンで発生することがあります。テキストの位置は検出された文字位置から計算されますが、ページの形状が標準でない場合、位置合わせがずれることがあります。OCRを実行する前にPDFを回転して歪みを補正してみてください。
特定のページだけOCR処理できますか? LuraPDFはすべてのページを処理します。特定のページだけOCRが必要な場合は、まずPDFページを抽出してそれらのページを取り出し、OCRを実行してから、必要に応じて結果を結合してください。
OCRによってスキャン文書の視覚的な外観は変わりますか? いいえ。元のスキャン画像はそのまま保持されます。不可視のテキストレイヤーが追加されるだけです。
一部がテキストページで一部がスキャンページのPDFにOCRを実行できますか? はい — Tesseractは画像ベースのページを処理してテキストレイヤーを追加します。既にテキストレイヤーがあるページには影響しません。
ドキュメントがアラビア語・中国語・日本語の場合、OCRは機能しますか? はい。ただし、実行前にツールで正しい言語を選択してください。CJKや右から左に読む言語に対するTesseractの精度は良好ですが、ラテン文字のドキュメントよりもスキャン品質による変動が大きくなります。
OCRは、スキャンされたドキュメントの閉じられたアーカイブを、アクセス可能で検索可能かつ処理可能な情報へと変換します。スキャンされた契約書が詰まったキャビネットが検索可能なデータベースになります。山積みの医療記録が実際にナビゲートできるドキュメントになります。この処理は数秒から数分で完了し、すべてお使いのデバイス上で実行されます。