使用Jfreechart导出后台订阅的图形,在生成图片里的文字就用到了:theme.setRegularFont(new Font("SimSun", Font.PLAIN, 12)),也可以写成 theme.setRegularFont(newFont("宋体" , Font.PLAIN, 12)),因为是在服务器端生成图片如果部署的机器没有中文字体会乱码。
发生乱码如图所示:
如何查找字体文件?
以Win7操作系统搜索“SimSun”字体为例:在开始菜单的搜索框输入“字体”,打开字体管理器,在搜索输入框中输入“SimSun“,如图:
注意这其实不是我们要搜索的字体,这里推荐一款查看字体的软件NexusFont,绿色版的,下载解压缩后直接运行NexusFontNexusFont.exe即可,在搜索框中输入“SimSun “,如图:
我们双击第二个字体,会看到字体的名字名称:宋体,如图:
我们可以再重复在Win7下搜索字体的步骤,这次搜索“宋体“就能搜索到了,如图:
如何添加字体?
Windows系统不需要添加,字体很全,这里主要讲在Linux/Unix下如何添加字体:
1、新建目录
在%JAVA_HOME%/jre/lib/fonts 文件夹下,新建文件夹,命名为 fallback。
注意:是JAVA_HOME不是JRE_HOME
2、添加中文字体
将SimSun.ttc的字体文件拷贝到新建的%JAVA_HOME%/jre/lib/fonts/fallback目录下。
通过以上的操作,订阅报表的图形上的文字就不再乱码了。