2012-05-04 23 views
13

Sono nuovo nel rendering di file in Android e voglio rendere o visualizzare un file docx nella mia applicazione.come mostrare o leggere il file docx

Avevo già estratto il testo dal file docx, ma ora voglio estrarre anche le immagini dal file docx.

Ho trovato diversi modi per visualizzare le immagini in puro Java, ma ci sono dei buoni esempi per Android?

ho provato questo codice per recuperare immagini, ma non funziona ...

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

Stai cercando il confronto dei file? Ho lo stesso problema! http://stackoverflow.com/questions/13411678/docx4j-giving-wrong-result –

risposta

8

Dai un'occhiata alla AndroidDocxToHtml, che ho fatto per dimostrare con docx4j su Android.

Un paio di avvertimenti.

In primo luogo, questo progetto non include tutte le dipendenze di docx4j, solo quelle necessarie per la conversione da docx a HTML. Quindi, se vuoi fare altre cose, potresti aver bisogno di altre dipendenze.

Secondo, docx4j richiede JAXB - vedere this blog post re JAXB on Android - e JAXB contesto init sull'avvio dell'app richiede un po 'a seconda del dispositivo. Ci sono modi per ovviare a questo, ma con uno sforzo extra.

Se tutto quello che vuoi fare è estrarre le immagini, e non ti interessa come si relazionano al testo, potresti semplicemente cercare le parti dell'immagine. È possibile utilizzare OpenXML4J per questo ed evitare JAXB.

5

Il modo più semplice per creare un'immagine in Android è quello di utilizzare i metodi di fabbrica BitmapFactory.

La classe BitmapFactory ha metodi per la creazione di Bitmap da una matrice di byte, un file o un InputStream.

Una volta che si dispone di un oggetto Bitmap è possibile visualizzarlo impostandolo su un ImageView nel proprio layout utilizzando il metodo setImageBitmap.

+0

la cosa è come posso ottenere le immagini dal file docx so che come mostrare e convertire voglio come ottenere o estrarre immagini dal file docx ....... – SilentKiller

+0

Dovresti trovare una libreria in grado di leggere i file .docx. Non ho mai dovuto farlo prima, ma qualsiasi libreria decente dovrebbe fornire un metodo per estrarre i dati dell'immagine dal file. Suggerirei di provare Google: http://goo.gl/Bcw8e – twaddington

6

Si può solo decomprimere il file (rinominare in .zip e aprirlo) allora si può studiare la struttura delle cartelle, dove si trovano le immagini ecc

+0

l'ho decompresso e ottenere tutte le immagini ma le voglio in modo rispettivo come .. 1. TEXT 2. Immagine quindi di nuovo testo in quel modo ..... – SilentKiller

+0

ho perso l'email. la chat è andata .. – Priyanka