PDFで文字が検索できないけど?何が問題?
どうしたら良い?
更新日:
このページの目的
PDFで文字を検索するには、文字コードがPDFから取得できる必要があります。 PDF内の文字コードと検索に使用する文字コードが一致して、はじめて文字が検索にヒットするからです。
PDFで文字が検索できないのは、スキャナーを使用して保存した画像でPDF内部に文字コードがない場合、フォント埋め込みしたPDF でPDFから正しい文字コードが取得できない場合、フォントがアウトライン化されてしまっている場合、などが考えられます。
これらのPDFを文字検索可能にする一般的な方法は、OCR(光学文字認識)を使ってPDFに文字コードを追加することです。ここでは、PDFで文字が検索できない場合に考えられる原因とその対応について考えてみます。
PDFで文字が検索できない場合に考えられる原因
原因1:スキャナーで保存した画像だけのPDFで文字コードが含まれていない
文字を含む紙をスキャンして作成されたPDFは、写真と同じように文字も画像で保存されます。
画像だけのPDFにコンピュータで文字を扱うための文字情報が含まれないと、文字コードによる検索ができません。
原因2:フォント埋め込みされたPDFで文字コードが取得できない
フォントの埋め込み処理をすると、文字はグリフ(線画の一種)で表します。文字の並びは、文字コードの並びの代わりにグリフIDで表します。
検索できるためには、PDF内にグリフIDを文字コードへ置換する対応表が保存されていなければなりません。もし、対応表がないときは、文字コードが取得できないので検索できません。
原因3:フォントがアウトライン化されていて文字コードが取得できない
印刷会社によっては、印刷用PDF入稿するとき、フォントのトラブルを避けるためフォントのアウトライン化を要求することがあります。フォントをアウトライン化すると文字コードやグリフIDの情報が失われてしまいます。
この他に、一部の文字のみをフォントの都合などで、作者がアウトライン化することもあります。この場合はアウトライン化した部分だけ検索でヒットしなくなります。印刷入稿用のPDFが一般に配信されることは少ないでしょうが、一部の文字が画像になっているPDFはときどき見かけます。
スキャナーで保存した画像だけのPDFで文字コードが含まれていない(原因1の詳細と対応)
文字を含む紙の原稿をスキャンして得られる画像は、写真と同じように微細な点の集まりで元の文字を表現します。 画像化された文字は、コンピュータでは文字コードとして扱うことができません。
PDF内に文字コードがあるかどうかは、Adobe ReaderでPDFを開いて文字の全選択行うことで確認できます(文字の全選択は、PDFが表示された状態で「編集」メニューから「すべて選択」をクリックします)。 全選択を行っても画面上に何も反応がない場合、そのPDFには文字コードが含まれていません。
対応方法
内部に画像しかないPDFは、OCRを使って文字検索可能なPDFとすることができます。
OCRにより文字検索可能にしたPDFは、「透明テキスト付きPDF」や「サーチャブルPDF」といった名称で紹介されていますので、目にされた方もおられることでしょう。
ただし、OCRによる文字認識は万能ではありません。
対象となる原稿または画像の品質(傾き、かすれなど)、使用されている文字、読み取るOCRの性能によって文字の認識精度が左右されます。 また、認識精度が低いと文字コードを正しく抽出できないため、結果として文字検索にヒットしなくなる可能性があります。
フォント埋め込みされたPDFで文字コードが取得できない(原因2の詳細と対応)
PDFを作成するソフトウェアの多くは、フォント埋め込み機能をサポートしています。 フォント埋め込みを指定すると、文字列の並びは原則として文字コードではなく、グリフIDと呼ばれる番号で表現されます。
グリフIDは文字コードとは異なるものです。このため、グリフIDがどの文字コードに該当するものであるかを示す対応表(ToUnicode CMapなど)が必要となります。
PDFに対応表が設定されているかどうかは、Adobe Readerで文字を選択してコピーし、Windowsのメモ帳などに貼り付けることで確認できます。 PDFに対応表がない場合は、貼り付けた文字が化けて「?」などになります。
フォント埋め込み時に対応表を一緒に保存することはPDF仕様上の必須事項ではないため、PDF作成時に対応表が作られないことがあります。PDFの有効活用のためには、PDF作成時には対応表が保存されていることを確認しましょう。
対応方法
対応表が保存されていないPDFを文字検索可能にするには、以下の2種類の対応が考えられます。
- 元の原稿が手許にある:対応表を付加できるPDF作成ソフトウェアを使用して、フォント埋め込みされたPDFを作り直す。
- 元の原稿が手許にない:現在のPDFにOCR処理を行って文字コードを付加し、別のPDFとして保存し直す。
「2.元の原稿が手許にない」場合の対応には、原因1と同様にOCRが使用可能なソフトウェア製品が必要です。 OCRを使った処理ではPDFをいったん画像に変換した上で文字認識を行いますので、元の文字を完全に認識できる保証はありません。
しかし、文字検索が可能となることで得られるメリットは大きいものがあります。 PDFで文字検索を有効活用するには、認識精度が高い適切なソフトウェアの選択が必須と言えるでしょう。