1、在PDF Font name下就只有STSong-Light可用,而且加粗、斜体等效果在pdf中都无效。
2、要正确显示中文,关键是两点,一个是正确的编码方法,一个是有可用的字体。
所以在ireport中,应设置PDF Encoding为UniGB-UCS2-H (Chinese Simplified)。使用这个编码方式的话,在classpath中必须包含iTextAsian.jar这个亚洲语言包。
其次要设置PDF Font Name为STSong-Light,同样需要该包。但这里会有一个问题,就是如果在ireport中设置了粗体或者斜体,则生成的PDF中不会体现出来。这是因为上面的字体只能显示普通宋体,而粗体等需要对应的粗体宋体字,这个在iTextAsian中没有给出。
这样设置就可以正常显示中文报表。以上仅限于PDF中的显示,在HTML或XLS中没有这个问题,只要编码方式对,即可。
3、文字框中Font选项卡字体选择是成套的才能正确显示:
[1] Font Name:选 宋体
PDF Font Name:选 STSong-Light
最后 PDF Encoding:选 UniGB-UCS2-H (Chinese Simplified)
[2] 引用外部字体如隶书
将字体文件放入iReport安装目录的fonts文件夹下如隶书[D:\iReport-3.0.0\fonts\SIMLI.TTF]
Font Name:选 隶书
PDF Font Name:选外部字体文件 隶书 (SIMLI.TTF)
最后 PDF Encoding:选 Identity-H (Unicode with horizontal writing)[是外部文件都选它]
4、如果没有数据时:后面的下拉菜单中的几个选项的意思分别是:
No pages [当Detail中没有数据时没有页显示]
Blank page [当Detail中没有数据时出现一个空白页面]
All sections,no detail [当Detail中没有数据时会显示detail以外的东西]
No-date section [] 暂时我也不知道
5、.设置动态属性
1.右键 style-->添加-->style
2.选中当前的style,在属性面板更改其属性
name:style的名字
default style: 是否默认的style,如果选中的话则此style将做为默认的style。界面上的元素如果没有设置属性和上style属性没有设置为其它style时,则会默认按照default style设置该元素的属性。当有多个style存在时,只能又一个默认的style。
opaque:设置透明度。
其它的属性和设置field的属性一样。
3.右键 当前的style-->添加 conditional style
4.选中新建的conditional style,在属性面板中更改其属性
condition expression : 设置conditional style“工作”的条件,这个属性最重要,其它的属性和设置style的属性相同。
比如现在根据row_level(等级)设置是否应用当前的conditional style:
condition expression 的值:new Boolean($F{row_level}==1)或 $F{row_level}==1?new Boolean(true):new Boolean(false)
JDK1.5及以上的版本也可以这么写:$F{row_level}==1 或 $F{row_level}==1?true:false
评论