本文主要是介绍poi-tl循环放图片+文字说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这几天有个任务,服务端导出word要求从数据库取到多张图片,然后输出到word中,并且说明一共几张,当前是第几张。
网上翻了很久也没有找到示例,不过最终难题还是得到了攻克。
因为之前的代码是有一个导出的map,暂且叫resultMap
,resultMap
中又有一个对象,这里暂且叫exportObj
,我们要加的图片和文字说明都要加在这个exportObj
里面。
怎么获取图片就不说了,各个系统肯定是不一样的,假设已经获取到了图片的url,然后后续代码如下:
// imgUrlList为图片的url集合
// 声明一个存放图片和说明map的list
List<Map<String, Object>> images = Lists.newArrayList();
// 遍历图片url
for (int i = 0; i < imgUrlList.size(); i++) {// 声明一个存放一对图片+说明的mapMap<String, Object> imageMap = Maps.newHashMap();// 图片放入map,图片类型自行修改imageMap.put("imageUrl", Pictures.ofUrl(imgUrlList.get(i), PictureType.PNG).center().fitSize().create());// 说明放入mapimageMap.put("text", "共" + imgUrlList.size() + "张图片,当前为第" + (i + 1) + "张");// map放入listimages.add(imageMap);
}
// list放入导出对象
exportObj.setImages(images);
// 导出对象放入最终的结果map
resultMap.put("exportObj", exportObj);
resultMap.put("otherData", ……);
代码这块就完成了,然后模板的配置如下:
{{?exportObj.images}}
{{@imageUrl}}
{{text}}
{{/exportObj.images}}
这样就搞定了。
附上poi-tl的pom依赖:
<dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.10.0</version>
</dependency>
这篇关于poi-tl循环放图片+文字说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!