java 写word插图片不显示_java在word(*.docx)指定地点插入图片

本文介绍了如何使用Java的docx4j库在已存在的.docx文档指定位置插入图片。首先在word模板添加书签作为定位,然后通过docx4j找到书签并插入图片。代码示例详细展示了实现过程。
摘要由CSDN通过智能技术生成

最近因为一个项目需要在已经存在的word模板的指定地点插入图片,而且项目采用的是java,然而我对Java并不太熟,网上的资料大多是在生成模板的时候添加图片,我折腾了挺久才解决这个问题,在此记录下来。

微软在MS Office 2007之后开始推出了.docx格式的word文档,推行ooxml(office open xml),也就是结合zip技术和xml技术来存储word文档。对docx文档进行操作本质上就是对xml文件在进行操作,这样思路要清晰一点。百度发现大多数资料都是采用POI,然而又有人说POI在插入图片的时候有bug,于是换google,发现了一个叫docx4j的包,但是中文资料较少,作为一个大学四级都考了N次的人来说(泪目)。。。

jdk版本:1.8

docx4j版本:3.3.1

MS Office版本:MS Office 2016 for mac

思路

首先在word模板中需要添加图片的地方添加书签,这个书签就作为定位的依据。

然后在java中找到这个书签,一般来说书签都是处于一个段落中,然后找到这个书签的父级段落,把图片加入到这个段落中就可以了。

代码

public static void main(String[] args) throws Exception {

// 模板文件路径

String templatePath = "template.docx";

// 生成的文件路径

String targetPath = "target.docx";

// 书签名

Strin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值