Javaを使ってPDFファイルを生成するために重宝するライブラリiText。是非とも使いこなせるようになりたいライブラリの一つです。
さて、iTextは2009年のver.5リリースからライセンスが大幅に変更になりました。それについて少し調べてみました。
#ver.4系はLGPLとMPLのデュアルライセンス
ライセンスについて分かりやすく解説してくれている応用情報技術者試験ドットコムの解説を引用します。
##LGPL(Lesser General Public License)ライセンス
厳格なGPLから派生したライセンスで、他のプログラムにリンクされることを前提としたライブラリのために作成された。
「改変や再コンパイルの自由」や「二次著作物を再頒布する場合のソースコードの公開」などはGPLと同等だが、LGPLライセンスされたライブラリをリンクして使用するプログラムの頒布に対する制限は、
・動的リンク:本体プログラムのリバースエンジニアリングを禁止する条項を含めてはならない。
・静的リンク:本体プログラムのソースコード、またはオブジェクトコードを公開しなくてはならない。
というように動的リンクであれば本体プログラムのソースコードを公開する義務がないライセンスになっている。
##MPL(Mozilla Public License)ライセンス
ネットスケープコミュニケーションズとMozilla Organization(後のMozilla Foundation)によって作成されたコピーレフトのライセンスのひとつ。二次著作物にも自動的にMPLライセンスが適用されるため、プログラムを頒布する場合にはソースコードを公開する義務が生じるが、GPLと比較するとコピーレフト性は弱く、MPLライブラリに静的/動的リンクするプログラムはライセンス適用の対象外となる。
私の場合iTextを改変して配布することはないので、関係があるのは静的・動的にリンクする場合です。デュアルライセンスのうちMPLの方を採用すれば、 静的・動的にリンクした自分のプログラムはソースを公開する必要はない ということですので一安心です。
ver.4系はライセンス的に非常に使い勝手が良いので、私は今でもこちらを使っています。ver.4系の最後のリリースであるitext-4.2.1.jarは検索すればたくさん見つかります(例えばこちら)。
#ver.5系はAGPLライセンス
AGPL(Affero GPL) は、MPLとは正反対で相当厳しいライセンスなようです。このスライドを見れば、いかに厳しいかがよく分かります。なにせあの GPL(General Public License) よりも厳しいのですから。
ですので、クローズドなアプリ内でiTextを使用する(ソースコードの公開を回避する)ためにはiTextの商用ライセンスの購入が必要となります。