JasperReports+iReport 3.7.0 pdf中文问题

JasperReports + iReport 3.7.0版与3.0.0版相比,有了相当大的变更,其中很重要的一个就是pdf中文字体设置的变更,现将在3.7.0中的设置记录如下:

 

1.将iTextAsian.jar复制到iReport安装目录/ireport/libs下,运行iReport,工具-->选项-->iReport:Classpath中,将iTextAsian.jar包导入,

JasperReports+iReport 3.7.0 pdf中文问题_第1张图片

完成后,在属性里面设置 PDF font name: STSong-Light;  pdf Encoding =UniGB-UCS2-H;(Pdf Embedded复选框选不选上都一样),一般的中文字体就可以在pdf中正常显示了。注意:虽然在iReport3.7中,PDF font name和pdf Encoding两个属性已被声明过时(Deprecated),但实际上还是必须得设置正确,否则编译任然出错

2.项目中还需要用到宋体之外的字体,即黑体和华文新魏(iReport中默认有这些字体,但却不能用于pdf中,在PDF Font name下就只有STSong-Light可用,而且加粗、斜体等效果在pdf中都无效),则做好上述设置之后,还需要在做如下设置:
1)下载TrueType字体库,HeiTi.ttf、HWXW.ttf。
2)在iReport的工具-->选项-->iReport:Fonts中,安装字体。在安装时,需注意,在第二步设置Family details时,在PDF details中的PDF Encoding不选择(即默认)或者选择Identity-H (Unicode with horizontal writing),而不是UniGB-UCS2-H !!
Embed this font in the PDF document前的复选框必须选中。

 

JasperReports+iReport 3.7.0 pdf中文问题_第2张图片

JasperReports+iReport 3.7.0 pdf中文问题_第3张图片
3)安装好字体后,在属性的Font name中就可以看到相应的名字,默认分别是“迷你简黑体”和“华文新魏”,选中某种字体,设置PDF font name为空,pdf Encoding为Identity-H (Unicode with horizontal writing)。
4)做好上述设置,则在iReport中预览(用Adobe pdf Reader预览)可以看到一切都OK了,但事情还没完。想要在Java中生成报表,原来(3.0.0版时)的做法是直接将字体库拷到工程的src目录下即可(实际上是在发布时字体库需放到/classes目录下),然而,在3.7.0版中变了,需要在iReport中安装好字体后,把字体导出成jar包,然后把该jar包添加到项目的classpath中否则,无论把字体库放到哪里都会报JRFontNotFoundException异常。
至此,终于OK!由此可看出,Jasperreports3.7.0+iReport3.7.0与Jasperreports3.0.0+iReport3.0.0相比,有了相当大的变化。新的Jasperreports使用了Spring框架2.5.5版。

你可能感兴趣的:(Java,encoding,deprecated,fonts,spring,adobe,jar)