JasperReports + iReport 4.0版中的设置记录如下:
1.将iTextAsian.jar复制到iReport安装目录/ireport/libs下,运行iReport,工具-->选项-->iReport:Classpath中,将iTextAsian.jar包导入(有时可能需要选中Reloadable)
完成后,在属性里面设置 PDF font name:HeiseiKakuGo-W5; pdf Encoding =UniJIS-UCS2-H (Japanese);(Pdf Embedded复选框选不选上都一样),一般的中文字体就可以在pdf中正常显示了。注意:虽然在iReport4.0中,PDF font name和pdf Encoding两个属性已被声明过时(Deprecated),但实际上还是必须得设置正确,否则编译任然出错。
(注意:项目是中文的,还需要用到宋体之外的字体,即黑体和华文新魏(iReport中默认有这些字体,但却不能用于pdf中,在PDF Font name下就只有STSong-Light可用,而且加粗、斜体等效果在pdf中都无效),则做好上述设置之后,还需要在做如下设置:1)下载TrueType字体库,HeiTi.ttf、HWXW.ttf。2)在iReport的工具-->选项-->iReport:Fonts中,安装字体。在安装时,需注意,在第二步设置Family details时,在PDF details中的PDF Encoding不选择(即默认<default>)或者选择Identity-H (Unicode with horizontal writing),而不是UniGB-UCS2-H !!Embed this font in the PDF document前的复选框必须选中。)
3)安装好字体后,在属性的Font name中就可以看到相应的名字,默认分别是“迷你简黑体”和“华文新魏”,选中某种字体,设置PDF font name为空,pdf Encoding为Identity-H (Unicode with horizontal writing)。2.做好上述设置,则在iReport中预览(用Adobe pdf Reader预览)可以看到一切都OK了,但事情还没完。想要在Java中生成报表,原来(3.0.0版时)的做法是直接将字体库拷到工程的src目录下即可(实际上是在发布时字体库需放到/classes目录下),然而,在4.0版中变了,需要在iReport中安装好字体后,把字体导出成jar包,然后把该jar包添加到项目的classpath中,否则,无论把字体库放到哪里都会报JRFontNotFoundException异常。至此,终于OK!由此可看出,Jasperreports4.0+iReport4.0与Jasperreports3.0.0+iReport3.0.0相比,有了相当大的变化。新的Jasperreports使用了Spring框架2.5.5版。