Excel帳票の出力時にFontFamilyが'MS Pゴシック'と導出されてJRFontNotFoundException

3,395 views
Skip to first unread message

fk.yos...@gmail.com

unread,
Apr 8, 2015, 8:47:02 AM4/8/15
to japan-jasperse...@googlegroups.com
吉崎と申します。
お世話になります。

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でも大丈夫と踏んでいましたが、何らかの環境依存があるらしく、上記のようなエラーが起きて異常終了します。

バッチの実行時に、「GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()」
を使ってフォント名をログ/標準出力に吐くというデバッグコードを一時的に埋め込んで実行し、
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です。

以上です。


Hitoshi Ozawa

unread,
Apr 8, 2015, 5:28:00 PM4/8/15
to japan-jasperse...@googlegroups.com
小沢です。

MS PゴシックなしでもLinuxで問題なく日本語を表示することは可能です。
JRXMLファイルにMS Pゴシックがないのか確認してください。

CentOSも使っていますが、Excelシートを取得できます。ただし、修正した5.6.1使っています。5.5.xはフォントのバグがあったと思います。

小沢

2015年4月8日 21:47 <fk.yos...@gmail.com>:

--
このメールは Google グループのグループ「Japan JasperServer User Group」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには japan-jasperserver-u...@googlegroups.com にメールを送信してください。
このグループに投稿するには japan-jasperse...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/japan-jasperserver-user-group からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

Message has been deleted

fk.yos...@gmail.com

unread,
Apr 9, 2015, 2:33:46 AM4/9/15
to japan-jasperse...@googlegroups.com
小沢様

ご回答ありがとうございます。
外出しpropertiesファイル内のjasperフォームのパスが古いもの(MS Pゴシック)を指していたためでした。
システムテストのLinuxには、IPA Pゴシックフォントならば存在するようなので、jrxmlのfontNameを「IPA Pゴシック」に一斉変更して
jasperをコンパイルした所、エラーが発生せずに、Excelファイルが出力されるようになりました。

お騒がせしました。

以上です。

2015年4月9日木曜日 6時28分00秒 UTC+9 hozawa:

2015年4月8日 21:47 <fk.yos...@gmail.com>:
このグループから退会し、グループからのメールの配信を停止するには japan-jasperserver-user-group+unsub...@googlegroups.com にメールを送信してください。

Hitoshi Ozawa

unread,
Apr 13, 2015, 5:01:14 PM4/13/15
to japan-jasperse...@googlegroups.com
小沢です。

以前にJaspersoftにIPAフォントを同梱することをお願いしましたが、ライセンス絡みで拒否されました。問題になったのは「本契約は、日本法に基づき解釈されます」だと思います。やはり米国の会社としては、よく分からない日本の法律のものは避けたいっと言う判断だったのだと思います。

小沢

2015年4月9日 15:31 <fk.yos...@gmail.com>:
小沢様

ご回答ありがとうございます。
バッチで実行時にしている外出しのpropertiesファイル内のjasperフォームのパスが古いもの(MS Pゴシック)を指していたためでした。
システムテストのLinuxには、IPA Pゴシックフォントならば存在するようなので、jrxmlのfontNameを「IPA Pゴシック」に一斉変更して
jasperをコンパイルした所、エラーが発生せずに、Excelファイルが出力されるようになりました。

お騒がせしました。

以上です。

2015年4月9日木曜日 6時28分00秒 UTC+9 hozawa:
小沢です。

2015年4月8日 21:47 <fk.yos...@gmail.com>:
このグループから退会し、グループからのメールの配信を停止するには japan-jasperserver-user-group+unsub...@googlegroups.com にメールを送信してください。
このグループに投稿するには japan-jasperse...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/japan-jasperserver-user-group からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

荒川雄介

unread,
Apr 27, 2015, 3:36:46 AM4/27/15
to japan-jasperse...@googlegroups.com
GoogleとAdobeが共同で発表したSource Han Sans/Google Note Fontsとかであれば、
CJKすべて対応できて、
Apache Licenseで、
いいと思うのですが、
やっぱりTrueTypeフォントが無いので難しいでしょうか。

Source Han SansフォントをTrueType化したものを
Apache Licenseで公開されている方がいるようですが、
こいつをバンドルしてしまうってのはダメなんでしょうか?


2015年4月14日火曜日 6時01分14秒 UTC+9 hozawa:
Reply all
Reply to author
Forward
0 new messages