スキャンPDFと文字PDF
2つのPDFは画面上では同じに見えて、中身がまったく違うことがあります。片方は文字と図形の記述であり、もう片方は紙の写真です。PDFにまつわる不満のほとんどは、自分がどちらを扱っているのかを知らないことに行き着きます。
2種類のPDF
文字PDF(デジタルPDF、ネイティブPDFとも呼ばれます)は、ソフトウェアが直接書き出したものです。ワープロ、表計算、デザインツール、ブラウザの印刷機能などが該当します。ファイルの中には実際の文字、それを描くためのフォント、線や図形のベクター命令が入っています。ページの写真は1枚も含まれていません。
スキャンPDFは、写真を包んだ入れ物です。スキャナやスマートフォンのカメラが1枚ずつビットマップとして撮影し、PDFがそれを1ページ1枚で包みます。ファイルの立場からすれば文字は存在せず、人間が見ると文字に見える色の点の格子があるだけです。
両者が混在した文書はよくあり、最も混乱を招きます。ワープロから綺麗に書き出した契約書を印刷し、署名し、スキャンして、付属資料と結合すれば、1つのファイルに両方の種類のページが入ります。
数秒で見分ける
最も速いのは、本文をマウスで選択してみることです。語に沿って綺麗に選択範囲が追従すれば文字ページ。何も反転しないか、青い矩形がページ全体を一度に覆うなら画像ページです。
検索も同じくらい有効です。はっきり見えている単語を1つ選んで検索してみてください。文字PDFなら即座に見つかり、スキャンでは何も見つかりません。探すべきものが存在しないからです。
3つ目は拡大で、これが最も確実です。フォントから描かれた文字は何倍に拡大しても毎回描き直されるのでくっきりしたままです。スキャンされたページは、目に見えるピクセルへと崩れていき、JPEGで圧縮されていれば文字の周囲にぼんやりした滲みが現れます。
スキャンがこれほど重くなる理由
文字として保存されたページは、驚くほど小さく収まります。文字そのものは数キロバイトで、フォントは何ページで使われても文書全体で1回しか保存されません。50ページの報告書が1メガバイトを切ることも珍しくありません。
同じページを300dpiでスキャンすると、およそ870万ピクセルになります。圧縮してもカラーで1ページあたり1〜3メガバイトが普通で、しかも写真同士は何も共有できないので、このコストが全ページぶん繰り返されます。スキャンした契約書が、元の文書の100倍の容量になることがあるのはこのためです。
スキャナの設定で差は極端に開きます。同じ紙を200dpiの白黒で取れば40キロバイト、600dpiのカラーなら10メガバイトということもあります。多くのオフィス用スキャナは、その文書に必要な水準よりはるかに高い設定が既定になっています。
OCRが実際にしていること
OCR(光学文字認識)は、スキャン画像の中の形を読み取り、それがどの文字かを推測します。一般的な結果は「検索可能PDF」で、元の写真はそのまま手つかずで残り、その上に見えない文字の層が、見えている語と位置を合わせて重ねられます。
ここは理解しておく価値があります。OCRはスキャンを文字PDFに変換しているわけではありません。ページは依然として写真であり、容量も同じ、ぼやけ具合も同じです。変わったのは、下に隠れた層を経由して検索とコピーができるようになった、という点だけです。
同時に、OCRの誤認識は目に見えません。別の文字と読み違えられていても、画面に出ているのは元の写真なので完全に正しく見えますが、検索には掛からず、コピーすれば間違ったまま出てきます。認識精度は、低解像度・傾き・手書き・特殊な書体で急速に落ちます。
画像変換のときに何が違うか
文字PDFの画像変換は、本物の描画処理です。文字とベクターが指定した解像度で新しく描き直されるので、スケールを上げれば実際に情報量が増え、出力はいくらでも鮮明にできます。
スキャンPDFには、追加できる情報がありません。ページはすでに固定解像度の画像なので、大きく描画してもそこにあるピクセルが引き伸ばされるだけです。150dpiで取り込まれたスキャンを600dpiで書き出しても、得られるのは大きくてぼやけたファイルだけです。
実用上は、スキャンの解像度を超えないことが目安です。まず中くらいのスケールで試し、結果を見て、文字が実際にくっきりしていくなら上げる。スケールを上げても読みやすさが変わらなくなったら、そこが元画像の解像度で、それ以上はすべて無駄なバイト数です。