Java i报告外部字体
我正在尝试在PDF文档中使用外部字体。通过设置->字体->安装新字体安装后,我在iReport中使用它没有问题 问题是,当我将新字体导出为扩展并将jar添加到java项目的类路径时,无法生成PDF,并且失败Java i报告外部字体,java,jasper-reports,ireport,Java,Jasper Reports,Ireport,我正在尝试在PDF文档中使用外部字体。通过设置->字体->安装新字体安装后,我在iReport中使用它没有问题 问题是,当我将新字体导出为扩展并将jar添加到java项目的类路径时,无法生成PDF,并且失败 JRFontNotFoundException:Font'Arial Custom'对JVM异常不可用 我做错了什么? 多谢各位 UPD#1: jasperreports_extensions.properties net.sf.jasperreports.extension.registr
JRFontNotFoundException:Font'Arial Custom'对JVM异常不可用
我做错了什么?
多谢各位
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>
字体目录包括所有ttf文件。我刚刚将jar添加到类路径中。这是我的工作示例 字体定义文件(我从字体的jar文件中找到):
jar文件位于应用程序的类路径中
下面是我的java代码:
String defaultPDFFont=“Arial”;
setProperties(“net.sf.jasperreports.awt.ignore.missing.font”,“true”);
setProperty(“net.sf.jasperreports.default.font.name”,DefaultPdfont);
JasperReport-JasperReport=JasperCompileManager.compileReport(reportSource);
JasperPrint JasperPrint=JasperFillManager.fillReport(jasperReport,参数);
jaspeexportmanager.exportReportToPdfFile(jasperPrint,outputFileName);
我设置了net.sf.jasperreports.awt.ignore.missing.font
属性,以防止在缺少字体的情况下出现错误(JRFontNotFoundException:font'Arial Custom'对JVM异常不可用)。我设置了net.sf.jasperreports.default.font.name
属性来确定将在生成的pdf文件中使用的字体
您可以阅读有关此属性的信息:和
生成的pdf文件使用了这种字体(Arial
,在本示例中)。您能发布带有字体定义的xml文件以及使用这种字体的jrxml文件片段吗?谢谢您的回复。请参阅问题中的更新Alex询问了一段.jrxml。你还没有发布,谢谢!我找到了问题所在-我将字体安装为embedded.JRProperties.setProperty deprivated need:DefaultJasperReportsContext context=DefaultJasperReportsContext.getInstance();JRPropertiesUtil.getInstance(context.setProperty(“net.sf.jasperreports.awt.ignore.missing.font”,“true”);