OCRで作成されたPDFから透明テキストの抽出・可視化 2026年5月6日更新

 

PDFの加工はPythonでライブラリーを利用して行うことが定番のようだがWindows用CUIプログラムを使ったバッチファイルを作ってみた。使用するプログラムは qpdfsdCPDF の3つ。

PDFの抽出と書いたが やっていることは透明テキスト付きPDFから画像を削除して透明テキストを残すこと。

  1. qpdf --qdf --object-streams=disable を使ってPDFをテキストエディターで編集可能なQDF形式に変換。
  2. sd でPDF中の "/XObject" 等を削除。
  3. その状態ではPDFとしては不正な状態なので cpdf -squeeze を使ってファイルを圧縮すると同時に修復を行うという結構いい加減な方法で透明テキストPDFを作成。

OCRソフトやPDFリーダーによっては作成したPDFを開くと警告が出るが使用には問題なし。PDFから各種ツールを使って画像を抽出して自分の好きなように圧縮して画像のみのPDFを作成し、cpdf -combine-pages を使って透明テキストを重ねてPDFを作り直すこともできる。

それを可視化するバッチファイルがやっていることは・・・

  1. qpdf --qdf --object-streams=disable を使ってPDFをテキストエディターで編集可能なQDF形式に変換。
  2. sd で可視化されるような部分を書き換え。
  3. cpdf -squeeze を使ってファイルを圧縮すると同時にPDF化。

OCRソフトによって不可視化の方法は違っているので 2. はいくつかに対応させ、手元にあるOCRソフトいくつかで動作確認した。可視化できないものがあれば どうすればよいか調べて書き換えが必要。

可視化させた透明テキストPDFは、OCRの精度が高く、小説等文章中心で、表示も気にならなければそのまま保存して極小のファイルのコレクションとできるかも。PDFリーダーは意外と優秀で行をまたいで検索もできるし、SumatraPDFではページをまたいでの検索もできる(ただしそれはヘッダー・フッター・ノンブルを取り除いている場合)。

※qpdf.exe と sd.exe と cpdf.exe にはパスを通すかバッチファイルをフルパスに書き換えて下さい。

 

戻る