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

<?xml version="1.0" encoding="UTF-8"?>

<fontFamilies>

<fontFamily name="Arial Custom">

<normal><![CDATA[fonts/arial.ttf]]></normal>

<bold><![CDATA[fonts/arialbd.ttf]]></bold>

<italic><![CDATA[fonts/ariali.ttf]]></italic>

<boldItalic><![CDATA[fonts/arialbi.ttf]]></boldItalic>

<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>

<pdfEmbedded><![CDATA[true]]></pdfEmbedded>

<locales>

<locale><![CDATA[en_US]]></locale>

</locales>

</fontFamily>

</fontFamilies>

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

回答:

这是我的工作样本。

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

<?xml version="1.0" encoding="UTF-8"?>

<fontFamilies>

<fontFamily name="Arial">

<normal><![CDATA[fonts/arial.ttf]]></normal>

<bold><![CDATA[fonts/arialbd.ttf]]></bold>

<italic><![CDATA[fonts/ariali.ttf]]></italic>

<boldItalic><![CDATA[fonts/arialbi.ttf]]></boldItalic>

<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>

<pdfEmbedded><![CDATA[false]]></pdfEmbedded>

</fontFamily>

</fontFamilies>

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);

我设置了

属性以防止JRFontNotFoundException: Font 'Arial Custom' is not available to the JVM

exception字体丢失时出现错误()。然后,我设置

属性以确定将在结果pdf文件中使用的字体。

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

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

以上是 iReport外部字体 的全部内容, 来源链接: utcz.com/qa/414999.html

回到顶部