使用 iReport 创建 pdf 时使用自定义字体

2022-09-02 13:02:04

i报告版本 : 3.7.1

我以两种方式处理了这个问题。

我的第一种方法

我正在创建一个页面,并且其中一个字段(来自数据库)设置为字体Gujarati-Salarl(印度区域语言的字体)。pdfiReport

此字体在 的字体列表中可用。当我点击预览时,我得到所需的输出,字段采用所需的字体样式。iReport

一直到这里都很好。

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

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

经过一些研究,我发现了这个,第二种方法

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

这将字体设置为提供的字体,但现在整个字体都采用瓜拉蒂 - 萨拉尔字体,这不是我正在寻找的。pdfttfpdf

有没有办法专门将此字体仅应用于该特定字段?

当使用第二种方法时,有没有办法不将Guarati-saral字体应用于除所需字段之外的所有其他字段?


答案 1

您应该使用该机制。Font Extensions

创建字体并将其导出为 jar 文件后,应将生成的 jar 文件添加到应用程序类路径中。

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

Creating the new font descriptor in iReport

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

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


答案 2

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


推荐