Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法加载以下字体_Java_Html_Fonts_Jasper Reports_Ireport - Fatal编程技术网

Java 无法加载以下字体

Java 无法加载以下字体,java,html,fonts,jasper-reports,ireport,Java,Html,Fonts,Jasper Reports,Ireport,我有一个已经被问过的问题,但在我的案例中有一些具体的区别 我正在支持一个web应用程序(ejb2,postgresql9.2.4,运行在jboss4.2.3)上,该应用程序存在问题。 有时,当我们试图生成特定报告时,会出现以下错误: javax.servlet.ServletException: net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font : pdfFontName :

我有一个已经被问过的问题,但在我的案例中有一些具体的区别

我正在支持一个web应用程序(
ejb2
postgresql9.2.4
,运行在
jboss4.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)
我搜索了很多网站。

(及其他)

正如许多答案中所建议的,我正在使用字体扩展jar,但仍然存在这个问题

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

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

我删除了两个数据库字段中的每个“字体”标记,其中包含一个事件的HTML代码,该事件引起了问题,并且成功了

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

任何帮助都将不胜感激


谢谢。

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

尝试设置以下系统属性:

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")
有关详细信息,请参见此处:

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

/path/to/app/WEB-INF/classes/
您的应用程序将从此处获取字体:)