- PR -

JFeeChart 画像中の日本語文字化け

1
投稿者投稿内容
けん
会議室デビュー日: 2004/11/01
投稿数: 2
投稿日時: 2004-11-01 13:30
どなたかご教授下さい。

@ITで紹介されてる JFeeChart を以下のページから知りサンプルプログラムを動かしてみました。
●JFeeChart 紹介ページ
http://www.atmarkit.co.jp/fjava/javatips/092jspservlet036.html

ChartServlet.java はコンパイルも通りグラフ(画像)を表示させることができたのですが画像の中の日本語が文字化けしてしまいます。

■動作環境
Fedora Core2
httpd 2.0.49
tomcat 5.0.28
j2sdk 1.4.2

java のソースは EUC-JP で書いています。
tomcat の web.xml サンプルとして書かれてある通りに書いています。

画像の日本語は以下のように見えます。
RSS□□□□ = 22,500
□□□□□ = 83,100
Q□A□□□ = 55,500

アルファベットのところは表示されるのですが日本語が□(白四角)になっています。

ご教授ください。
よろしくお願いします。
yuu
大ベテラン
会議室デビュー日: 2002/06/12
投稿数: 152
お住まい・勤務地: 美味しいケーキ店のそば
投稿日時: 2004-11-01 13:47
けんさんこんにちは。 昔 仕事で JFreeChart で日本語を出すのに苦労しました

そのときに書いたメモをコピペしておきます、環境が違うので (RedHat7.3) 参考程度に見て下さい。
X window の知識がないとかなり大変かもしれません、とりあえず学習目的なら Windows で動かしてみる事をお勧めします。

引用:

Linux で JFreeChart を使い日本語を表示する方法 03/08/20

1. JFreeChartは AWT の機能を使いグラフを描くので、Linux のサーバーサイドアプリで使う場合は
注意が必要である。

2. Linix で使うには
1) X サーバーを立ち上げる
2) JDK1.4 で追加された ヘッドレスサポート機能を使う
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/awt/AWTChanges.html#headless
3) PJA (Pure Java AWT) Toolkit
4) xfb(フレームバッファーXサーバ) を使う

サーバーアプリの場合、Xは起動したくないので、 2) がベストな選択になる


3. ヘッドレスサポート機能を使うには

Java 起動オプション -Djava.awt.headless=true を指定すれば良い

4. しかし、日本語を表示しようとすると、正しくフォントを設定しないと表示されない


5. Java (Java 2D) の フォント定義は /usr/java/j2sdk1.4.1_03/jre/lib/font.properties.ja
ファイルで 英語フォントは JRE 内にあるが 日本語のフォントは含まれていない。
また、JDK1.4.1 の font.properties.ja では 日本語(jisx0208.1983-0) 用に
watanabe-mincho, wadalab-gothic というフリーのフォントを使う記述があるので、このフォント
を用意すれば良い。
したがって、 font.properties.ja は変更しないで使用。

6. Redhat 7.3 で X関係をインストールすると /usr/share/fonts/ja/TrueType に
kochi-gothic, kochi-mincho, watanabe-mincho, wadalab-gothic などのフリーフォントが
インストルされるので、X のフォント定義ファイル fonts.dir (fonts.alias, fonts.scale) を
定義すればよい。
(デフォルトで kochi-gothic, kochi-mincho を使う fonts.dir がインストルされているが、
なぜか font.properties.ja を変更しても kochi-gothic, kochi-mincho では日本語を表示
出来なかった。)

watanabe-mincho, wadalab-gothic を使う 定義ファイルは fonts.scale.xtt というのが
インストルされているので

# cd /usr/share/fonts/ja/TrueType
# mv fonts.dir fonts.dir.org
# mv fonts.alias fonts.alias.org <-- fonts.aliasのフォント定義と重ならない用 削除
# mv fonts.scale fonts.scale.org
# cp fonts.scale.xtt fonts.dir
# cp fonts.scale.xtt fonts.scale

X font server を起動しない。(fonts.dir fonts.scaleが書き換えられるので)

# /sbin/chkconfig --del xfs

7. Tomcat の起動時に java のオプションとして ヘッドレスサポート、フォントのパスを
指定する。

$ cd /home/jakarta-tomcat-4.1.24/bin
$ cat > setenv.sh <-- 起動オプション設定用shell script
#!/bin/sh
export JAVA_OPTS
JAVA_OPTS="-Djava.awt.headless=true -Djava.awt.fonts=/usr/share/fonts/ja/TrueType:/usr/java/j2sdk1.4.1_03/jre/lib/fonts"
^D
$ chmod 755 setenv.sh

8. Tomcat restart.

以上


---- fonts.dir ---
8
watanabe-mincho.ttf -watanabe-mincho-medium-r-normal--0-0-0-0-c-0-iso8859-1
watanabe-mincho.ttf -watanabe-mincho-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0
watanabe-mincho.ttf -watanabe-mincho-medium-r-normal--0-0-0-0-p-0-iso8859-1
watanabe-mincho.ttf -watanabe-mincho-medium-r-normal--0-0-0-0-p-0-jisx0208.1983-0
wadalab-gothic.ttf -wadalab-gothic-medium-r-normal--0-0-0-0-c-0-iso8859-1
wadalab-gothic.ttf -wadalab-gothic-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0
wadalab-gothic.ttf -wadalab-gothic-medium-r-normal--0-0-0-0-p-0-iso8859-1
wadalab-gothic.ttf -wadalab-gothic-medium-r-normal--0-0-0-0-p-0-jisx0208.1983-0


参考 http://java-house.jp/ml/archive/j-h-b/032304.html#body


けん
会議室デビュー日: 2004/11/01
投稿数: 2
投稿日時: 2004-11-01 15:44
yuu 様

ご返答ありがとうございます。

> 3. ヘッドレスサポート機能を使うには
ここまでは調べてできたのですがその先まだ設定が必要なんですか。
学習目的ではないのでサーバ上で動かしたいのですが大変みたいですね。

単純にグラフ表示するライブラリは何があるかと調べてると JFreeChart が目にとまったので検証してみようと思ったのですが、なかなか簡単には‥。

java にこだわってもないので何とか動かせるようにしたいですが複雑なら他の言語に逃げようかと(w

まだ動かせるかわかりませんが大変助かりました。
もうちょっと java で頑張ってみます。
貴重な情報ありがとうございました。
yuu
大ベテラン
会議室デビュー日: 2002/06/12
投稿数: 152
お住まい・勤務地: 美味しいケーキ店のそば
投稿日時: 2004-11-01 20:55
けんさん、こんばんは。

> 学習目的ではないのでサーバ上で動かしたいのですが大変みたいですね。
そうなんです! 私はWindows で開発していて、実機(Linux)での最終テストまでこの事に気が付かず、納期を少し延ばしてもらいました
私は昔 X windows を使っていたので Net上いろいろな情報を調べ2日くらで なんとか解決できました。

けんさんも、がんばって下さいね
1

スキルアップ/キャリアアップ(JOB@IT)