Javaでの帳票出力

Java環境で、オープンソースのツールを使ってPDFやExcel形式の帳票を出力する方法を調査しています。数年前に帳票関連の開発した際には以下を使いました。

JasperReportはXMLで作成したテンプレートをもとにPDFを生成します。iReportはJasperReport用テンプレートを生成するためのGUIによるデザイナです。iTextはJasperReportよりも低レベルでPDFを操作するツールです。しおりやリンクなども細かく制御できます。JasperReportも内部的にはiTextを使っています。

JasperReportは、一つのテンプレートからPDFだけでなくEXCELやCSV、HTMLも生成できます。ただ私が使用したときは、特にExcelで余白やレイアウトの微調整が必要で使いづらくオマケで出力する程度にしか使えなかった印象があります。これは数年前の話でかなりバージョンもあがっているようなので、現状は調査したいと思っています。

Excelで出力した帳票の品質を重視するのであれば、Seasarプロジェクトのfisshplateがよさそうです。fisshplateは、Excel形式のテンプレートに、動的にデータを埋め込んでExcelの帳票を生成してくれるツールです。試しにいくつかファイルを作ってみたのですが、Excelファイルでテンプレートを作れるためiReportに比べると効率的にテンプレートが作れそうでした。特にセルの書式やデザインがそのまま保持されるのがよいです。これならExcelに慣れていれば開発者以外でもテンプレートの編集ができそうです。

fisshplateで出力したExcelファイルのPDFへの変換は、JODConverterがよさそうです。JODConverterは、OpenOfficeを利用して異なるフォーマットのドキュメントを変換するツールで各種フォーマットに対応しています。オンラインデモで実際に試すことができます。