java导出pdf报告之五:poi-tl的使用-图片模版和列表模版

对于图片模版和列表模版相对就简单了,可以参考帮助文档,下边我也只做简单的介绍了

对于文档中的饼状图、柱状图,我是在导入数据的时候,直接根据数据生成了相应的图片,然后保存在文件服务器,并把路径保存到数据库中

图片模版:{{@var}}

BufferedImage picture = ImageIO.read(new FileInputStream(picturePath)); //获取图片对象
//设置图片的大小为原图的3/4
reportDatas.put("intestinal_pattern_result", new PictureRenderData(picture.getWidth() * 3 / 4, picture.getHeight() * 3 / 4, picturePath));  

列表模版:{{*var}}

刚开始考虑的参考文献那里使用列表模版的,但使用过程中发现poi-tl的列表模版,不能设置隐藏列表项前边的特殊符号(默认是圆点)。后来就退而求其次,将所有列表项拼成一段文字,每项之间使用\n进行分割

reportDatas.put("ReferenceList",getReferences(references));
//references 参考文献信息列表
private TextRenderData getReferences(List<ReportReference> list) {
        TextRenderData renderData = new TextRenderData();
        StringBuffer sb = new StringBuffer();
        for (ReportReference reportReference:list) {
            sb.append(reportReference.getContent()+"\n");
        }
        renderData.setText(sb.toString());
        return renderData;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
poi-tl是一个基于POIJava模板引擎,可以用于导出Word文档。在poi-tl中,可以使用foreach指令实现循环,并根据需要循环输出列表行和列。 在poi-tl中,可以将需要循环的数据存储在一个List对象中,然后使用foreach指令进行循环遍历。假设我们有一个List<RowData>对象,其中RowData是自定义的类,用于表示每一行的数据。RowData类中可以包含一些属性,代表每一行中的不同列。 首先,我们需要在Word模板中使用foreach指令,来循环输出列表行和列。可以使用标签${foreach items=listVar item=rowVar}和${end}将需要循环的部分包围起来。其中listVar是存储数据的List对象的名称,rowVar是循环过程中每一行数据的临时变量名。 然后,在foreach指令中,可以使用${rowVar.property}的方式获取每一行的属性值,来完成对列表行和列的输出。property代表RowData类中的某一个属性的名称。 最后,使用poi-tl提供的模板渲染引擎,将数据填充到Word模板中,生成目标Word文档。 综上所述,利用poi-tl可以很方便地循环输出列表行和列。首先需要准备好存储数据的List对象,并在Word模板中使用foreach指令进行循环遍历。然后,在循环过程中使用${rowVar.property}的方式获取每一行的属性值,完成对列表行和列的输出。最终,使用poi-tl提供的模板渲染引擎将数据填充到Word模板中,生成目标Word文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值