使用iReport创建PDF时如何使用自定义字体

19

iReport 版本: 3.7.1

我采用了两种方法来解决这个问题。

第一种方法

我在 iReport 中创建了一个 pdf 页面,其中一个字段(来自数据库)设置为一个字体Gujarati-Salarl (一种印度地区语言的字体)。

此字体在 iReport 的字体列表中可用。当我预览时,它会以所需的字体样式显示字段。

到这里为止一切都很好。

但生成的 pdf 文件仍然包含相同原始的英文字体。

无论是从应用程序还是从 JAVA 文件调用报表,结果都相同。

经过一番研究,我找到了第二种方法

JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", "C:\\Gujrati-Saral-1.ttf");

这将把pdf的字体设置为提供的ttf字体,但现在整个pdf都以古吉拉特语Saral字体显示,这不是我要找的。

是否有一种方法只将此字体应用于特定字段?

或者

按照第二种方法时,是否有一种方法可以仅对所需字段应用字体Guarati-saral,而不将其应用于所有其他字段?


1
你使用了字体扩展吗? - Alex K
@Alex K 我不确定如何使用它们...所以我不认为我已经使用过它们。那会有帮助吗?我该如何在我的文件中包含它们..? - Sangeet Menon
您可以阅读此文章:http://jasperforge.org/uploads/publish/jasperreportswebsite/trunk/sample.reference/fonts/index.html#fontextensions - Alex K
你的字体jar文件是否在类路径中? - Alex K
当您使用iReport导出报告到PDF时,一切是否正常? - Alex K
显示剩余7条评论
4个回答

27
你应该使用Font Extensions机制。
创建字体并将其导出为一个jar文件后,你需要将生成的jar文件添加到应用程序类路径中。

a) 在 iReport 中创建新字体(通过选项 -> 字体 -> "安装字体" 按钮)

Creating the new font descriptor in iReport

b) 将新字体(或现有字体)导出为jar文件 (在iReport中通过选项 -> 字体 -> "导出扩展" 按钮)

enter image description here

a) 在 JasperReports Studio 中创建新字体 (通过窗口 -> 首选项 -> JasperStudio -> 字体 -> "添加" 按钮)

b) 配置你的字体

Exporting font as jar file

c) 创建包含你的字体的JAR文件

Export Font Jar enter image description here 您可以在这里找到更多关于使用Font Extensions的信息。

我搞砸了编辑,链接有点混乱。你能修复一下吗?它试图通过在Jaspersoft Studio中添加截图来更加现代化。 - Nicholas DiPiazza
原始问题是关于使用iReport的:),我也有一个关于在Jaspersoft Studio中使用字体的答案(https://dev59.com/lGIk5IYBdhLWcg3we-L5#19234053)。 - Alex K
Mac 版本没有这个选项 -> 字体选项。我该怎么解决? - L-Samuels
看起来像是一个 bug。很抱歉,我没有 Mac 来检查。你尝试使用 JSS(Jaspersoft Studio)了吗? - Alex K

0

对于那些需要在Jasper Reports中使用俄语(至少在旧版本的opennms中),以下组合可以解决问题,而无需使用字体扩展:

字体名称:SanSerif PDF字体:Courier PDF编码:CP1251 PDF嵌入式:是(不确定,可能甚至不需要)

Alexey Bakhmutov


0
如果在pdf中显示UTF-8字符时遇到问题, 从IReport的4.8.0版本开始,无需进行任何操作! 只需将表格中单元格的字体从sanserif更改为Dejavu sans即可。 就这样。

-1

选择字段并转到字段属性,更改以下内容:

  1. 选择DejaVu Sans作为字体名称
  2. 将PDF编码选择为CP1256(阿拉伯语)
  3. 将PDF字体名称选择为Courier

通过这些更改,我成功在PDF中显示了阿拉伯数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接