日別アーカイブ: 2015年3月10日

pdfview の問題点

現状の pdfview にはまだまだ問題点があります。
そのうちのいくつかを説明します。

■描画の不具合

描画の不具合で、一つ上げると下記のファイルのマスク・重ね合わせ処理の違いがあります。
http://www.akita-jas.com/images/brochure.pdf

はっぴの画像でマスクの濃淡が反転しているように見えますが、何枚かの画像を重ね合わせていて違いの原因を細かく追い切れていません。他にも描画の不具合は、探せば色々見つかると思います。

■未実装の描画処理

未実装の描画処理もいくつかあります。
例えば注釈の描画、レイヤーの描き分けにまだ対応できていません。

注釈の例
http://www.adobe.com/jp/acrofamily/features/acro_nikkei/pdfs/Annotation.pdf

pdfview ではまだ注釈の表示はできません。
なお、PDF Viewer SDK では Viewer Control での注釈の表示は可能です。

レイヤーの例
http://www.pdfill.com/example/pdf_layer_new.pdf

画像の比較だけでは少しわかりにくいですが、元の PDF ファイルではページ内の各部分がレイヤーに分かれていてそれぞれ表示、非表示の切り替えができます。pdfview ではレイヤーの表示、非表示の切り替えに対応できておらず、すべて表示されます。pdfview ではページ下の × ✓ ⦿ の3つとも表示されていますが、本来はこのうちの一つだけが表示されるものです。

■サンプルの速度

Android のサンプルとしてビューアーアプリケーションを用意していますが、動作速度が遅いという問題があります。速度低下の原因は色々考えられるのですが、そのうち、拡大表示を行った時にあきらかに速度が落ちるという問題があります。これは内部の動作としてページ全体を描画してその一部を画面に表示するという、単純な実装になっている事が原因と考えています。拡大されたページ全体を描画するため、倍率の分増加する使用メモリーを確保する時間が必要で、また描画する領域も大きくなるのでその描画処理に時間がかかるという事です。

実際に描画が必要なのは表示される領域だけですので、描画する領域をページ内の表示する領域だけに絞って確保するメモリーを減らし、描画することで、ある程度は速度の改善は可能と考えています。
できれば次回公開する版に反映させたいと思います。

また、描画処理自体の処理も改善を図っていますので、新しい版のほうが速くなっているかと思います。