Pdf.jsは最初のピクセルテストに合格します

6月、MozillaのAndreas Galと同僚は、HTML5 / JavaScriptを使用してPDFを表示するためのpdf.jsエンジンを導入しました 。 初期バージョンでは不完全に機能していましたが、開発者は問題を真剣に取り上げ、グラフィック、GUIなどのレンダリング機能を文字通り毎日追加しました。しかし、最も重要なことは、TrueTypeフォントの動的読み込みが実装され、PostScript Type 1フォントの読み込みが根本的に改善されていることです



その結果、Andreas Galは最初のテストに合格し、pdf.jsピクセルごとに* テストドキュメントを表示することを決定しました( demo )。



pdf.jsにバージョン番号0.2が割り当てられ、PDF 1.7の公式仕様をレンダリングするための新しいタスクが設定されました(ドキュメントには1310ページ、ファイル31 MBが含まれています)。



*実際、「完璧な」レンダリングは、Windows 7でのFirefox Nightlyビルド(Direct2DおよびDirectWrite経由のレンダリングフォント)でのみ達成されますが、それ以外は、ブラウザーとOSに応じて、理想に近いか非常に近くなります。



スクリーンショットの各ペアは、以前のバージョンのpdf.js(上記)とpdf.js v0.2の比較を示しています。







アンドレアス・ギャルは、上記のスクリーンショットの違いはもっと目立つはずだったと言いますが、ドキュメントのメインフォントにPostScript Type 1の通常のロードを行うまでpdf.jsのオリジナルバージョンをロールアウトすることを敢えてしなかったので、後で他の問題に集中できます。 タイプ1の動的ローディングは、非常に難しいタスクであることが判明しました。 この機能がpdf.jsにとってどれほど重要かを過大評価することは困難です。







スクリーンショットの2番目のペアは、pdf.jsのいくつかの改善点を示しています。 最も明らかなのは、v0.2がTrueTypeフォントを正しくロードするという事実のために、図のオブジェクトの碑文が現れたということです。 要素の背後にある影が認識され、背景画像として表示されます。 点線は、 キャンバス要素を処理するためにFirefoxブラウザーに追加された新しいAPIを使用してレンダリングされ、現在標準化中です。







等幅フォントのスクリーンショットは、Type 1フォントの最も正確な測定と読み込みを行うことがいかに重要であったかの別の証拠です。







ダイアグラムのカラーグラフは、個々のJS関数によってレンダリングされ、ピクセル値をキャンバスに渡します 。 これらの特定の列は、線形勾配関数によって計算されます。 チャートのキャプションのテキストも見やすくなりました-すでに述べたように、pdf.jsはさまざまなフォントを認識して読み込むことを学びました。







上記の比較は、いくつかの新しいv0.2機能を示しています。 図の署名は、TrueTypeフォントのロードと、対応するパターンの関数の実装による列の破線塗りつぶしによって表示されました。







さて、最後の比較では、クールなプレビュー機能など、GUIの改善が示されています-カーソルを合わせるとパネルがポップアップします。 さらに、下のスクリーンショットでは、2番目のページの一部を見ることができますが、以前のpdf.jsは一度に1ページしか表示できませんでした。



Andreas Galは、プロジェクトに参加し、Mozillaチームを支援してくれたすべての独立した開発者に感謝します。 たとえば、プレビュー機能を備えた新しいUIにjustindarcが実装されました 。 暗号化されたPDF、埋め込まれたJPEG、Web Workersバックエンドなどをサポートするものもあり、これらはpdf.jsの次のバージョンの機能に含まれます。 特に、1310ページの仕様をレンダリングする場合、Webワーカーは、プロセスと、メインスレッドでのクライアントの計算を一時停止する機能(UIの応答性)を並列化する必要があります。



開発者は、2〜3か月以内にpdf.jsをWeb上でほとんどのPDFドキュメントを適切に表示できるレベルに引き上げることができると考えています。 将来、pdf.jsがFirefoxブラウザーのネイティブ部分になると予想されます(拡張機能が最初にリリースされます)。



また、プロジェクトの作者は、他のブラウザーがそれに続き、pdf.jsサポートを実装することを望んでいます。そのコードは無料ライセンス(BSDによって変更)で公開されています。 将来的には、HTML5をサポートするどのブラウザーでも同等に機能するようになるでしょう。



現在、これはそうではありません:ほとんどすべてのブラウザー/ OSの組み合わせは、異なる結果を生成します。 これは、未承認の標準の分野で最先端の技術を使用しているすべてのプロジェクトの運命です。 アンドレアス・ガルによると、pdf.jsは現在、現実の問題のかなりの部分がブラウザの バグエンジンの レンダリング 、または機能の欠落である段階にありますが、これらの穴は徐々に埋められています。



All Articles