使用WordML添加图像

问题描述:

我想使用WordML将图像添加到文档中。我使用xml作为来自http://www.codeproject.com/KB/office/WordML.aspx的jpg示例的基础。我设法编写了Java,它在文档中创建了这个确切的xml(wordML),但是当我尝试在MS Word 2007中打开生成的文件时,它说该文件无效或已损坏。使用WordML添加图像

为将无法打开该文档的XML是在这里:

http://pastebin.com/RNEkbvYG(原始XML) 很抱歉的长贴,这是我可以创建最短的例子中,在顶部的gumph的负荷和底部,但您可以清楚地看到中间的数据图像。

http://pastebin.com/download.php?i=RNEkbvYG

我将不胜感激,如果任何人都可以查看XML在上面的链接,看到(下载,从TXT到XML并以Word中打开重命名),如果他们能看到为什么它不会打开字。

<w:pict> 
      <w:binData w:name="wordml://02000001.jpg">/9j/4AA..Xof/9k=</w:binData> 
      <v:shape id="_x0000_i1025" style="width:100%;height:auto" type="#_x0000_t75"> 
       <v:imagedata o:title="network" src="wordml://02000001.jpg"/> 
      </v:shape> 
      </w:pict> 

是2003 WordML。 2007 docx格式/ ECMA标准中没有w:binData元素。

你可以尝试docx4j代替:-)

http://dev.plutext.org/svn/docx4j/trunk/docx4j/src/main/java/org/docx4j/samples/AddImage.java

+0

非常感谢了,我现在已经得到了我的文档:) 现在我有另一个问题的图像,我有一个文件,我加载并想用图像替换特定的文本位。我看了一下api,找不到类似findAnElementById类型方法的方法,甚至遍历所有元素并手动搜索文本(这就是我们如何使用w3c Document类完成直接文本替换)。这些类型的方法是否可用,或者是否有更简单的方法来说明将此文字替换为此图像? 谢谢 Daniel Lees – Leesy 2011-03-24 15:23:16

+1

没有findAnElementById,因为docx中的段落通常没有ID。您可以使用getJAXBNodesViaXPath,或者您可以考虑使用图片内容控件。看例如http://dev.plutext.org/forums/viewtopic.php?f=16&t=634 – JasonPlutext 2011-03-24 20:33:57

+0

我已经设法找到我想要使用getJAXBNodesViaXPath的元素,我有一个文本元素,它的照片值。我现在想在文本所在的位置添加照片,我的想法是将当前的文本设置为“”以删除文本照片,然后获取文本节点的父级并将照片添加到父级。我正在尝试做什么? (一世 – Leesy 2011-03-25 10:51:31