﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-菠萝三国-随笔分类-JFreeChart</title><link>http://www.blogjava.net/boluobn/category/28951.html</link><description>大江东去,浪淘尽...</description><language>zh-cn</language><lastBuildDate>Mon, 14 Jan 2008 15:20:24 GMT</lastBuildDate><pubDate>Mon, 14 Jan 2008 15:20:24 GMT</pubDate><ttl>60</ttl><item><title>修改jfreechart中的默认字体</title><link>http://www.blogjava.net/boluobn/archive/2008/01/14/175128.html</link><dc:creator>菠萝</dc:creator><author>菠萝</author><pubDate>Mon, 14 Jan 2008 04:20:00 GMT</pubDate><guid>http://www.blogjava.net/boluobn/archive/2008/01/14/175128.html</guid><wfw:comment>http://www.blogjava.net/boluobn/comments/175128.html</wfw:comment><comments>http://www.blogjava.net/boluobn/archive/2008/01/14/175128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/boluobn/comments/commentRss/175128.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/boluobn/services/trackbacks/175128.html</trackback:ping><description><![CDATA[<p><font color="#ff0000"><strong>生成图表后自动生成chart表的问题</strong></font>:</p>
<p>我测试生成图表中的中文问题都解决了,但是每次生成chart图时会报UTF编码错误,从错误判断应该是某个文件的编码错误,起初根据错误判断是filter的问题,可是filter那点代码中根本不涉及编码的问题.我将很多配置文件的编码都改了也不行.因为那个英文例子没问题,我查看了JFreechart的一个servlet(org.jfree.chart.servlet.DisplayChart),因为jpviot就是调用这个servlet实现绘图的,分析这个servlet我知道它会在一个临时目录生成png文件,然后交给servlet写到浏览器的响应中去,我找到那个临时目录(tomcattemp),发现里面已经生成了正确的中文图形.从而判断图形生成正确,但是写到浏览器中时出了问题.最后我查看能生成英文图表的那个例子,发觉不仅仅在html中生成图形,而且生成map.而这个map的生成全是在程序中做的,程序生成一个xml文件,通过chart.xsl解析生成map的最终html代码.但是在程序中生成时并没有加入编码设置,因此问题出在生成map这儿.</p>
<p>最终修改代码如下:</p>
<p>com.tonbeller.jpivot.chart.ChartComponent:</p>
<p>在render函数中修改如下:</p>
<p>String desc="&lt;?xml version="1.0" encoding="gb2312"?&gt;";<br />
String xchart =desc+"n"+ "&lt;xchart&gt;" + writeImageMap(filename, info, false) + "&lt;/xchart&gt;";<br />
这样就为xchart设置了编码.</p>
<p><font color="#ff0000"><strong>修改jfreechart中的默认字体:</strong></font></p>
<p>com.tonbeller.jpivot.chart.ChartComponent中定义了几种字体,但是这几种字体都是英文字体,我将其修改为宋体:<br />
把所有的字体定义都改为"SimSun"<br />
注意到这儿并没有玩,如果你仅仅修改程序,仍旧会出现问题,报错说没有适合"SimSun"的item<br />
同时要修改一个配置文件:WEB-INFjpivotchartchartpropertiesform.xml<br />
在这个配置文件中将SimSun加入其中,形式如下:</p>
<p>&lt;listBox1 type="string" modelReference="fontName" label="Title font"&gt;<br />
&lt;listItem value="SansSerif" label="SansSerif"/&gt;<br />
&lt;listItem value="Serif" label="Serif"/&gt;<br />
&lt;listItem value="SimSun" label="SimSun"/&gt;<br />
&lt;listItem value="Monospaced" label="Monospaced"/&gt;<br />
&lt;/listBox1&gt;</p>
<img src ="http://www.blogjava.net/boluobn/aggbug/175128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/boluobn/" target="_blank">菠萝</a> 2008-01-14 12:20 <a href="http://www.blogjava.net/boluobn/archive/2008/01/14/175128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jfreechart在aix unix上的中文显示问题</title><link>http://www.blogjava.net/boluobn/archive/2008/01/14/175127.html</link><dc:creator>菠萝</dc:creator><author>菠萝</author><pubDate>Mon, 14 Jan 2008 04:18:00 GMT</pubDate><guid>http://www.blogjava.net/boluobn/archive/2008/01/14/175127.html</guid><wfw:comment>http://www.blogjava.net/boluobn/comments/175127.html</wfw:comment><comments>http://www.blogjava.net/boluobn/archive/2008/01/14/175127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/boluobn/comments/commentRss/175127.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/boluobn/services/trackbacks/175127.html</trackback:ping><description><![CDATA[<div class="bvEntry" id="entrycns!72904AFB119254C0!121" bv:cns="cns!72904AFB119254C0!121" bv:ca="true" bv:cat="Java Design">
<div id="LastMDatecns!72904AFB119254C0!121">&nbsp;</div>
<div class="bvMsg" id="msgcns!72904AFB119254C0!121">
<p>&nbsp;
<p>今天开始搭建新的平台,要把原来windows的应用迁移到Aix上,结果由于jfreechart的中文字体显示耗了整个下午,好不郁闷,不过还好最后解决问题了:)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<strong>主机环境:</strong><br />
&nbsp;AIX Version 5.2 + Jboss4.03sp1 + J2RE 1.4.2 IBM AIX build ca142ifx-20050119<br />
&nbsp;使用jfreechart1.0rc
<p>添加启动参数 -Djava.awt.headless=true才能正常显示jfreechart的图.
<p><strong>让jre使用中文字体的过程如下:</strong>
<p><strong>1.解包字体文件<br />
</strong>TrueType_zhCN_GBK.tar,列表如下:<br />
fangsongti.ttf<br />
heiti.ttf<br />
kaiti.ttf<br />
songti.ttf<br />
注:字体包是我以前在solaris上整出来的.
<p><strong>2.copy字体到jre的字体目录${JAVA_HOME}/jre/lib/fonts</strong><strong></strong>
<p><br />
<strong>3.修改JRE的字体配置<br />
</strong>3.1 修改fonts.scale文件[${JAVA_HOME}/jre/lib/fonts/fonts.scale]<br />
把一行的数字加4<br />
在文件尾添加<br />
fangsongti.ttf -zhongyi-fangsong-medium-r-normal--0-0-0-0-m-0-gbk-0<br />
heiti.ttf -zhongyi-hei-medium-r-normal--0-0-0-0-m-0-gbk-0<br />
kaiti.ttf -zhongyi-kai-medium-r-normal--0-0-0-0-m-0-gbk-0<br />
songti.ttf -zhongyi-song-medium-r-normal--0-0-0-0-m-0-gbk-0<br />
3.2 修改fonts.dir文件[${JAVA_HOME}/jre/lib/fonts/fonts.dir]<br />
把一行的数字加4<br />
在文件尾添加<br />
fangsongti.ttf -zhongyi-fangsong-medium-r-normal--0-0-0-0-m-0-gbk-0<br />
heiti.ttf -zhongyi-hei-medium-r-normal--0-0-0-0-m-0-gbk-0<br />
kaiti.ttf -zhongyi-kai-medium-r-normal--0-0-0-0-m-0-gbk-0<br />
songti.ttf -zhongyi-song-medium-r-normal--0-0-0-0-m-0-gbk-0<br />
3.3 修改font.properties.zh文件[${JAVA_HOME}/jre/lib/font.properties.zh]<br />
把所有的serif.1的值 进行如下替换<br />
-zhongyi-song-medium-r-normal--0-0-0-0-m-0-gbk-0
<p><br />
<strong>4.重新启动就可以了.</strong>
<p><strong></strong>&nbsp;
<p>其他的unix上我试了一下hp-unix,可以通过,其他的没有试过,或许也可以吧:)</p>
</div>
</div>
<img src ="http://www.blogjava.net/boluobn/aggbug/175127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/boluobn/" target="_blank">菠萝</a> 2008-01-14 12:18 <a href="http://www.blogjava.net/boluobn/archive/2008/01/14/175127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改字体</title><link>http://www.blogjava.net/boluobn/archive/2008/01/14/175121.html</link><dc:creator>菠萝</dc:creator><author>菠萝</author><pubDate>Mon, 14 Jan 2008 04:10:00 GMT</pubDate><guid>http://www.blogjava.net/boluobn/archive/2008/01/14/175121.html</guid><wfw:comment>http://www.blogjava.net/boluobn/comments/175121.html</wfw:comment><comments>http://www.blogjava.net/boluobn/archive/2008/01/14/175121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/boluobn/comments/commentRss/175121.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/boluobn/services/trackbacks/175121.html</trackback:ping><description><![CDATA[<pre><font class="java-comment">//X軸下標字體大小及顏色</font>
Axis axis1 = plot.getDomainAxis();
axis1.setLabelFont(<font class="java-reserved_word"><strong>new</strong></font> Font(<font class="java-string">"sansserf"</font>,Font.PLAIN,30));<font class="java-comment">//字體</font>
axis1.setLabelPaint(Color.white);<font class="java-comment">//顏色</font>
&nbsp;
<font class="java-comment">//X軸的字體顏色</font>
Axis axis = plot.getDomainAxis();
axis.setTickLabelFont(<font class="java-reserved_word"><strong>new</strong></font> Font(<font class="java-string">"Serif"</font>, Font.PLAIN,25));<font class="java-comment">//字體</font>
axis.setTickLabelPaint(Color.white);<font class="java-comment">//顏色 </font>
&nbsp;
<font class="java-comment">//Y軸字下標字體大小及顏色</font>
Axis axis2 = plot.getRangeAxis();
axis2.setLabelFont(<font class="java-reserved_word"><strong>new</strong></font> Font(<font class="java-string">"Serif"</font>, Font.PLAIN, 30));<font class="java-comment">//字體  </font>
axis2.setLabelPaint(Color.white); <font class="java-comment">//顏色</font>
&nbsp;
<font class="java-comment">//Y軸字體及顏色</font>
Axis axis3 = plot.getRangeAxis();
axis3.setTickLabelFont(<font class="java-reserved_word"><strong>new</strong></font> Font(<font class="java-string">"Serif"</font>, Font.PLAIN, 25));<font class="java-comment">//字體  </font>
axis3.setTickLabelPaint(Color.white);<font class="java-comment">//顏色</font>
</pre>
<img src ="http://www.blogjava.net/boluobn/aggbug/175121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/boluobn/" target="_blank">菠萝</a> 2008-01-14 12:10 <a href="http://www.blogjava.net/boluobn/archive/2008/01/14/175121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>