吉崎と申します。
お世話になります。
Excel帳票の出力時に、Caused by: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'MS Pゴシック' is not available to the JVM. See the Javadoc for more details.
という例外が発生し、異常終了してしまうため、困っております。
結合環境用のLinuxで出力した時はWindows単体テストとほぼ同じ状態のExcelファイルが出力されたので、
システムテストのLinuxでも大丈夫と踏んでいましたが、何らかの環境依存があるらしく、上記のようなエラーが起きて異常終了します。
を使ってフォント名をログ/標準出力に吐くというデバッグコードを一時的に埋め込んで実行し、
OSに設定されているフォント名のリストを出してみましたが、どちらのLinuxにも「MS Pゴシック」はありませんでした。
ネットを検索して、次のソースコードを読みましたが、
結合環境用のLinuxでこのエラーが発生せず、システムテストのLinuxでこのエラーが発生するという事は、
結合テスト用LinuxではTextのFontFamilyが適切なものとしてランタイムが判定しているのに、
システムテストのLinux実行時では、ランタイムがなぜかTextのフォントファミリーが「MS Pゴシック」だと導出してしまっているのだと
推測している次第です。
jrxmlでは、Textには一律「<font fontName="MS UI Gothic" pdfFontName="HeiseiKakuGo-W5" pdfEncoding="UniJIS-UCS2-H" isPdfEmbedded="true"/>」という設定を行っているため、
ランタイムが、フォントファミリーを「MS Pゴシック」となぜ導出してしまうのかが、不思議でなりません。
Jasper実行時のフォントファミリー導出の情報をなにかご存知の方がいれば、ご教示をお願いします。
Linuxなので、「MS Pゴシック」というフォントをインストールするのはかなり厳しいため、
jasperフォームファイルのTextのフォントファミリーが「MS Pゴシック」でないとJasperのエンジンが導出しないように
調整したく存じます。
実行環境等の情報ですが、
ライブラリのバージョンは、jasperreports、jasperreports-functions、jasperreports-fontsいずれも5.5.2
Jaspersoft Studioは、5.5.2.final
Javaのバージョンは、Java SE 1.7.0_060
LinuxはRedHatで、2.6系カーネルです。
フレームワークはSpringFramework 3.1.0 Spring Batch 2.1.8です。
以上です。