将报告从jrxml转换为pdf时,jvm无法使用字体

时间:2012-11-28 10:29:20

标签: java fonts jasper-reports

我在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)

3 个答案:

答案 0 :(得分:5)

希望这会有所帮助:

  1. 将字体定义为"字体扩展名"。这包括创建两个 files:jasperreports_extension.properties和fonts.xml。看看它是如何完成的 您可以下载JasperReports包中的demo / fonts目录 来自http://community.jaspersoft.com/project/jasperreports-library/releases

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

  3. 这适用于TrueType和OpenType字体。

    此外:

    请参阅Teodor的第一条评论here

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

    祝你好运。

答案 1 :(得分:0)

我仅在Windows 7操作系统中添加了缺少的字体即可解决此问题。我的报告未使用缺少的字体(Calibri Light),并且始终在其他环境中工作。

答案 2 :(得分:0)

您获取以下错误类型

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

您必须检查tomcat目录中的temp文件夹。如果未找到任何临时文件夹,请创建类似

的临时文件夹

enter image description here