iReport外部字体

我想在PDF文档中使用外部字体。 通过设置 – >字体 – >安装新字体安装后,我在iReport中使用它没有问题。

当我将新字体导出为扩展并将该jar添加到java项目的类路径时,无法生成PDF并且失败的问题

JRFontNotFoundException: Font 'Arial Custom' is not available to the JVM exception

我做错了什么? 谢谢

UPD#1:

jasperreports_extensions.properties

 net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory net.sf.jasperreports.extension.simple.font.families.ireportfamily1329192368547=fonts/fontsfamily1329192368547.xml 

fontsfamily1329192368547.xml

               

fonts目录包含所有ttf文件。 我刚把jar添加到classpath中。

这是我的工作样本。

字体定义文件(我从字体的jar文件中挖掘出来):

            

jar文件位于应用程序的类路径中。

这是我的java代码:

 String defaultPDFFont = "Arial"; JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true"); JRProperties.setProperty("net.sf.jasperreports.default.font.name", defaultPDFFont); JasperReport jasperReport = JasperCompileManager.compileReport(reportSource); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params); JasperExportManager.exportReportToPdfFile(jasperPrint, outputFileName); 

我设置net.sf.jasperreports.awt.ignore.missing.font属性以防止您JRFontNotFoundException: Font 'Arial Custom' is not available to the JVM exception错误( JRFontNotFoundException: Font 'Arial Custom' is not available to the JVM exception )以防字体丢失。 我设置net.sf.jasperreports.default.font.name属性以确定将在生成的pdf文件中使用的字体。

您可以阅读有关此属性的信息: net.sf.jasperreports.awt.ignore.missing.font和net.sf.jasperreports.default.font.name 。

生成的pdf文件使用此字体(此示例中为Arial )。