【问题标题】:Font is not available to jvm while converting a report from jrxml to pdf将报告从 jrxml 转换为 pdf 时 jvm 无法使用字体
【发布时间】:2012-11-28 10:29:19
【问题描述】:

我在 windows 中使用 eclipse。

我在使用 jar jasperreports-4.1.1.jar 从 jrxml 文件生成 pdf 文件时遇到此错误。我已经从我的 windows 文件夹中手动在我的 jre 中添加了字体文件,并且已经将字体路径添加到了路径变量,但仍然得到了同样的错误。

net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font : 
pdfFontName   : Arial
pdfEncoding   : Cp1252
isPdfEmbedded : false

我观察到的另一件奇怪的事情是,当我为 Cambria 字体尝试相同的功能时,我得到了一个不同的错误。 以下是我使用cambria时的错误

net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'CAMBRIA' is not available to the JVM. See the Javadoc for more details.
at net.sf.jasperreports.engine.util.JRFontUtil.checkAwtFont(JRFontUtil.java:358)
at net.sf.jasperreports.engine.util.JRStyledText.getAwtAttributedString(JRStyledText.java:226)
at net.sf.jasperreports.engine.export.AbstractTextRenderer.render(AbstractTextRenderer.java:263)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:2026)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:729)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportFrame(JRPdfExporter.java:2526)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:733)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportFrame(JRPdfExporter.java:2526)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:733)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:689)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:582)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:376)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:122)
at main.CopyOfTable.runReport(CopyOfTable.java:60)
at main.CopyOfTable.main(CopyOfTable.java:100)

【问题讨论】:

    标签: java fonts jasper-reports


    【解决方案1】:

    希望这会有所帮助:

    1. 将您的字体定义为“字体扩展”。这涉及创建两个 文件:jasperreports_extension.properties 和 fonts.xml。看看它是如何在 JasperReports 包中的 demo/fonts 目录,你可以下载 来自http://community.jaspersoft.com/project/jasperreports-library/releases。

    2. 将您的字体和字体扩展名打包到类路径中可用的 JAR 文件中。

    这适用于 TrueType 和 OpenType 字体。

    还有:

    查看 Teodor 的第一条评论here。

    此网站上许多有用的答案之一是here。

    祝你好运。

    【讨论】:

    • 我已经下载了 jasperReport.5.0.0.jar 并添加到我的类路径中,但我仍然有同样的问题。仔细观察,jar 文件中没有 fonts.xml,所以我在 jar 中手动添加并尝试了它,但仍然没有运气。
    • 你需要下载jasperreports-5.0.0-project.zip,而不是jar。该项目包含 demo/fonts 目录,该目录演示了正确的方法。如果您遵循示例和文档here,您应该没问题。
    【解决方案2】:

    我解决了这个问题,只是将缺少的字体添加到操作系统,在我的例子中是 Windows 7。我的报告没有使用缺少的字体,它是 Calibri Light,并且始终在其他环境中工作。

    【讨论】:

      【解决方案3】:

      您获取以下类型的错误

      net.sf.jasperreports.engine.JRRuntimeException:无法加载 以下字体

      您必须检查您的 tomcat 目录中的临时文件夹。如果您没有找到任何临时文件夹,请像这样创建临时文件夹

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多