JasperReport使用第二坑:中文不显示


JasperReport在用TIBCO Jaspersoft Studio进行报表设计的时候默认采用的字体是SansSerif,中文并不在其处理范围之内,把字体显示设置为华文宋体,如下图:


报表jrxml模板文件中可看到已经显示加了华文宋体。


    
    
        
    
    


报表模板文件中显示设置中文字体,生成PDF文件的时候中文其实还是不会显示,因为JasperRepeat的包中压根就没有华文宋体的字体库STSONG.TTF,需要在工程中放入该字体库,并配置JasperReport的字体模板fonts.xml,添加配置文件jasperreports_extension.properties指明字体处理工厂类和字体模板。

Windows操作系统中的字体文件可以在C:\Windows\Fonts目录下找到,华文宋体的字体文件STSONG.TTF就在该目录下面。

工程结构如下图:

fonts.xml

<?xml version="1.0" encoding="UTF-8"?>

    
        fonts/STSONG.TTF
        fonts/STSONG.TTF
        fonts/STSONG.TTF
        fonts/STSONG.TTF
        Identity-H
        true
        
            '华文宋体', Arial, Helvetica, sans-serif
            '华文宋体', Arial, Helvetica, sans-serif
        
    

jasperreports_extension.properties

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.lobstertwo=fonts/fonts.xml


经过上述处理后,再生成PDF文件,中文已经可以正常显示了。