本稿では Java で PDF を作成/操作するライブラリについて調査した結果をご紹介します。 2014年06月現在、Googleで「Java PDF」などのキーワードで検索をすると古い記事ばかりがヒットするので、今どきのライブラリはどれなのかを調査しました。 まずは OSS のものを調査した後に製品プロダクトについても調査しました。
Apache PDFBox
最初に紹介するのは Apache PDFBox です。 比較的新しいライブラリで、Version 1.0.0 は2010年にリリースされ、現時点で最新の 1.8.6 は2014年06月にリリースされたばかりです。 プロジェクトが停止していないのは心強いですね。名前の通り、The Apache Software Foundation のもとで開発が行われており、ライセンスは Apache License, Version 2.0 です。
PDF の作成、PDF からテキストを抽出、暗号化/復号化, イメージのPDF変換、イメージの抽出 などの機能が実装されています。
iText
次は、歴史が長い iText です。 「Java PDF」などのキーワードでググると多くの記事が出てきます。 しかし近年は iText のライセンス形態に変化がありました。 iText 4 まで LGPL のライセンスを選択できましたが、iText 5 からは COMMERCIAL LICENSING (商用ライセンス) と THE AFFERO GENERAL PUBLIC LICENSE (AGPL) の2つのライセンス形態で提供されています。
iText 5 を個人や社内で利用するのであれば無償ですが、商用で利用するのであれば商用ライセンスを購入した方が良さそうで、サーバーライセンスであれば1サーバー当たり $2200 の料金がかかります。
シェアウェア製品
もう少し OSS のものが見つかるかと思っていたのですが、あまり活発なものを見つけることができませんでした。 今度はシェアウェアの製品を列挙したいと思います。
その他
その他にもいくつかのライブラリを調査しましたが、プロジェクトが停止してしまっている等の理由により深堀りしなかったライブラリも名前だけ挙げておきます。
おわりに
本稿では Java で利用できる今どきの PDF ライブラリについて調査結果をご紹介しました。 所感としては、実現したい機能に対して Apache PDFBox での実現可否を判断し、PDFBox では実現できない場合は他のプロダクトの選定を行うのが良いのかと思いました。