要約:PDFをウェブページ上に表示できるようにするサービスを利用して、閲覧者がページから離脱するのをなんとか減らしていこうという試み
- エラー:サーバ側でエラーが発生しました、このページを再読込してください
PDFファイルは昔からブラウザ上の表示には難がありました。動作が重く、ブラウザを固まらせたり、ブラウザ側のコントロールGUIを全く別のものにすげ替えてしまったり…。詳しいところはニールセン氏のコラムに譲りますが、そのせいでPDFファイルにリンクを張るのをためらうこともあります。読み手としても「詳細はPDFで」なんて言われたら面倒くさくなってタブを閉じる人もいるでしょう。
これに対する対策として、ニールセン氏は要約を記したゲートウェイ・ページを用意しておこうと仰っているのですが、これでは不十分でしょう。というのは、これはあくまで「ショック」を和らげるだけでしかなく、先のリンク先で挙げたユーザビリティ問題が棚上げされているからです*1
彼の言うようにPDFが印刷物に合わせたテキスト
である以上、問題の完全な解決は難しいかと思いますが、一方で解決できる問題も結構あるんじゃないか、ということで今回試しに作ってみたのがオンラインPDFリーダです。
えっと、じゃデモとして試しに適当なPDFを表示してみましょう…。最近読んだ図書館蔵書検索の論文PDFにしましょうか。
ウェブページを普通に表示するときほど可読性は良くないのですが、それでもいくつかの問題は解決できてるんじゃないでしょうか。
- ブラウザが固まってしまう問題
- 変換に時間がかかることはあっても、固まることはないでしょう(巨大なファイルを一気に変換しようとしない限り)
- ブラウザ側のコントロールをすげ替えられてしまう問題
- 言うに及ばず。
- 検索できない問題
- 内容からテキストを抜き出して掲載しているので、ブラウザ標準の検索機能で検索できるようになっています。試しに先のPDFで「とりすぎず」で検索してみてください。
- コンテンツの単位が大きすぎて、部分部分にリンクを張れない問題
- ページ指定が出来るので、ページの一部分だけをウェブページとして抽出することが出来ます。例えば、3ページ目だけとか3ページ目から10ページ目までという表示方法ができます。
大きさも3段階で変えることができます。「小さい」はざっと全体を眺める場合、「普通」は通常のプレビューとして、「大きい」はPDFをブラウザ上で全部読みたい場合に向いています。
本当はサムネイルを動的に生成するプログラムを併用して、このサイトで使っているスライダーコントロールのように画像の大きさを動的に変えるのが、一番直感的で望ましいかと思います(大きな画像を出力しておいてそのサイズを切り替える)。が、実際に試してみたところ以下のように文字がぼやけてしまって、可読性がさらに悪くなるみたいで本末転倒になりそうなのでやめておきました。

なお、動作としてページ指定が無い場合は最初の5ページ(PDFが5ページ未満の場合、そのページ数だけ)だけ表示しています。これは全ページを変換してしまうと処理時間がかかりすぎてしまうためです。これについては、今後ページを少し読み込んでおいて、後から動的に追加していくことで、体感速度を早くしていこうと思っています。
汎用PDFゲートウェイとしてオンラインPDFリーダを使う
と、ここまで書いてからPdfMeNot.comというほとんど同じサービスがあることに気づきましたorz(ただ、こちらはFlashを使っていて検索ができないほか、拡張子にPDFが付いていない場合はPDFとして認識されないようです)
さて、こちらのサービスではブックマークレットやブロガー向けのPDFリンク書き換えスクリプトなどサービスを汎用PDFゲートウェイとして使えるようなツールを提供しているようなのですが、私もそれに倣ってみることにします(コードが短いので、ある程度参考にさせていただきました)
ウェブ利用者向け
GreaseMonkeyスクリプト
FirefoxブラウザでGreasemonkeyアドオンがインストールされている場合、以下のスクリプトをインストールすることで、リンク先末尾に「.pdf」が付くリンクを自動的にオンラインPDFリーダーへのそれに変換します。
ブックマークレット
リンク先末尾に「.pdf」が付くリンクをオンラインPDFリーダーへのそれに変換します。ご使用の際は、まず以下のリンクをブックマークに入れてください。その後は、そのブックマークをクリックするとご使用いただけます。
ウェブ制作者向け
以下のタグを <head>タグ内に書き込むことで、リンク先末尾に「.pdf」が付くリンクをオンラインPDFリーダーへのそれに自動的に変換します。
<script src="http://pdf.openvista.jp/pdfconvert.js" type="text/javascript" charset="utf-8"></script>その他の情報
URLの構成
オンラインPDFリーダのURLは以下のようなルールで出来ています。
http://pdf.openvista.jp/[サイズ]/[ページ指定]/[PDFのURL]
- サイズ
- 省略可。small(小さい), medium(普通), large(大きい)のいずれか
- ページ指定
- 省略可(その場合は最初の5ページを表示)。p1のような感じでページを表示ページを指定できる。p1-5といったように複数ページを指定することも出来る。
- PDFのURL
- 必須。PDFのURLを指定してください。
更新履歴
- 2009-01-20
- 最新のPDFファイルを取得し直す機能を追加
- キャッシュしたPDFを検索エンジンが取得しないように設定
- 2008-10-20
- フォントをより美しいものに差し替えました
- 表示サイズをより大きくしました
- 2008-10-18
- 一部のPDFにおいて文字が表示できない問題を解消しました
- 2008-10-12
- 使用するPDF表示ライブラリを変更の副作用で、一部のPDFファイルが検索できるようになりました
- 2008-10-11
- 初リリース
実装予定の機能
- Googleブック検索ライクな埋め込みプレーヤーの提供
- ページの動的追加
参考にしたリンク
今回のサービスは
Xpdf
PopplerというオープンソースのPDFリーダライブラリを利用させていただきました。素晴らしいライブラリを作られた作者さんに感謝。
いいかも。ただpopplerじゃなくてxpdfなのは何故なんだぜまあxpdfも「終わった」わけじゃないのかもしらんが
それは単に知らなかっただけですよ。試しに変えてみたら、コピー不可のPDFファイルも表示できるようになったのでこちらにしておきます。
- チュートリアル/PDFの操作 – MyTeXpert
- pdftoppm – MyTeXpert
- 「PDF をダウンロードさせる」@水無月ばけらのえび日記
- 渋谷でサボるエンジニアの日記» ブログアーカイブ » サーバー上でPDFをHTMLに変換する
謝辞
以下のサイトからアイコンをお借りしました
- 「最善は善の敵」という現場のコストを考えた彼の主張の一貫性には納得していますが[戻る]
- キーワード:






読者のコメント
5件