前几天因为项目需要使用了一种特殊字体AAAA,把这种字体安装到windows下的字体文件FONTS里后,皕杰报表设计器里的单元格字体属性就可以查到这种字体了,且在页面上预览能够正常显示。见图:
然而当导出PDF文件时却显示乱码,见图,百思不得其解。
仔细分析一下,报表预览时能够正常显示,说明预览时用的是系统里的字体,而导出是乱码而不是小方块,说明有这个字体,但在报表导出时用的却是另一种字体替代了,那么是用哪里的字体替代的呢?
回想一下皕杰报表导出pdf变成小方块的问题的解决方案:
1、查一下系统是否有中文字符集。
2、查一下系统是否有中文字体。
3、查一下JDK是否加载了中文字体。
对照以上三条,似乎漏掉了JDK的问题,应该导出pdf时用到了JDK里的字体,找不到就用一种类似的替代了。赶紧把特殊字体放到jre中的字体文件里进行测试,果然是这个问题,导出pdf特殊字体ok了。
遇到问题不用急,仔细想想导致问题的可能原因,再去逐一排查和测试,总能找到问题的结症和解决办法。