ガントチャートで日本語を使用する

TUTOS への最大の期待はやっぱりガントチャートがでるということだろう。
ちゃんと設定すれば日本語も表示できたので、メモ。

1. フォントの入手

さざなみフォント
http://sourceforge.jp/projects/efont/files/
情報処理推進機構の日本語フォント
http://www.grass-japan.org/FOSS4G/readme-grass-i18n-ipafonts.eucjp.htm

下の方がプロポーショナルもそろっておりかつ、JpGraph のデフォルト設定値がそちらになっているのでお勧めか。
フェイスまで見比べてないので、「どっちがかっこいいか」という話ではないので、あしあからず。

ipa のを入手した場合は

 tar xfzv grass5.0.3_i686-pc-linux-i18n-ipafull-gnu_bin.tar.gz "./fonts/"

と展開して、/usr/share/fonts/ja/TrueType/ ディレクトリを作ってそこに *.ttf を放り込んでおく。

2. JpGraph 設置、設定ファイル変更

JpGraph
http://www.aditus.nu/jpgraph/

落として展開。
気をつけないといけないのは、普通こういうのは include_path の下に入れるものと相場が決まっているのだが、TUTOS の場合は [tutos のインストールディレクトリ]/php/jpgraph/ に入れるのが作法らしい(なかなかライブラリを読んでくれず結構はまった)。

tar xfz jpgraph-1.20.4a.tar.gz
mv jpgraph-1.20.4/src /usr/share/tutos/php/jpgraph

jpgraph の設定ファイルを日本語が使えるように変更。


vi jpg-config.inc

DEFINE('LANGUAGE_CHARSET', $locale_char_set);

DEFINE('ASSUME_EUCJP_ENCODING',true);

DEFINE("MBTTF_DIR","/usr/share/fonts/ja/TrueType/");

さざなみを入れた場合は MINCHO_TTF_FONT などの設定値も変更する必要有り。


vi jpgraph.ph

        // File names for available fonts
        $this->font_files=array(
             :(中略)
            FF_GOTHIC  => array(FS_NORMAL=>GOTHIC_TTF_FONT,  FS_BOLD=>GOTHIC_TTF_FONT,  FS_ITALIC=>GOTHIC_TTF_FONT,  FS_BOLDITALIC=>GOTHIC_TTF_FONT ),
            FF_PGOTHIC => array(FS_NORMAL=>PGOTHIC_TTF_FONT, FS_BOLD=>PGOTHIC_TTF_FONT, FS_ITALIC=>PGOTHIC_TTF_FONT, FS_BOLDITALIC=>PGOTHIC_TTF_FONT ),
);

ゴシックフォントの bold 体などが指定されていないとエラーになるので、とりあえず同じものを指定しておく。
bold 体や italic 体がちゃんとそろっているTrueTypeのセットを持っていれば、そちらを使うとかっこよくなるかも?


テンポラリディレクトリも必要らしいので、作っておく。

 mkdir /tmp/jpgraph_cache/
 chmod 777 /tmp/jpgraph_cache/

3. TUTOS の調整

フォントに ARIAL を使おうとするので、


vi graph_bars.php task.pinc

  if ($lang['content_encoding'] != "iso-8859-1") {
    #$font = FF_ARIAL;
    $font = FF_GOTHIC;

あるいは、下のようにする方がいいのか?(未検証)

  if ($lang['content_encoding'] == "EUC-JP") {
    $font = FF_GOTHIC;
  } else if ($lang['content_encoding'] != "iso-8859-1") {
    $font = FF_ARIAL;

これでプロジェクトを作って、タスクを定義したら、ガントチャートが表示される、はず。