使用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)
b)导出新的字体(或现有的)作为iReport中的jar文件(通过选项 – >字体 – >“导出为扩展名”button)
a)在JasperReports Studio中创build新的字体(通过窗口 – >首选项 – > JasperStudio – >字体 – >“添加”button)
b)configuration你的字体
c)用你的字体创buildJAR
您可以在这里find更多关于使用Font Extensions
信息 。
如果你在使用IReport的4.8.0版本的pdf中显示UTF-8字符时出现问题,不需要做任何事情! 只需将表格中的单元格的字体从sanserif更改为Dejavu sans即可。 而已。
select该字段并转到提交的属性并更改
- selectDejaVu Sans作为字体名称
- selectPDF编码到CP1256(阿拉伯语)
- selectpdf字体名称给Courier
随着这些变化,我得到了PDF格式的阿拉伯数据。
对于那些在Jasper Reports中需要俄语的人(至less在旧版本的opennms中),下面的组合可以不使用Font Extension:
字体名称:SanSerif PDF字体名称:Courier PDF编码:CP1251 PDFembedded式:是(不清楚,可能工作即使没有)
阿列克谢Bakhmutov