Firefox web browser - Faster, more secure & customizable

MozillaのPDFリーダ開発チームは7月3日(米国時間)、JavaScriptやCanvasなどHTML5関連の技術を使って実装したPDFリーダ「pdf.js」が最初のマイルストーンに到達したことを発表した。pdf.js 0.2とバージョン付けされている。pdf.jsの開発が進められていることが明らかになったのが先月であることを考えると、急ピッチで開発が進んでいることがわかる。

pdf.js 0.2における主な新機能は次のとおり。

  • Type1フォントローディング機能
  • TrueTypeフォントローディング機能
  • TrueTypeフォントプロパティの適切な処理の実現
  • プレビューパネル機能の導入
  • Canvas機能を活用したレンダリングの拡充
  • 以前のバージョンよりも正確なレンダリングの実現

下が新しいバージョン。Type1フォントが読み込まれて本来表示されるべきフォントがレンダリングされていることがわかる - pdf.js reached its first milestone - Mozilla Blogより抜粋

適切なフォントが使われているため左右がそろった綺麗な表示になっている。図中のフォントも適切にレンダリングされている - pdf.js reached its first milestone - Mozilla Blogより抜粋

等幅フォントがレンダリングされるべき部分も同じくちゃんとレンダリングされている - pdf.js reached its first milestone - Mozilla Blogより抜粋

グラフの表現やグラフ中のフォントのレンダリングが向上している - pdf.js reached its first milestone - Mozilla Blogより抜粋

従来の実装では図中にまったくフォントがレンダリングされていないが、新しいバージョンではレンダリングされている。これはTrueTypeフォントがレンダリング可能になったため - pdf.js reached its first milestone - Mozilla Blogより抜粋

新しいバージョンにはプレビューパネルが追加されている - pdf.js reached its first milestone - Mozilla Blogより抜粋

今回、pdf.js 0.2がマイルストーンとして発表された理由は、Trace-based Just-in-Time Type Specialization for Dynamic Languages [PDF]という論文を正しくレンダリングできるようになったからだと説明がある。たしかに、レンダリング結果はネイティブなPDFリーダで閲覧した場合と同じになっていることを確認できる。

ただしこの"正しいトレンダリング"は限定的な環境に限られている。Windows 7においてFirefoxナイトリー版を使っており、かつ、Direct2DとDirectWriteが利用できるという条件が必要だからだ。この条件が揃っていないと、以前ほどではないにせよ、レンダリング結果にズレが現れる。

MozillaのPDFリーダ開発チームは次のリリースに「PDF 1.7仕様への準拠とパーフェクトレンダリングの実現」「レンダリングと計算処理の分割」の2つを掲げている。重い処理をWeb Workersバックエンドに分離することで、UIに関しては常に高いレスポンスを実現し、サクサクと動作するようにしようというわけだ。

また同チームでは、pdf.jsをほかのブラウザが取り込むことにも期待している。pdf.jsはブラウザごとに違った動きをするというのが現状だが、標準規約に準拠した技術のみを使って開発されており、ライセンスも3条項のBSDライセンスになっているなど取り込みやすい実装になっている。