public static void main(String[] args) throws Exception {
// 模板文件路径
String tempPath="E:\\abc.docx";
//生成文件路径
String targetPath="E:\\abcd.docx";
//书签
String bookMark="you";
//图片路径
String imagePath="E:\\image.JPG";
WordprocessingMLPackage wPackage=WordprocessingMLPackage.load(new FileInputStream(tempPath));
MainDocumentPart mainDocumentPart = wPackage.getMainDocumentPart();
Document wmlDoc = (Document) mainDocumentPart.getJaxbElement();
Body body=wmlDoc.getBody();
List<Object> para=body.getContent();
// 提取书签并创建书签的游标
RangeFinder rf=new RangeFinder("CTBookmark", "CTMarkupRange");
new TraversalUtil(para,rf);
//遍历书签
for (CTBookmark bm:rf.getStarts()) {
if(bm.getName().equals(bookMark)){
InputStream is=new FileInputStream(imagePath);
byte[] bytes=IOUtils.toByteArray(is);
BinaryPartAbstractImage imagePart=BinaryPartAbstractImage.createImagePart(wPackage, bytes);
Inline inline=imagePart.createImageInline(null, null, 0, 1, false, 800);
P p=(P) bm.getParent();
ObjectFactory factory=new ObjectFactory();
R run=factory.createR();
Drawing drawing=factory.createDrawing();
drawing.getAnchorOrInline().add(inline);
run.getContent().add(drawing);
p.getContent().add(run);
}
}
wPackage.save(new FileOutputStream(targetPath));
}
这是代码,运行没报错,但是图片总是插在word文档的末尾,而没有插入到我定义的书签那里,怎么回事,急急急!!!!!!!!!
试试xdoc,这个比较容易,http://www.xdocin.com
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。