- 症状
在两台版本相同的RedHat AS服务器上,应用服务器为JBoss AS 4.0.2,JDK版本1.5.07,同一应用中的同一JasperReport模板,使用一台服务器上的应用打印出报表的汉字刚好在单元格内,而使用另一台机器上的应用打印出报表中的汉字却出现错行的现象。
- 原因
经过反复检查,使用如下代码发现两台Linux服务器上安装的字体不一样;
public static void main(String[] args) {
java.awt.GraphicsEnvironment ge = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fonts = ge.getAvailableFontFamilyNames();
for (int i = 0; i < fonts.length; i++) {
System.out.println(fonts[i]);
}}
- 解决方法
安装JasperReport中使用的汉字字体,也可以简单地将所需要的字体文件拷贝到/usr/share/fonts目录下;