src:docx文档路径
codePNGpath:图片路径
dest:docx写出路径
aaa:书签名
try {
InputStream inputStream = new FileInputStream(src);
XWPFDocument document = new XWPFDocument(inputStream);
List paragraphList = document.getParagraphs();
for(XWPFParagraph xwpfParagraph:paragraphList){
CTP ctp = xwpfParagraph.getCTP();
for(int dwI = 0;dwI < ctp.sizeOfBookmarkStartArray();dwI++){
CTBookmark bookmark = ctp.getBookmarkStartArray(dwI);
if(“aaa(书签名称)”.equals(bookmark.getName())){
XWPFRun run = xwpfParagraph.createRun();
Node firstNode = bookmark.getDomNode();
Node nextNode = firstNode.getNextSibling();
XWPFRun runimg =xwpfParagraph.createRun();
File file=new File(codePNGpath);
FileInputStream in=new FileInputStream(file);
BufferedImage image=ImageIO.read(file);
runimg.addPicture(in, org.apache.poi.xwpf.usermodel.Document.PICTURE_TYPE_PNG, “”,
Units.toEMU(image.getWidth()), Units.toEMU(image.getHeight()));
ctp.getDomNode().insertBefore(runimg.getCTR().getDomNode(),firstNode);
in.close();
FileOutputStream fos = new FileOutputStream(dest);
document.write(fos);
fos.close();
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
logger.error(“在word上添加图片出错”);
}