如何使用Java POI使Word文档中的图片设置为上下型环绕布局?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2046个文字,预计阅读时间需要9分钟。
问题描述:在使用POI-TL Word模板工具生成文档时,发现生成的文档中,图片格式为嵌入式,部分图片甚至被表格遮挡一半。而我希望的图片格式为上下环绕,且图片需要居中。
问题分析:由于图片格式和位置设置不当,导致图片在文档中显示不理想。需要调整图片格式和位置,以满足需求。
问题描述
在使用poi-tl word模版工具时,发现生成的文档中,图片格式为嵌入型,有的图片甚至被表格遮挡一半。而自己想要的图片格式为上下型环绕,并且图片需要居中。
问题分析
poi-tl渲染图片,使用的是org.apache.poi.xwpf.usermodel.XWPFRun的addPicture方法,该方法中有一段代码:CTInline inline = drawing.addNewInline();意思就是默认将图片转为inline类型,即行内元素。
然后我们把生成的嵌入型图片的文档转换成xml文件,然后再新建一个文档,插入图片后,设置图片为上下型环绕,保存为另一个xml,比较下两个xml的区别。嵌入型图片的xml是:
上下型环绕的图片的xml是
我们看到两种格式的图片标签分别为inline和anchor。所以如果我们想把图片设置为上下型环绕,需要重写poi的addPicture方法,把图片转为anchor类型。
本文共计2046个文字,预计阅读时间需要9分钟。
问题描述:在使用POI-TL Word模板工具生成文档时,发现生成的文档中,图片格式为嵌入式,部分图片甚至被表格遮挡一半。而我希望的图片格式为上下环绕,且图片需要居中。
问题分析:由于图片格式和位置设置不当,导致图片在文档中显示不理想。需要调整图片格式和位置,以满足需求。
问题描述
在使用poi-tl word模版工具时,发现生成的文档中,图片格式为嵌入型,有的图片甚至被表格遮挡一半。而自己想要的图片格式为上下型环绕,并且图片需要居中。
问题分析
poi-tl渲染图片,使用的是org.apache.poi.xwpf.usermodel.XWPFRun的addPicture方法,该方法中有一段代码:CTInline inline = drawing.addNewInline();意思就是默认将图片转为inline类型,即行内元素。
然后我们把生成的嵌入型图片的文档转换成xml文件,然后再新建一个文档,插入图片后,设置图片为上下型环绕,保存为另一个xml,比较下两个xml的区别。嵌入型图片的xml是:
上下型环绕的图片的xml是
我们看到两种格式的图片标签分别为inline和anchor。所以如果我们想把图片设置为上下型环绕,需要重写poi的addPicture方法,把图片转为anchor类型。

