编程语言
首页 > 编程语言> > 如何使用java中的DOCX4J将图像放在Word(.docx)文件中的某个位置

如何使用java中的DOCX4J将图像放在Word(.docx)文件中的某个位置

作者:互联网

我要求我有一个Word(.DOCX)文件.通过使用java程序,我需要使用DOCX4J将图像放在文档中的某个位置.谁能帮帮我吗!!!

我正在尝试使用以下代码…

 final String XPATH = "//w:t";
String image_Path = "D:\\Temp\\ex.png";
String template_Path = "D:\\Temp\\example.docx";

WordprocessingMLPackage  package =  WordprocessingMLPackage.createPackage();
List texts = package.getMainDocumentPart().getJAXBNodesViaXPath(XPATH, true);
for (Object obj : texts) {
  Text text = (Text) ((JAXBElement) obj).getValue();

  ObjectFactory factory = new ObjectFactory();         
  P paragraph = factory.createP();         
  R run = factory.createR();         
  paragraph.getContent().add(run);         
  Drawing drawing = factory.createDrawing();         
  run.getContent().add(drawing);         
  drawing.getAnchorOrInline().add(image_Path); 
  package.getMainDocumentPart().addObject(paragraph);
  package.save(new java.io.File("D:\\Temp\\example.docx"));here

解决方法:

您只是使用该代码将图像附加到文档的末尾.如果您需要在文档中的某个位置,您需要处理在哪里(例如,您可以使用MainDocumentPart.getJAXBNodesViaXPath()找到特定的P节点),然后只需在该索引处插入新内容’在文件中如此:

package.getMainDocumentPart().getContent().add(index, imageParagraph);

(你可以通过使用像MainDocumentPart.getContent().indexOf(oldParagraph)这样的东西来推导’index’的值,并且可能想要删除你找到的节点,这可以通过remove()调用来实现.

标签:java,ms-word,docx4j
来源: https://codeday.me/bug/20190625/1283989.html