使用iReport创buildPDF时使用自定义字体

iReport版本:3.7.1

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

我的第一个方法

我正在iReport创build一个pdf页面,我有一个字段(从数据库)设置为字体古吉拉特语 – Salarl (印度的区域语言字体)。

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

一切都在这里很好。

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

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

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

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

这将pdf的字体设置为提供的ttf字体,但是现在整个pdf都是Guarati-saral字体,这不是我正在寻找的。

有没有一种方法可以将这种字体专门应用于特定的字段?

要么

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

您应该使用Font Extensions机制。

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

a)在iReport中创build新的字体(通过选项 – >字体 – >“安装字体”button)

在iReport中创建新的字体描述符

b)导出新的字体(或现有的)作为iReport中的jar文件(通过选项 – >字体 – >“导出为扩展名”button)

在这里输入图像描述

a)在JasperReports Studio中创build新的字体(通过窗口 – >首选项 – > JasperStudio – >字体 – >“添加”button)

b)configuration你的字体

将字体导出为jar文件

c)用你的字体创buildJAR

导出字体罐子

在这里输入图像描述

您可以在这里find更多关于使用Font Extensions 信息 。

如果你在使用IReport的4.8.0版本的pdf中显示UTF-8字符时出现问题,不需要做任何事情! 只需将表格中的单元格的字体从sanserif更改为Dejavu sans即可。 而已。

select该字段并转到提交的属性并更改

  1. selectDejaVu Sans作为字体名称
  2. selectPDF编码到CP1256(阿拉伯语)
  3. selectpdf字体名称给Courier

随着这些变化,我得到了PDF格式的阿拉伯数据。

对于那些在Jasper Reports中需要俄语的人(至less在旧版本的opennms中),下面的组合可以不使用Font Extension:

字体名称:SanSerif PDF字体名称:Courier PDF编码:CP1251 PDFembedded式:是(不清楚,可能工作即使没有)

阿列克谢Bakhmutov