プロジェクトの進め方
Marchesi氏は、足りない機能を既存のフリーPDFライブラリに追加することも検討した。だが、GNU PDFプロジェクトの技術的な目標を考えると、このやり方が現実的でないことはすぐにわかった。
Marchesi氏は、この分野をリードするプロプライエタリなPDFソフトウェアを引き合いに出して次のように語る。「我々のねらいはAdobe[Acrobat]と同レベルのPDFサポート機能を提供することだ。「そのためには、それをベースにしてAcrobatのようなプログラムを構築できるだけの機能を備えた、汎用の完成されたライブラリが必要だ。しかも、統合された1つのライブラリで、PDFファイルの読み取りと操作が行えなければならない。だが、フリーで使える既存の実装にはそうした(統合された)ライブラリが存在しない。Ghostscript、Xpdf、Popplerなど、PDFページのラスタ処理用に作られたものと、PoDoFoなど、PDFの操作を対象とした機能を提供するものが別々に存在する」。それぞれ特有の目的には適合しているが、GNU PDFで想定しているような統合的なサポートには向かない」
GNU PDFにおける第一の目標は「PDFを利用するアプリと生成するアプリの双方で使える」ライブラリをC言語で書くことだ、とMarchesi氏は述べている。「このライブラリは複数の抽象レイヤへのアクセスが可能なAdobe PDF Libraryに似たものになるだろう。そうすれば、ビューアだけでなく、何種類ものアプリケーションで使えるようになる」
次のステップは、すでにGNU Jugglerと名付けられた「Acrobatライクなアプリケーションをこのライブラリ上に」構築することである。GNU Jugglerは、Marchesi氏によれば「特殊なPDFビューア/エディタ」だという。このアプリケーションの開発支援のために、すでにGNU PDFプロジェクトのメンバーがリバースエンジニアリング目的で、Adobeの最上級PDF製品であるAcrobat Professional最新版の機能分析を進めている。
GNU PDFでは不要な作業の1つに、グラフィックライブラリの開発がある。これは、libcairoが利用できるとの結論がプロジェクトメンバーの間で出ているためだ。CairoプロジェクトのメンバーもGNU PDFのことは承知していて、すでに何人かはGNU PDFのライブラリと自分たちの成果を連携させるための議論を始めている。
