在使用Jasperreports以及iReport设计报表时,导出PDF是一个常见的需求。网上解决PDF导出中文显示问题相关的文章很多,无非就是设置控件的pdf font name和pdf encoding属性,但是在4.5中都已经被弃用了(不推荐)。并且原来的解决方案还存在两个问题:(1)预览的字体通常不是STSong-Light, 这会导致预览字体与导出到PDF不一致。(2)当字符串中既有字母又有汉字的时候,导出的PDF可能莫名的换行。本文就介绍一种完美的解决方案,既保持一致性,也不会出现换行问题。
首先,安装完iReport之后,安装你想要使用的字体。Windows操作系统下面有各种字体,下面以仿宋的安装为例。在C:\Windows\Fonts文件夹下找到simfang.ttf仿宋字体文件。选择iReport菜单:工具->选项(英文应该为Tools->Options) ,在弹出的窗口中选择Fonts Tab。点击 Install Font按钮,选择刚才找到的仿宋字体文件simfang.ttf,点击下一步,选择pdf-encoding为Identity-H (Unicode with horizontal writing),勾选Embed in this font in the PDF document。 点击完成即可。此时应该可以在控件的font属性中看到宋体选项,选择宋体,即可预览,也可在iReport里面导出PDF。具体的截图如下: