JavaでPDFを作るには?


現在、何かの文書などをファイルで受け渡す際、もっとも多く使われているのはどのようなフォーマットでしょうか。作成したものを再び編集して作業するのであれば、オフィスソフト(ExcelやWordといったもの)の標準的なフォーマットでファイルを受け渡すことが多いことでしょう。

が、ファイルを渡す目的が「中身の閲覧」だけならば、今はなんといっても「PDF」が基本でしょう。PDFは、「Portable Document Format」の略で、文字通り「持ち運び用ドキュメント」として、多くのところで活用されています。「見る」ためのフォーマットとしては、現在のデファクトスタンダードといってよいでしょう。

Javaのプログラムから各種のファイルを作成することはよくありますが、それでは「PDFファイルを作る」ということはできるのでしょうか。Javaには標準では、PDFファイルに書き出すための機能が用意されていません。まぁ、それでもできないことはないでしょう。PDFファイルの構造を解析し、バイナリデータとして書き出していくことは不可能ではありません。が、恐ろしく複雑で難しそうなことは容易に想像できますね。

では、JavaではPDFは作れないのか。いえいえ、決してそういうわけではありません。実をいえば、世の中にはPDF作成のためのライブラリというのがいくつか存在します。それらを使うことで、JavaでPDFを利用することもできるようになります。

ここでは、「iText」というライブラリを使ってみましょう。これは、オープンソースのライブラリです。現在、以下のサイトにて公開されています。

http://www.lowagie.com/iText/

iTextのWebサイト。左側の「Download iText」リンクからダウンロードページに移動する。

このページの左側に各種のページへのリンクがまとめられています。ここから「Download iText」というリンクをクリックすると、ダウンロードのページに移動します。

http://www.lowagie.com/iText/download.html

ダウンロードページ。ここの「Compiled code」からファイルをダウンロードする。

ダウンロードページにある「Current release」というところに、現在の最新版がまとめられています。ここには、iTextのソースコード、ビルドした完成品、ドキュメントのリンクがまとめてあります。すぐに使用するなら、完成したファイルをダウンロードしましょう。「Compiled code」という項目の右側にあるリンクをクリックしてダウンロードを行ってください。(2008年3月現在、「iText-2.0.8.jar」というファイルが最新版となります)

これでライブラリは手に入りました。が、実をいえばもう1つ、ダウンロードしておくものがあります。それは「日本語フォント」です。これは、以下のサイトにて配布されています。

http://itextpdf.sourceforge.net/

ここから「iTextAsian.jar」をダウンロードする。

このページの「Downloads」というところから「iTextAsian.jar」というリンクを探してください。これが、アジア関係の言語(日本語、韓国語、中国語)に関するiText用のフォントをまとめたライブラリファイルになります。

これで、「iText-2.0.8.jar」と「iTextAsian.jar」という2つのJARファイルがダウンロードできました。これらを、使用しているJDK/JREのCLASSPATHが通っている場所に配置すれば、すぐに使えるようになります。