现象
在web工程中使用的一个报表,以pdf显示,使用了如下字体:方正仿宋宋,黑体,Times new Roma 。其中:方正仿宋宋,黑体,无法正常显示,加粗效果也无法实现。
分析
1、排除开发使用的工具的版本和WEB应用版本不一致的问题
ireport版本:3.7.1,WEB应用中引入的jar版本也是3.7.1
jasperreports-3.7.1.jar,jasperreports-applet-3.7.1.jar,jasperreports-fonts-3.7.1.jar,jasperreports-fonts-simsong.jar
iText-2.1.7.jar,iTextAsian.jar,iTextAsianCmaps.jar,itext-hyph-xml.jar
2、百度经验
参考gundsoul大神的文章分析,
未正常显示的字体,就是没有被ireport识别。导致ireport使用了默认的字体即便是自带的STSong-Light,这个字体加粗等效果,都无效。
开发时,使用ireport预览效果正常的原因是:ireport开发工具所在的Windows系统已经安装了相应的字体,ireport作为系统上运行的软件,可以访问和使用系统已安装的字体。
但部署WEB工程是在linux系统上,所需的字体在工程的classpath中无法找到,故ireport采用了默认字体显示。