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

Java 使用iReport创建pdf时使用自定义字体,java,pdf,jasper-reports,itext,ireport,Java,Pdf,Jasper Reports,Itext,Ireport,iReport版本:3.7.1 我用两种方法处理这个问题 我的第一种方法 我正在iReport中创建一个pdf页面,我将其中一个字段(来自数据库)设置为字体古吉拉特邦萨拉尔语(印度地区语言的字体) 此字体可在i报告的字体列表中找到。 当我点击preview时,我会得到所需的输出,字段的字体样式为所需 到这里一切都好 但是生成的pdf文件仍然包含相同的英文字符原始字体 无论是从应用程序还是从JAVA文件调用报告,结果都是一样的 经过一点研究,我发现这是第二种方法 这将pdf的字体设置为提供的ttf

iReport版本:3.7.1

我用两种方法处理这个问题

我的第一种方法

我正在
iReport
中创建一个
pdf
页面,我将其中一个字段(来自数据库)设置为字体古吉拉特邦萨拉尔语(印度地区语言的字体)

此字体可在
i报告
的字体列表中找到。 当我点击preview时,我会得到所需的输出,字段的字体样式为所需

到这里一切都好

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

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

经过一点研究,我发现这是第二种方法

这将
pdf
的字体设置为提供的
ttf
字体,但现在整个
pdf
都采用了Guarati saral字体,这不是我要找的

是否有一种方法专门将此字体应用于某个特定字段


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

您应该使用
字体扩展机制

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

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

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

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

b) 配置字体

c) 创建包含字体的JAR


如果在pdf中显示UTF-8字符时遇到问题,您可以找到有关使用
字体扩展名的详细信息,
从IReport的4.8.0版开始,无需执行任何操作!
只需将表中单元格的字体从sanserif更改为Dejavu sans即可。

就是这样。

选择字段,转到“字段属性”并更改

  • 选择DejaVu SAN作为字体名称
  • 选择Pdf编码至CP1256(阿拉伯语)
  • 选择要使用的pdf字体名称

  • 通过这些更改,我得到了以PDF格式显示的阿拉伯语数据。

    对于那些需要在Jasper Reports中使用俄语的人(至少在旧版本的opennms中),以下组合在不使用字体扩展名的情况下实现了这一目的:

    字体名称:SanSerif PDF字体:信使 PDF编码:CP1251 PDF Embedded:是(不确定,即使没有也可能有效)


    Alexey Bakhmutov

    您是否使用了
    字体扩展名
    ?@Alex K我不知道如何使用它们。。。所以我想我没有用过。那会有帮助吗?你可以阅读这篇文章:@Alex我从工具>选项>ireport添加了字体。pdf以所需的字体输出,但是当我从JAVA类调用相同的字体时,我没有显示字体。它打印原始字体。。这是什么原因呢?是不是(带有你字体的jar文件)在类路径中?我把混合链接的编辑搞砸了。你能修好它吗?它试图通过为jaspersoft Studiot提供屏幕截图来实现更现代化。最初的问题是关于使用iReport:)。我在Jaspersoft StuidoMac版本中使用了字体,但没有此选项->字体选项。我该怎么办?看起来像只虫子。对不起,我没有Mac要检查。您是否尝试使用JSS(Jaspersoft Studio)?
    JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", "C:\\Gujrati-Saral-1.ttf");