JFreeChart图片里的中文在linux下显示为方块的解决办法

来源:互联网 发布:招聘 大数据风控 编辑:程序博客网 时间:2024/05/22 07:09

google了N多资料,终于找到了一篇能解决问题的文章:

http://ferreousbox.javaeye.com/blog/395176

 

两个步骤:

1. 把windows系统下的WINDOWS/Fonts路里的宋体字库文件 simsun.ttc 拷贝到linux系统的java_home/jre/lib/fonts/下。

 

2. 修改项目里生成图片的代码:

在ChartUtilities.saveChartAsPNG(file, chart, width, height, info);生成并保存图片之前增加如下代码:

     java.awt.Font  font = new java.awt.Font("宋体", java.awt.Font.BOLD, 22);  
     chart.getTitle().setFont(font); // 标题     
     font = new java.awt.Font("宋体", java.awt.Font.PLAIN, 16);  
     categoryAxis.setLabelFont(font); // x轴名称的字体   
     CategoryPlot categoryplot = chart.getCategoryPlot();  
     CategoryAxis categoryaxis = categoryplot.getDomainAxis();  
     categoryplot.getRangeAxis().setLabelFont(font); // y轴名称的字体  
     font = new java.awt.Font("宋体", java.awt.Font.PLAIN, 12);  
     categoryaxis.setTickLabelFont(font); // x轴上的刻度名称字体  
     categoryplot.getRangeAxis().setTickLabelFont(font); // y轴上的刻度名称字体