最近在搞一个app接口,我负责后端开发,需求是将前台传入的json数据生成pdf文件。这里我用iReport4.0,以前没有接触过,刚开始也是一脸懵逼,网上找了好多例子,但是他们都是连接数据库或者使用JavaBean,无数据源的很少,下面是我的开发步骤。
首先新建File,如果是横向的纸张就选第二个,这里我选第一个,然后点Launch Report Wizard进行下一步,
这里我的Report name是test,命名和路径根据自己需求写,然后下一步
因为我们创建的是无数据源的,所以这里选择Empty datasource,然后下一步,剩下的都默认,此时我们的.jxml文件创建完成。
下面是创建好之后的样子,左边框中是各种属性,其中我用到的有Style,Parameters和Fields这三个,右边框中就是各种面板了,需要哪些直接将其拖拽到正文中就行。
此时将右边框中的Static Text拖拽到Title上,调整框大小和字体大小格式,这就是生成pdf的标题了
Static Text为文本框,Text Field可以设置变量,如下图,$P{bm} 为参数,此时要将其添加到Parameters,name为bm(即变量的名称),$F{xm}是循环的部分,也要添加到Parameters,同时添加到Fileds,名称都为xm(也是变量的名称)。如果要设置边框可以选中后右键,在Padding And Borders中设置边框宽度。
Style是样式,当传入有中文的时候会乱码,此时我们就要新增样式了。具体设置参考ireport中文不显示和乱码的处理 - CSDN博客。
一张简单的报表已经建立好了,保存好点击编译,生成jasper文件。
如果有错误,在工具——》report problem和report output查找错误。当生成.jasper文件后,就可以在java中将数据填充,生成pdf文件了。