Linux用PDFビューアまとめ
PDFの原型となったPostScriptは、 1982年にPDFと同じくAdobe社が発明した ページ記述言語だ。 PostScriptは逆ポーランド記法のインタープリタ言語であり、 そのため非常に 柔軟性が高い。 それとは対照的にPDFは、 テキストの位置/種類や(ラスタ形式またはベクタ形式で)画像コンテンツ を記述するファイル形式であり、 パースや描画処理がより簡単にできるようになっている。 (PostScriptとPDFとの関係をより詳しく知るには Adobe社の解説を参照のこと。)
Adobe Reader
Adobe社自身が開発したAdobe Readerは、 PDFファイルを表示するために書かれた最初のプログラムであった。 Adobe Readerは、 PDFファイルの作成・変更を扱う商用プログラム Adobe Acrobatの姉妹品という位置付けだ。
Adobe ReaderのLinux版(バージョン3より入手可能になった)は、 Linux用のPDFビューアの中でPDF形式の機能をもっともよくサポートしている PDFビューアだ。 例えば、フォームフィールドを取り扱うことができるのは、 Linux用のPDFビューアの中で 唯一Adobe Readerのみだ(ただしコンテンツの保存はできない)。 ところがバージョン6ではLinux版は提供されず、 そのことを不満に思ったLinuxユーザからは Linux版がなくてはもはや「PDF(”ポータブル” 文書形式)」 でも何でもないと揶揄され不評を買った。 次のバージョン7でAdobe社はLinux版を復活させ、 同時にAdobe Reader用のGUIツールキットをMotifからGtk+ 2へ変更した。 なおバージョン6以降ではJavaScriptのサポートも行なわれ、 PostScriptとの能力差が少なくなっている。
現在の最新版であるバージョン7.0.8では、 インストール用ファイルがなんと47MBもある。 加えてシステム上にGtk+ 2ライブラリを用意する必要もある (それによりさらに20MBが必要となる)。 Adobe Readerのプラグインアーキテクチャのおかげで Adobe社やサードパーティ製の特殊なアドオンを利用することができ、 デジタル署名のサポートやテキストコンテンツの読み上げ機能など、 他のほとんどのビューアにはない機能や他のどんなビューアにもない機能が 特に設定をしなくてもすぐに利用可能になっている。
Netscape、Mozilla、Firefox、Operaといったブラウザのウィンドウ内でPDFを閲覧したい場合は、 Adobe Readerが唯一の選択肢だ (Adobe ReaderではNetscape 4互換のプラグインが用意されている)。 しかしAdobe Readerは今回比較したプログラムの中で最も重く、 ブラウザのプラグインがAdobe Readerを起動するのが低速であるため、 ウェブ閲覧の快適さが損なわれる可能性がある。 とは言えAdobe Readerは、 一度立ち上がってしまえばページをレンダリングする速度は速い。 ただしページのサムネイル画像をキャッシュしないので、 他のウィンドウが前面に来ることでサムネイル画像が一度隠れ、 その後再び表示される際には、サムネイル画像を再生成する必要がある。 またもう一点注意すべきこととして、 Adobe Readerの機能が セキュリティ上の問題点となる可能性があるということもある。
Xpdf
Xpdf は、 Linuxシステム用のAdobe Readerと同類のソフトウェアとして 最初のサードパーティ製のパッケージであり、 Adobe Readerの約3年後に誕生した。 Xpdfのインターフェースは簡素であり、 現在もプログラムの見掛けはMotifツールキットに依存している。 Xpdfがページをレンダリングする速度は群を抜いて高速だ。 また、文書を拡大/縮小、回転、検索する機能も備えている。 さらに、 特定の範囲のページだけを印刷することも (PostScriptをプログラムまたはファイルにパイプ経由で送るように指示する必要があるとは言え) 可能だ。 Xpdfは軽量さを意図して設計されているため、 PDFファイルを素早く流し見たり、 数ページ程度のファイルに目を通すといった利用目的に優れたツールだ。 Xpdfは今回比較した中で唯一ページのサムネイル画像をサポートしていない。 ただし、(文書に付属している場合)テキストの目次の表示は可能だ。
Xpdfのコードは、 以下で紹介するEvinceやePDFViewやKPDFの レンダリングエンジンのベースとして使用されていたが、 もともとコードの再使用を意識して書かれていたわけではなかったため、 レンダリングエンジンの他プログラムへの統合は 単純にコードのコピーという形で行なわれていた。 そしてこのことにより生まれる保守問題がきっかけとなり、 Xpdfのレンダリングエンジンは最終的に Poppler ライブラリとして分離・移転された。
Evince
Evince は、 複数の文書形式を取り扱うための一貫したインターフェースの提供を 目的として設計されたGNOME用プログラムだ。 Evinceは現在PDF、PostScript、 DjVu、TIFF、DVIをサポートしている。
Evinceは言わば、 インターフェースにGNOMEライブラリを使い、 10ページ単位で移動するボタンを取り除き、 より優れた印刷サポートを加えた、Xpdfだ。 ただしEvinceは、 (副作用として、おそらくはGtk+ を使用していることが原因で) ページのレンダリングにXpdfよりもずっと長い時間がかかる。
EvinceのPDF取り扱い部分は気に入ったが GNOMEライブラリはインストールしたくないというなら、 ePDFView が向いているかもしれない。 ただしEvinceであれば数式や単純なベクタ画像をいくつか含む文書のページを ほぼ瞬時に表示することができるのに対して、 ePDFViewではそのような文書の処理に1ページにつき数秒もかかることがある。
KPDF
KDE プロジェクトのPDFビューアである KPDFは、 Adobe Readerの最強のライバルだ。 KPDFはAdobe Readerよりも速く立ち上がり、 少なくとも同じ速さでレンダリングを行ない、 Adobe Readerのほとんどの機能をサポートしている。 そしてサムネイル画像のキャッシングを行なうため、 レンダリングが行なわれるのは一度のみだ。
KPDFはスタンドアロンアプリケーションとしても使用可能だが、 Konqueror のプラグインとしても使用できる。 KonquerorのプラグインとしてのKPDFで文書を見る場合、 KonquerorとKPDFのインターフェース部分は一体化する。 これは、他のブラウザ内でインターフェース部分が重複したり消えたり使えなくなったりする Adobe Readerプラグインとは対照的だ。
KPDFのテキスト-音声エンジンと、 色がユーザ設定可能であると言う点は、 アクセシビリティという観点からプラスの特徴だ。 また入力と同時に入力テキストを含むサムネイル画像だけを表示する “filter as you type” サムネイル画像検索によって、 該当ページの選択を高速かつ簡単に行なうこともできる。 また、腕が疲れたがコンピュータの話す声は聞きたくないという場合には、 自動スクロールモードで文書を読むこともできる。 さらにKPDFは、KDEのアプリケーションであるため、 KDEデスクトップ環境の優れた印刷インターフェースを使用している。
KDEプロジェクトには、 人気のある文書形式への一貫したインターフェースを提供する okular という計画があるが、 同等のGNOMEのEvinceとは異なり、 現在はまだ実務で用いることのできる品質には達していない。
おすすめ
PDFファイルの閲覧方法を自由に選ぶことができるなら、 私のお奨めはXpdfとKPDFとを組み合わせて使うことだ。 Acrobat Readerプラグインが何メガバイトもメモリに詰め込み終えるのを待つよりは、 PDF文書を指すURLをコピーしてKonquerorに貼り付け、 KPDFブラウザプラグインを使用する方が良いと思う。 もちろん、単純に お気に入りのビューアを使ってPDFファイルを開くようにブラウザに指示し、 プラグインへの依存をなくすということもできる。 その場合、 Evinceに見られる「単純にしておく」というGNOMEプロジェクトの哲学が気に入らない人向けには、 Okularが将来有望のように思われる。 最後に、ラスタ形式のコンテンツ(例えばスキャナで取り込んだ文書や写真など)を多く抱えているなら DjVu も調べてみると良いだろう。