我正在开发一个使用Jasperreports的Java项目。我在使用相同技术的其他项目中多次工作,在尝试在Unix环境中打印报告时遇到了同样的问题。
我的项目使用:
抛出的异常是:
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提供系统字体?
答案 0 :(得分:4)
Java要求操作系统提供字体。工作原理取决于操作系统。
http://en.wikipedia.org/wiki/Arial表示它已安装在MS-Windows和MAC OSX上
答案 1 :(得分:2)
如果您不想轻松下载罐子的麻烦,那么只需转到软件中心并点击安装 Ubuntu受限制的附加功能。此软件包不仅会安装MS字体,还会为受版权限制的应用程序提供其他支持。
这适用于Ubuntu Systems。
答案 2 :(得分:0)
我在Jasper 5.0上也遇到了同样的问题。我已按照以下步骤操作:
jasper-fonts.jar
; 答案 3 :(得分:0)
2015年更新:
将此添加到(或取消注释)/etc/apt/sources.list
deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
然后运行:
sudo apt-get update
sudo apt-get install msttcorefonts
答案 4 :(得分:0)
for OpenSuse
验证字体在SO上是否可用 fc-list | grep" Arial"
安装以下rpm sudo rpm -ivh msttcore-fonts-2.0-3.noarch.rpm
或从页面下载:
http://www.mjmwired.net/resources/mjm-fedora-f11.html#ttf
安装rpm
再次验证 fc-list | grep" Arial"
重新启动应用程序服务器
答案 5 :(得分:0)
这拯救了我的一天!
http://jasperstarter.cenote.de/usage.html#Reports_with_custom_fonts
使用自定义字体的报告
Jaspersoft Studio可以选择创建字体的jar文件。只需将这个jar文件放入JasperStarter的jdbc文件夹中即可。