【发布时间】:2011-03-10 06:09:34
【问题描述】:
我正在尝试使用一种字体,它没有安装在我的本地操作系统上,带有JasperReports。 jasper 报告是这样使用的:
<textField>
<reportElement x="0" y="0" width="137" height="20"/>
<textElement>
<font fontName="Corbel" size="12"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{something}]]></textFieldExpression>
</textField>
名为 Corbel 的字体被导出为字体扩展名(使用 iReport),并包含在我系统上的文件夹中的文件 (Corbel.jar) 中。
我将此扩展添加到应用程序的类路径中,使用如下代码:
ClassLoader cl = new URLClassLoader(new URL[] {new URL("file:///D:/path/to/Corbel_jar_folder/")});
param = new HashMap();
param.put(JRParameter.REPORT_CLASS_LOADER, cl);
jasperReport = JasperCompileManager.compileReport("d:/path/to/Report_with_Corbel_font.jrxml");
jasperPrint = JasperFillManager.fillReport(jasperReport, param, new JREmptyDataSource());
填写完报告后,我使用JRPdfExporter 将其导出。但是,在结果 pdf 文件中,该元素没有应用 Corbel 字体。我没有包括 pdf 导出,因为我认为问题出在填充的某个地方。
我在JasperReports 中搜索并阅读了许多与使用/包括字体(即字体扩展)相关的帖子和问题;我仍然不知道错误或问题出在哪里。
任何帮助将不胜感激。
提前感谢您! (抱歉代码缩进不好,我希望我已经包含了足够的细节)
【问题讨论】:
标签: java fonts jasper-reports classloader