jasperreport ireport创建PDF中文字体问题终极解决方法

时间:2021-07-22 06:36:45

公司做的项目需要用到ireport来设计报表并导出PDF,刚接触也跟很多人一样碰到了中文字体问题,网上找到了解决方法但觉得不够完美,普遍的解决方法是设置文本控件的pdf font name和pdf encoding属性,这种方法有几种问题,一个是加粗等效果没有作用,还一个是英文字母和数字的字体很不好看。

第二种方法就是导入字体的方法,我当初参考的例子是这个,http://blog.csdn.net/kimylrong/article/details/7635407,按照他的例子用仿宋字体确实可行,但我只是想用宋体,于是在系统文件夹里面找了个simsun.ttc的字体文件,结果报了这个错。

 Font 'fonts/simsun.ttc' is not available to the JVM. See the Javadoc for more details.

貌似只能用ttf后缀的字体文件,于是我第一个想法是找一找有没有simsun.ttf这个的字体存在,百度了一下确实有人提供下载,但并没有说明文件的来源,而且我也有个癖好,就是能用一手的东西尽量用一手的。后来发现了有种叫ttc转ttf工具的东西,我用的是ttctools,它可以把ttf从ttc里面分离出来

jasperreport ireport创建PDF中文字体问题终极解决方法

你可以打开来预览一下,发现它分成了宋体和新宋体,这时拿这个FONT00.TTF去打包jar文件并放入项目,成功解决!

注意设计报表的时候,只需要设置font属性为宋体,其他PDF属性均保持默认即可。


Other:

1.字体打包jar文件并不需要像例子里面那样手动命令行,用ireport安装完字体,选中字体,右边有个Export as extension按钮便是打包。

2.我用的是jasperreports-5.6.0.jar,5.6版本的,之前用的5.5.1版本会出现字体大小不能调的问题。

fd