ireport报表打印(2)

第一篇我简单介绍了一下我所知道的报表打印工具ireport,对于里面的组件面板和属性及一些设置及各个模块的作用简单的解释了一下,在第二篇中我会重点说一下我常用的一些组件,如下图所示:
这里写图片描述
这里写图片描述
1.组件Line
(1)使用方法,按住组件面板中的Line以后,进行拖拽,拖拽到你需要放置的模块。
(2)我们可以通过选中线条以后进行拖拽拉伸以及调整线条的横向或者纵向,此外我们选中线条后,也可以通过点击右侧的属性,通过left,top,height,width分别来设置线条距离左,顶的距离,及线条的高度和宽度
(3)graphic properties(画笔属性):点击pen你可以选择你需要的线条的粗度、线条的样式(实线或者虚线或者其他形式)及线条的颜色。
2.组件static text
(1)使用方法,与Line组件使用方法相同,进行拖拽
(2)对于static text的大小调整同样可以进行拖拽或者通过选中后的属性进行调整
(3)Text的属性做一下简单的解释:

  • font name:用来设置该static text的文本字体
  • size是用来设置字体的大小(注意:如果你的static text的高度和宽度小于你字体设置的大小,那么使用preview预览的时候,会显示一个空白框里面不存在内容,所以尽量在设置的时候将文本框的大小设置大于你的字体大小)
  • bold是用来设置字体是否加粗(目前我使用宋体加粗,但是打印预览是没有效果的,因此如果要达到加粗的效果,我会使用微软雅黑字体,这样就可以达到加粗的效果,切记你的私服上要有微软雅黑字体jar包)
  • italic:用来设置文本是斜体
  • UnderLine是用来给你的文本添加下划线的
  • strike through:是用来给你的文本添加中划线的
  • Horizontal Alignment:用来设置你的文本水平方向是右对齐,左对齐,居中或者是两端对齐,这个可以在任务栏来进行设置如下图所示
  • Vertical Alignment:用来设置文本在垂直方向靠上,靠下或者居中。
  • Rotation:用来设置文本是的方向,none,left,right,upside down
  • line space:用来设置行间距,其中有以下选项:single,1.5,double,at least,fixed,proportional
  • 其中这三处应该按照下方图片中的设置进行设置,STSong-Light;Pdf Embedded 选中,Pdf Encoding应该设置为UniGB-UCS2-H(Chinese Simplified)
    设置字体
    这里写图片描述
    3.组件TextField
    (1)使用方法如上两个组件,进行拖拽
    (2)TextField组件与Static Text的最大区别就是,它的值不是固定的,是动态显示的,而Static Text中的值是固定的文本内容,TextField中的内容是动态获取显示的。
    (3)对于TextField中的值显示,如果该值为NULL,则会先打印预览的PDF上面该位置处显示null,在实际开发中如果是null,我们是不需要显示null在预览界面的,此时有两种方法可以解决这个问题
    方法1:你可以在java代码里面进行处理,判断该属性值是否为NULL,如果为NULL,就设置该值为setValue(“”);这样界面就不会显示NULL
    方法2:你可以利用ireport报表工具,在选中该textfield后,你可以在属性中看到一个Blank When NULL,对其进行勾选,如果该textfield为null,那么你报表就会自动将null值替换为blank,就不会在界面显示null值。
    (4)如果你的内容大于该textfield的长度和宽度,文本显示不下的时候,那么该组件会自动进行截取,只会显示出能显示出来的文本
    (5)textfield组件会进行自动换行,前提就是当你的文本一行放不下时,组件的height足够高的情况下,它会自动从下一行开始显示其余的文本内容
    (6)textfield的$F{field}的名字必须和你的fields中的域名字相同,有时候,有人会忘记在Fields中添加field,那么此时就会报警告,内容如下图所示:Field not found:test
    这里写图片描述
    说明我们在Fields域中并不存在一个field中名为test的域,而且这个域的name必须要和你打印的实体后台vo中的属性名保持一致,否则会报错。
    (7)如果打印预览中的包含中文,我们就需要设置如下所示的属性,这样中文就可以在PDF中显示,否则你用ireport直接preview回显示中文,但是生成的pdf却不存在中文:
    这里写图片描述
    没有做上图中的设置,ireport中preview图和ireport生成的PDF显示图如下所示:
    这里写图片描述
    可以看出,当不设置上面三个属性的时候,中文在生成的PDF中是不会显示出来的。
    这里写图片描述 从上图中可以看出来,我们设置上面属性以后,并且字体用了微软雅黑(宋体),中文就显示出来了。