GD::Graphでグラフ描いたらY軸の和文フォント回転しなくて困った
スポンサードリンク
Perlでグラフ作れっていうミッション。最終的には、ユーザがフォームから入力した数値をプロットするCGIということになりそうだね。
つうわけで、GD::Graph を使ってみることにしました。
実行環境は、うちの MacMiniのFedora Core 4ですー
あらかじめ、 rootになって、yum install perl-GDGraph を実行しておきます。
Filename: Graph.cgi
#!/usr/bin/perl use strict; use warnings; use CGI; use GD::Graph::lines; use utf8; my @x軸ラベル = qw( 0.15 0.3 0.6 1.2 2.5 5 10 ); my @上限 = qw( 10 35 65 90 98 ); my @下限 = qw( 3 10 25 50 80 90 100 ); my @データ = qw( 3.1 8.3 17.6 35.3 63.8 97.5 100 ); my @data = ( \@x軸ラベル, \@データ, \@下限, \@上限, ); my $graph = GD::Graph::lines->new( 400, 200 ); GD::Text->font_path('/usr/share/fonts/japanese/TrueType'); $graph->set_title_font ('kochi-gothic-subst', 9); $graph->set_x_label_font('kochi-gothic-subst', 9); $graph->set_y_label_font('kochi-gothic-subst', 9); $graph->set( title => "粒度曲線", x_label => "ふるい目の寸法 (mm)", y_label => "ふるい通過百分率 (%)", y_max_value => 100, y_tick_number => 10, long_ticks => 1, ); my $image = $graph->plot( \@data ) or die; my $q = CGI->new(); print $q->header(-type => 'image/png', ); print $image->png(); exit; __END__
プログラム内に平気に日本語の変数名使っている件については気にすんなよー
実行結果:
<img src="http://example.com/cgi-bin/graph.cgi" /> という記述で、
みたいになるけれども、Y軸の和文フォント回転しとらん。ありえん。
GDよくわからんし、このままImageMagickにぶっ込んで上から回転した文字列を上書きすることになるのかなー
ちなみに、こういうWebでの自動生成用途でモリサワフォントを使えるライセンスってないんですわ。必ずユーザを特定できる条件でないといかんらしく。オープン利用でお試し版やるっていうサービスがグレーになっちゃう。印刷屋さんが高解像度用フォントを持っていればWeb用ライセンスがユーザ無制限ライセンスになって、高解像度用フォントなんて(バカらしくて)買うことができないIT屋さんとの差別化が図れるぐらいのインセンティブがあってもなーと思うけど無理ぽげですよねー
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2364
フォントをmsgothic.ttcにすると回転します
meiryo.ttcの間違いでした