2011-03-23 81 views
1

我想使用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中打開重命名),如果他們能看到爲什麼它不會打開字。

回答

2
<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