IPA


開発成果一覧へ

 



2005年度下期 未踏ソフトウェア創造事業  採択案件評価書


 




1.担当PM

   千葉 滋 (東京工業大学大学院 情報理工学研究科 助教授)




2.採択者氏名

開発代表者

 菅野 健 (オリンパスシステムズ株式会社 ユーバス事業部 システム部)

共同開発者

 なし




3.プロジェクト管理組織


  日本エンジェルス・インベストメント株式会社




4.委託金支払額


  5,000,000




5.テーマ名


  オープンソースPDFライブラリの作成




6.関連Webサイト


  なし




7.テーマ概要


 本提案の目的は、「さまざまなOS上でさまざまな開発言語から利用可能な、オープンソースのPDF出力ライブラリ」を作成することです。
 PDFはインターネット上における標準的な文書フォーマットの一つであり、PDFファイルを出力する機能を持つライブラリは多数存在しています。しかし、これらのライブラリは「商用製品であり、使用するにあたってさまざまな制限があるもの」「JavaPHP等、特定の言語に特化したもの」「オープンソースだが、機能的に足りないもの」に大別され、「十分な機能を持ち、複数のOS上で動作し、さまざまな開発環境からライセンスの制約無しで利用できるもの」は今のところ存在していません。
 PDFは1200ページにも及ぶ仕様書で定義された文書形式であり、PDFファイルを出力するプログラムを一から作成することは容易ではありません。本提案で作成するライブラリは、PDFの複雑な内部構造を隠蔽化することで、PDFファイルを出力するアプリケーションを容易に構築できる機能を提供するとともに、自由に利用し、再頒布や改変もおこなえるライセンス形態を採用することで、さまざまなアプリケーションで広く利用されることを目指しています。




8.採択理由


 本提案は、既に開発済みの C++ 版の pdf ライブラリを機能強化の上で C 言語に移植するというものであり、創造性という観点からはそれほど優れたものではない。しかしながら、オープンソースの pdf ライブラリは実用面での要求も強く、これを開発することは重要であり、また提案者がおこなってきた、これまでの地道な品質改善の努力の高さには未踏性が認められる。よって採択にあたいすると判 断した。

 

 




9.開発目標


PDF
はインターネット上の文書交換等に用いる標準的なファイルフォーマットのひとつとして広く用いられている。本プロジェクトでは、主にWebアプリケーションからの利用に適したPDF文書作成用のライブラリを開発することが目標である。C言語で開発することで、さまざまな言語処理系から利用可能なライブラリとする。またソフトウェアの完成度を高め、商用のwebアプリケーションの開発に利用できる品質のライブラリとすることをめざす。具体的な目標は次のようになる。

 

l        基本的なPDF作成機能の開発

PDFを構成する主要オブジェクト、描画関数を実装する。

 

l        テキスト出力エンジンの開発

さまざまな国の言語に対応した、フォント・文字コードが利用可能なテキスト出力エンジンを開発する。

 

l        拡張機能の開発

イメージ出力、ファイル圧縮、暗号化等の拡張機能を開発する。

 

l        他の開発言語のためのインタフェース機能

静的リンク、動的リンクに対応した、各種開発言語のためのAPIを作成する。開発するPDFライブラリはC言語で作られているため、そのままでは他の言語のプログラムから利用できない。そこで他の言語のプログラムと本ライブラリとを接続する機能を開発する。

 

l        ドキュメント・サンプルプログラムの開発

広く普及を促すために、充実したドキュメント、サンプルプログラムを作成する。

 

l        ソフトウェアの公開

作成したソフトウェアを、Sourceforge.netでオープンソースソフトウェアとして公開する。

 




10.進捗概要


開発者によって元々開発済みであったC++言語版のPDFライブラリを元に、今回のC言語版のライブラリを開発したとはいうものの、オブジェクトの設計からやり直しているので、最終的にライブラリ本体が完成したのは5月末であった。残りの数ヶ月は日本語・英語によるドキュメントの整備と、Ruby 言語や Delphi 言語から本ライブラリを利用するための機能の実装に費やされた。完成したライブラリは、libharu 2 (Haru Free PDF Library version 2) として7月末に一般に公開された。

 




11.成果


C
言語で書かれた移植性の高い PDF 文書作成ライブラリ libharu 2 (Haru Free PDF Library version 2) を開発、公開した。開発成果は以下で公開されている。

 

http://libharu.sourceforge.net

 

公開されたライブラリはその完成度の高さから、旧版のライブラリの3倍以上の月間1000件以上ダウンロードされている。

 


 

開発したライブラリの特徴は商用製品にも劣らない完成度の高さであり、機能の多さだけでなく、高負荷が予想されるサーバ用途でも十分に実用に耐えうるように設計されている。例えばエラー発生時にも確実に資源の解放がおこなえるような機構が組み込まれている。

 

また動作速度も高速であり、旧版のライブラリに比べても4から15倍の高速化を達成した。Java言語で書かれた類似ライブラリであるiTextと比較すると10倍以上高速にPDF文書を出力できる。Ruby言語用のライブラリpdf-writerと比較すると10から100倍の高速化を達成している。

 

さらに本ライブラリは、C/C++言語以外の言語から本ライブラリを利用しやすくなるように、共有ライブラリとしても利用できるように実装されている。とくにサンプル実装として、Ruby言語用のインタフェースとDelphi/FreePascal用のインタフェースを本プロジェクトの中で作成した。

 

本ライブラリは ZLIB/PNGライセンスという制約の緩いライセンスで配布されており、商用・非商用にかかわらず自由に利用できる。




12.プロジェクト評価


PDF
文書作成ライブラリの開発という地味なプロジェクトではあったが、商用のものに劣らない品質でオープンソースであるライブラリを作るという目標は達成されたものといえる。その品質は、測定された実行速度からもうかがい知ることができる。またRuby言語から使うためのインタフェースも提供されており、PDF文書を作成するRubyプログラムから使われる標準的なライブラリのひとつに成長することを期待したい。

 

本プロジェクトの当初の計画は高品質なPDFライブラリを作る、ということだけであったが、最終的には各種言語用のインタフェースの他、デモンストレーションとして、Excelでデザインした書式にしたがってPDF文書を出力するプログラムなども開発された。開発したライブラリの普及のための方策に労力を惜しまない、このような本プロジェクト開発者の姿勢は高く評価できる。




13.今後の課題


せっかくの高品質なPDFライブラリであるので、.NETJava言語用のインタフェースも開発して、ユーザ層の拡大に努めてほしい。また日本語のドキュメントがまだ不十分であるようなので、この完成度を高めることも必要であろう。プロジェクトをここで終わりにせず、libharuライブラリの普及に向けて活動を継続してほしいと思う。

 



  ページトップへ   

 

 




  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004