BSTEK Development Framework2(BDF2) : 6.3.配置JasperReports字体

bdf2-jasperreports模块不再维护的通告

2014年07月01日起,BDF2中集成的jasperreports模块将不再做任何更新,也不会在问答中提供jasperreports的相关技术问题的解答,今后将主推锐道自己的报表引擎UReport,项目地址为http://bsdn.org/projects/ureport ,UReport文档教程地址为http://wiki.bsdn.org/display/ureport ,BDF2与UReport集成的项目名称为bdf2-ureport;通过bdf2-ureport项目,可快速上手使用UReport。

       在使用Jasperreports时,经常会遇到无法在PDF格式报表当中显示中文,这时需要我们修改报表中文字的下面三个属性实现:

  1. Font : 宋体
  2. Pdf Font Name : STSong-Light
  3. Pdf Encoding : Identity-H (Unicode with horizontal writing)

       还有一种情况,可能我们在本地测试的情况下报表显示正常,一旦部署到BDF2当中可能出现类似下面的字体找不到的异常:

字体找不到异常

net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Arial' is not available to the JVM. 

       这种情况对于将应用部署到Linux操作系统环境下的应用特别常见,一旦您遇到这种问题,那么我们需要做的就是利用iReport将缺少的字体打包并放置我们应用的classpath环境下即可。iReport字体打包操作如下:

       首先打开IReport的工具/选项/Fonts,点击Install Font:

       点击浏览按钮,选择字体库的ttf文件。

       点击下一步,如果当前字体库是有4个字体库组成分别是默认字体,粗体,斜体,粗斜体,则在该步还需选择粗体,斜体和粗斜体的字体库。

       点击完成,实现字体库的导入操作,这样在IReport设计器中就可以使用这些字体了,如果需要在web工程使用该字体库,则可以选择已配置的字体库(可以是多个),点击右侧的Export as extension按钮,将这些字体库导出成jar,放到classpath下使用,这样web应用就可以使用这些字体库,解决了中文问题。

Attachments: