機能のすきまを埋めるGNU PDF

 多くの平均的ユーザから見れば、GNU/LinuxにおけるPDFファイルのサポートはかなり進んだように思えるだろう。PDFファイルの作成、表示、編集にはそれぞれOpenOffice.org、Kpdf、pdftkまたはPDFeditのようなプログラムを利用することができる。だがそれで終わりではない、と語るのは最近誕生したGNU PDFプロジェクトの創設者Jose Marchesi氏だ。「残念ながら、既存のフリープログラムには多くの機能が欠けている」。フリーソフトウェア財団(FSF:Free Software Foundation)がGNU PDFを最優先プロジェクトの1つとし、その進捗を速めるための寄付を積極的に求めている最大の理由はそこにある。

 Marchesi氏はずっと前からGNUプロジェクトを支援してきた。GNUプロジェクトは、FSFとつながりを持つフリーソフトウェアプロジェクト群の統轄組織にあたる。彼は1999年にGNU Spainを創設し、その後GNU ItalyとGNU Mexicoの創設にも携わる。また、GNU Ghostscript、GNU gv、GNU Ferretの各プロジェクトでも貢献している。最初の2つには、PDFとの関わりが深いPostScript形式とPDFの双方をサポートする機能が備わっている。さらにMarchesi氏はGNUプロジェクトにおいて、内部コードの作成やWebページの編集など、自らが“突発的な仕事”と呼ぶ活動も必要に応じて行っている。

 もっと優れたフリーのPDFサポートの必要性に最初に気付いたのはgvのメンテナとして活動していた数年前のことだった、とMarchesi氏は言う。2005年12月、Marchesi氏はgvで利用しているGhostscriptというPDFインタープリタの書き換えを試みるが、結局、技術的に実行不可能だとわかる。解決策はもっと基本的なレベルで問題に取り組むことだと判断した彼が、この問題についてFSFとGNUプロジェクトの各メンバーと話し合った結果生まれたのがGNU PDFだった。

新たなPDFプロジェクト創設の理由

 Marchesi氏によると、PDF機能の完全サポートは技術と政治の両面にわたる数多くの理由から急務だったという。

 技術面では、調査の開始によって(フリーソフトウェアでは)欠如しているか不完全な形でしか存在しないPDF機能が多数あることがわかった。「対話機能(フォーム、注釈)、埋め込まれたコンテンツ(音声および動画)の管理、JavaScriptによるフォーム検証の実行、3次元アートワーク、アクセシビリティ(使いやすさ)、Webキャプチャリング、ドキュメント集の管理といったものだ」(Marchesi氏)

 多くのユーザはこれらの不足に気付いていない。そうした機能を一度も使ったことがない、というのが理由の1つだが、Marchesi氏はもう1つの理由をこう説明する。「PDFの規格では後方互換性の確保に細心の注意が払われている。PDFのコンシューマ・アプリケーション(ビューアなど)は、未知の構成要素(3Dアートワークなど)に遭遇した場合、それを無視することができる(またその必要がある)。だがそれはつまり、本来表示されるべき情報の欠落につながるのだ」

 GNUプロジェクトでは、次期PDF規格であるISO 32000の完全な実装を目指している。企業や大学でのPDFの利用頻度は高まっているが、このISO規格を特に高いレベルでサポートしているのはすべてプロプライエタリ・ソフトウェアだ。これは、一致団結して事に当たらなければフリーソフトウェア・ユーザが取り残される可能性を示唆している。

 Marchesi氏は次のようにも述べている。「我々は、GPLv3の下でPDFソフトウェアを実装したいと考えている。だが、既存の代替ソフトウェアはほぼすべてがGPLv2の下でしかライセンスされていない」。GPLv3の採用に関する信頼感を明確に打ち出すだけでなく、GPLv3プログラムによってユーザの自由がより手厚く保護される点を納得させることが、重要な動機になっていることは間違いない。

プロジェクトの進め方

 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のライブラリと自分たちの成果を連携させるための議論を始めている。

目標の達成に向けて

 FSFはGNU PDFへの寄付を募るWebページを準備している。昨年のFree Ryzomキャンペーンで寄付の約束を取り付けるのに協力したことはあったが、活動中の最優先プロジェクトを対象としたものはこれが初めてだ。これについて、Marchesi氏は「何があってもこのプロジェクトを優先するつもりだ」と語気を強める。寄付が集まれば、新規のフリーソフトウェアプロジェクトにありがちなボランティアの開発者ではなく、フルタイムの開発者をプロジェクトで雇うことが可能になる。

 「GNU PDFライブラリとGNU Jugglerの開発はかなりの大仕事なので、本気で急ぐ必要がある。我々にとって大事なのは、PDF規格を機能的に完全かつ高い品質で実装したフリーソフトウェアをできるだけ早く手に入れることだ」

Bruce Byfieldは、Linux.comとIT Manager’s Journalに定期的に寄稿しているコンピュータジャーナリスト。

Linux.com 原文