2012-05-04 61 views
13

我是新來渲染android中的文件,並且我想在我的應用程序中呈現或顯示一個docx文件。如何顯示或讀取docx文件

我已經從docx文件中提取文本,但現在我想從docx文件中提取圖像。

我發現了幾種在純Java中顯示圖像的方法,但是有沒有Android的好例子?

我嘗試這樣的代碼來獲取圖像,但沒有工作...

public void extractImages(Document xmlDoc) 
{ 
    NodeList binDataList = xmlDoc.getElementsByTagName("w:drawings"); 
    String fileName = ""; 
    Node currentNode; 
    for(int i = 0; i < binDataList.getLength(); i++) 
    { 
     currentNode = binDataList.item(i); 
     if(currentNode.getNodeType() == Node.ELEMENT_NODE && ((Element)currentNode).hasAttribute("w:name")) 
     {    
      File newImageFile = new File(picDirectory, ((Element)currentNode).getAttribute("w:name").replaceFirst("wordml://", "")); 
      if(newImageFile.exists()) 
      { 

      } 
      else 
      { 
       if(writeImage(newImageFile, currentNode)) 
       { 
        //Print some success message 
       } 
      } 
     } 
    } 
+0

您是否在尋找文件比較?我有同樣的問題! http://stackoverflow.com/questions/13411678/docx4j-giving-wrong-result –

回答

8

看一看AndroidDocxToHtml,我用做演示Android上的docx4j。

一些注意事項。

首先,該項目不包括所有的docx4j依賴項,只包括docx到HTML轉換所需的依賴項。所以如果你想做其他事情,你可能需要其他的依賴。

其次,docx4j需要JAXB - 請參閱this blog post re JAXB on Android - 應用程序啓動時的JAXB上下文init需要一段時間,具體取決於設備。有辦法解決這個問題,但需要額外的努力。

如果您只想提取圖像,並且不關心它們與文本的關係,那麼您只需查找圖像部分即可。您可以使用OpenXML4J來避免JAXB。

5

創建Android中的圖像最簡單的方法是使用BitmapFactory工廠方法。

BitmapFactory類具有從字節數組,文件或InputStream創建Bitmap的方法。

一旦你有一個Bitmap對象,你可以在你的佈局中使用setImageBitmap方法在ImageView上設置它來顯示它。

+0

這件事是我如何從docx文件中獲取圖像我知道如何顯示和轉換我想要如何獲取或提取來自docx文件的圖像....... – SilentKiller

+0

您需要找到一個可以讀取.docx文件的庫。我從來沒有必須這樣做,但任何像樣的圖書館都應該提供一種從文件中提取圖像數據的方法。我建議嘗試谷歌:http://goo.gl/Bcw8e – twaddington

6

您只需解壓文件(重命名爲.zip並打開它),那麼你可以調查的文件夾結構,其中圖像位於等

+0

我已經解壓縮並獲取所有圖像,但我想要他們在各自的方式,如.. 1.文本 2.圖片,然後再次以這種方式文本..... – SilentKiller

+0

我丟失了電子郵件。 聊天不見了.. – Priyanka

相關問題