Apache-XML FOP

仕事で帳票を作るライブラリは何がいいんだろう?という話になりまして、Apache-XML FOPを調べました。XSLTとかって読み難いんで意識せずに敬遠していたんですが、やってみたら結構便利だなーと思いました。


帳票の内容をXMLでてきとーに書いておいて*1 、それをXSL FOに変換するXSLを作って、FOPにPDFを生成してもらう、っていう流れです。


多分普通にやると面倒なのは、エンティティのオブジェクトからコンテンツのXMLを作成する部分かもしれませんが、リフレクションとDOMを使ってツリー構造をガンガンガンとXMLに変換するクラスを使ったら、あらあらまあまあこりゃ簡単。


ただ気になるのは日本語。コマンドラインからFOPを使えば全然問題なくできたんですが、なぜかJavaのプログラムから同じことをやろうとすると、日本語フォントを使う設定が使われないことがある(使われることもある)。なんだそりゃ。Optionクラスのインスタンス生成したらstaticな設定が変わるっちゅうのは、ちょっとひどい設計じゃありませんこと?


今回の調べものでは id:muimy さんのApache FOP にさわるに大変お世話になりました。ありがとうございます。

*1:エンティティのプロパティをタグの属性として書かないように気をつける必要はあるかも