JVM net.sf.jasperreports.awt.ignore.missing.font = true不可用的iReport字体无效。

时间:2012-02-22 21:52:25

标签: fonts jasper-reports ireport

我正在尝试在iReport中预览Jasper报告并收到此错误。

错误填充打印...字体“黑体”是不可用的JVM。更多细节见的Javadoc。

  

net.sf.jasperreports.engine.util.JRFontNotFoundException:字体“黑体”不是提供给JVM。更多细节见的Javadoc。   在net.sf.jasperreports.engine.util.JRFontUtil.checkAwtFont(JRFontUtil.java:358)   在net.sf.jasperreports.engine.fill.TextMeasurer.measureSimpleText(TextMeasurer.java:537)   在net.sf.jasperreports.engine.fill.TextMeasurer.measure(TextMeasurer.java:341)   在net.sf.jasperreports.engine.fill.JRFillTextElement.chopTextElement(JRFillTextElement.java:511)   在net.sf.jasperreports.engine.fill.JRFillStaticText.prepare(JRFillStaticText.java:183)   在net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:328)   在net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:393)   在net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:352)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:323)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:257)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)   在net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:836)   在net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)   在net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)   在net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)   在net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)   在com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:879)   在org.openide.util.RequestProcessor $ Task.run(RequestProcessor.java:572)   在org.openide.util.RequestProcessor $ Processor.run(RequestProcessor.java:997)

我在这里找到Jasper stops finding one font指令,在modules / etc / jasperreports-4.5.0.jar中的default.jasperreports.properties中设置net.sf.jasperreports.awt.ignore.missing.font = true。

但这没有任何效果。这是iReport在编译预览时使用的正确属性文件吗?

2 个答案:

答案 0 :(得分:5)

首先:忽略缺少的字体属性在JR 4.5.0中停止工作。这是一个错误。它已经固定在行李箱中了。你可以得到它或等待4.5.1。

第二:与实际找到你想要的字体相比,忽略丢失的字体(显然)是一个非理想的解决方案。如果您的报告需要Helvetica,那么您应该使用字体扩展名将Helvetica包含在您的服务器上。如果您的报告确实不需要Helvetica,那么只需将报告更改为使用“Serif”等逻辑字体,并让JVM使用其默认的serif字体。

答案 1 :(得分:1)

尝试在工具上导入新字体>选项>字体插入fontxyz.ttf记住, 导出扩展程序并将jar添加到项目中,或者 将所有字段更改为在面板工具>选项>字体上显示的本机字体。