Javaで帳票を作成するにはこれ以上のソフトは無いでしょ(他のソフト使った事ないけど)と思えるぐらに便利なJasperReportだけど、最近ようやく使いこなせるようになってきたので忘れないうちに。
JasperReportを使うJRubyコードは以前のエントリーにあるので、その後に判明した事を中心に。ver 2.0.4での話で。ver3.1.4も多分同じだとは思うけど未確認。
JaserReportsで日本語表示
お約束に従えば日本語を表示させるのは簡単。定型テキスト(static text)や文字フィールド(text field)に日本語を表示させる方法は以下の通り。
- フォント名(FontName)はMS明朝,MSゴシックに設定
- PDFフォント名(PDF Name)は,UniJIS-UCS2-H, UniJIS-UCS2-V, UniJIS-UCS2-HW-H, UniJIS-UCS2-HW-Vを指定する。UniJIS-UCS2-Hでほぼ問題ない。これらの違いは、iTextを利用してJavaからPDF形式の帳票を出力する:CodeZineが詳しい
- iTextAsian.jarをSourceForge.net: iText, a JAVA-PDF library: Filesからダウンロードし、ClassPathが通っているフォルダにコピー
印刷時の日付
- 文字フィールド(text field)を設置
- フォント設定は上記の通り 以下の通りに設定する
現在のページ番号
- 文字フィールド(text field)を設置 プロパティを以下の通りに設定
全体のページ番号
- 文字フィールド(text field)を設置 プロパティを以下の通りに設定
日本語をボールド、イタリックで表示する
isBold, isItalicをtrueにするだけでは、太字、イタリックにならない。
太字にする場合は、PdfFontNameを「HeiseiMin-W3,Bold」とフォント名に「,Bold」を追加し、isBoldをTrueにするとに太字になる。イタリックも同様に「HeiseiMin-W3,Italic」と「,Italic」を追加し、isItalicをTrueにするとイタリックになる。
英語版のままで使用する事を推奨
唯一残念な点といえば、日本語訳がヒドい。機能を理解してない人か、PC関連の翻訳に不慣れな人が翻訳したんじゃないかと思ってしまう。日本語訳で使用していたら意味不明な設定項目が、英語で表示したら一回で理解できた。
例えばTransparentが「透明」だったり(通常は、透過と翻訳される)、Print in whole bandは、「最初の完全なバンドに表示」と意味不明だったり。こちらは機能から見ても「帯状で表示」にすべきではないかと。あと、textがテキストや文字など使用法が統一されておらず混乱を招く恐れも。
これ、どうにかならないものか…。