我正在开发一个使用 Jasperreports 的 Java 项目。我曾多次在其他项目中使用相同的技术,在尝试在 Unix 环境中打印报告时遇到了同样的问题。
我的项目使用:
- JBoss 4.2.3.GA
- Java 1.6
- 碧玉报告 4.7.0
抛出的异常是:
net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Arial' is not available to the JVM. See the Javadoc for more details.
我找到了解决此问题的通用解决方案,并且确实有效:
sudo apt-get install msttcorefonts
但是,我想了解 Jasper 如何使用字体,以及它如何搜索安装在 Unix 环境中的字体。也许更好的问题是:JVM 如何处理原生字体?谁能给我关于这个问题的详细解释?如何在运行时为 JVM 提供系统字体?