最近开发项目的时候需要使用微软雅黑,iReport中默认有这个字体,当时以为只要把字体改一下就可以了,发现不起,查了一下资料,虽然默认有此字体,但是在PDF中不起作用,要想使用额外的字体,需要将字体添加进来。
首先是安装字体,可以从C:\Windows\Fonts文件夹中查找,也可以从网上下载,找到字体后,打开ireport的配置选项 (工具-选项),切换到fonts选项卡进行安装,如下图:
需要注意的是:在第二步设置FDF details时,在PDF details中的PDF Encoding不选择(即默认
安装好字体后,在属性的Font name中就可以看到相应的名字:微软雅黑,选中某种字体,设置Pdf font name: STSong-Light,注意:此时pdf Encoding设置为为Identity-H (Unicode with horizontal writing),而不是平时设置的UniGB-UCS2-H (Chinese Simplified) 如果设置为后者,在iReport中能正常预览PDF,但是web项目中预览的时候报错:
提示PDF字体不正确:java.io.UnsupportedEncodingException: UniGB-UCS2-H 。修改后即可解决。
做好上述设置,则在iReport中预览可以看到一切都OK了,但是想要在Java项目中生成报表,需要将iReport中安装好字体字体导出成jar包,然后把该jar包添加到项目的classpath中,点击Export as extension,即可把字体打包成jar,然后把该jar包添加到项目的lib下就可以了。