Jasper报表字体错误

4

我正在使用Jasper Reports 5.2.0和Spring MVC with Maven进行开发。

我已经使用JasperViewer编写了报告,但突然间出现了无法解决的错误:

net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '
        net/sf/jasperreports/fonts/pictonic/pictonic.ttf
        net/sf/jasperreports/fonts/pictonic/pictonic.svg
        net/sf/jasperreports/fonts/pictonic/pictonic.eot
        net/sf/jasperreports/fonts/pictonic/pictonic.woff
    ' is not available to the JVM. See the Javadoc for more details.
3个回答

3
对我来说,有一次问题出在jasperreports版本上,因为我的类路径中有多个jasperreports jar文件。
我的报告是使用jasperreports-5.6.0编译的,而我的类路径中还包括了jasperreports-4.1.1.jar,并且不小心将jasperreports-4.1.1.jar放在了构建类路径顺序中的更高位置。
实际上,我的eclipse项目作为库jar包包含了jasperreports-5.6.0,而这个项目又作为“构建路径中所需的项目”包含了旧版本的jasperreports。
我将jasperreports-5.6.0移动到了旧版本之前,即“构建类路径顺序中更高的位置”,问题得到了解决。
后来我又删除了项目依赖项,也解决了问题。
因此,请检查你是否有多个jasperreports库,如果有,则删除不必要的重复jar文件。

3
这不是你在 Stack Overflow 上回答问题的方式,请在此处包含来自链接的相关部分。 - 4dgaurav
谢谢,这解决了我的问题 +1。我在我的WEB-INF/lib文件夹中意外地放置了jasperreports 5.2.0和5.5.1。结果是一些疯狂的异常,比如:JRFontNotFoundException: Font ' net/sf/jasperreports/fonts/pictonic/pictonic.ttf 和 Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser。但我同意4dgaurav的看法。 - Juan Rojas
根据4dgaurav的评论修改了答案。 - shamsuddin

3

删除lib文件夹中多余的jar包,这样可以使程序正常运行。或者,在maven依赖和webroot -> lib文件夹或类路径中使用相同版本的jar文件。


1
哎?这是一个缺失字体的问题,请参考http://javaskeleton.blogspot.sg/2010/12/embedding-fonts-into-pdf-generated-by.html。 - ymajoros

2
问题是Jasper Reports中使用的某个字体未安装在系统中。解决方案是安装所有缺失的字体。另一种选择是仅使用“Serif”和“San-Serif”字体,这样就不需要单独安装字体,并且当代码在不同服务器之间移动时也可以使用。

谢谢您,Jeevan。但是我已经成功地使用Verdana字体运行了报告,突然它就出现了这种情况。 - madhav
你在成功运行报告的机器之前,是否对Java版本进行了任何更改或部署了代码到其他机器上? - Jeevan Mysore
请参见 http://javaskeleton.blogspot.sg/2010/12/embedding-fonts-into-pdf-generated-by.html。 - ymajoros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接