无法加载以下字体

时间:2013-09-06 14:22:25

标签: java html fonts jasper-reports ireport

我遇到了一个问题,但我的情况有一些具体的差异。

我支持有问题的网络应用程序(EJB 2PostgreSQL 9.2.4,在JBoss 4.2.3上运行)。 有时,当我们尝试生成特定报告时,我们会收到此错误:

javax.servlet.ServletException: net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font : 
pdfFontName   : DejaVu Sans
pdfEncoding   : Cp1252
isPdfEmbedded : false
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
stirq.scan.util.NoCacheFilter.doFilter(NoCacheFilter.java:38)
jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:118)
stirq.scan.util.TimeoutFilter.doFilter(TimeoutFilter.java:57)
stirq.scan.util.SecurityFilter.doFilter(SecurityFilter.java:82)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

我在很多网站上搜索过。 http://community.jaspersoft.com/questions/525505/could-not-load-following-font

Could not load the following font issue in iReport

JasperReports - font extensions does not work - can't find font while exporting to PDF

(和其他人)

正如许多答案中所建议的,我使用字体扩展jar但仍然遇到了问题。

应用程序数据库中有两个表可以包含h​​tml代码。 我发现当这两个字段之一或两个字段中有“font”标记时会发生错误。 即使这个“font”标签中的指定字体是Arial,我得到的消息仍然与DejaVu Sans字体有关。

我所有jrxml文件的每个文本字段都是字体DejaVu Sans。 当我在IReport 4.1.1中测试我的报告的预览模式时,一切都很好。

我删除了包含HTML代码的两个数据库字段的每个“字体”标记,以查找发生问题并且有效的事件。

但该应用程序已投入生产。 如您所见,我无法删除数据库中的每个“字体”标记。

任何帮助都将不胜感激。

感谢。

3 个答案:

答案 0 :(得分:0)

在iReport中,如果您为JasperServer设置了存储库,您将能够将报告xml的有效生产版本提供到iReport中。然后,您可以编辑您的文件并替换为已编辑的版本制作文件。

答案 1 :(得分:0)

尝试设置这些系统属性:

import net.sf.jasperreports.engine.util.JRProperties;
JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", "Helvetica")
JRProperties.setProperty("net.sf.jasperreports.default.pdf.encoding", "UTF-8")
JRProperties.setProperty("net.sf.jasperreports.default.pdf.embedded", "false")

请点击此处了解详情:http://www.77dev.com/2014/07/could-not-load-following-font-solved.html

答案 2 :(得分:0)

将字体文件(* .ttf)复制到文件夹中:

/path/to/app/WEB-INF/classes/

你的app会从这里获得字体:)