我有一个报告,该报告将根据语言环境的值从属性文件中获取值。该报告给了我这个错误:
net.sf.jasperreports.engine.JRRuntimeException: java.io.EOFException
at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter.java:1490)
at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:1363)
at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:1346)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:1703)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:585)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:549)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:514)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:304)
我认为可能是字体错误。因此,我根据互联网上可用的链接创建了一个字体罐,以在Jasper中创建自定义字体,并将其放置在我的类路径中。我再次遇到相同的错误。
然后,我尝试使用:
在JVM中获取可用字体。GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
for(String font:e.getAvailableFontFamilyNames()) {
System.out.println(font);
}
这实际上是将Arial打印为我的JVM中可用的字体。另外,使用jasper报表工具可以使报表正常运行。但是在Weblogic应用程序中使用该错误时会出现错误。