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

use*_*459 5 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
Run Code Online (Sandbox Code Playgroud)

我观察到的另一个奇怪的事情是,当我为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)
Run Code Online (Sandbox Code Playgroud)

gle*_*380 5

希望这可以帮助:

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

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

这适用于TrueType和OpenType字体.

也:

请参阅Teodor 在此处的第一条评论.

本网站上有许多有用的答案之一就在这里.

祝好运.