2012-05-04 10 views
13

ich bin neu beim rendering von dateien in android, und ich möchte eine docx-datei in meiner anwendung rendern oder anzeigen.wie docx datei anzeigen oder lesen

Ich hatte bereits Text aus der docx-Datei extrahiert, aber jetzt möchte ich auch Bilder aus der docx-Datei extrahieren.

Ich habe mehrere Möglichkeiten gefunden, Bilder in reinem Java anzuzeigen, aber gibt es gute Beispiele für Android?

habe ich versucht, diesen Code Bilder zu holen, aber nicht funktioniert ...

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

Suchen Sie einen Dateivergleich? Ich habe dasselbe Problem! http://Stackoverflow.com/questions/13411678/docx4j-giving-wrong-result –

Antwort

8

Werfen Sie einen Blick auf AndroidDocxToHtml, die ich zu zeigen, unter Verwendung docx4j auf Android.

Ein paar Vorbehalte.

Erstens enthält dieses Projekt nicht alle Abhängigkeiten von docx4j, nur die, die für die Konvertierung von docx in HTML benötigt werden. Wenn Sie also andere Dinge tun möchten, benötigen Sie möglicherweise andere Abhängigkeiten.

Zweitens, docx4j erfordert JAXB - siehe this blog post re JAXB on Android - und JAXB Context Init auf App Start dauert je nach Gerät eine Weile. Es gibt Möglichkeiten, dies zu umgehen, aber mit zusätzlichem Aufwand.

Wenn Sie nur die Bilder extrahieren möchten und es Ihnen egal ist, wie sie sich auf den Text beziehen, können Sie nur nach Bildteilen suchen. Sie könnten dafür OpenXML4J verwenden und JAXB vermeiden.

5

Der einfachste Weg, um ein Bild in Android zu erstellen, ist die BitmapFactory Factory-Methoden zu verwenden. Die Klasse BitmapFactory enthält Methoden zum Erstellen eines Bitmap aus einem Byte-Array, einer Datei oder einem InputStream.

Sobald Sie ein Bitmap Objekt haben, können Sie es anzeigen, indem Sie es auf einem ImageView in Ihrem Layout mit der Methode setImageBitmap setzen.

+0

die Sache ist, wie kann ich die Bilder aus der docx-Datei bekommen, die ich weiß, wie ich zeige und umwandeln möchte, wie man bekommt oder extrahieren Bilder aus der docx-Datei ....... – SilentKiller

+0

Sie müssten eine Bibliothek finden, die .docx-Dateien lesen kann. Ich musste das nie zuvor tun, aber jede anständige Bibliothek sollte eine Methode zum Extrahieren von Bilddaten aus der Datei bereitstellen. Ich würde vorschlagen, Google zu versuchen: http://goo.gl/Bcw8e – twaddington

6

Sie können einfach entpacken Sie die Datei (benennen Sie sie in .zip und öffnen), dann können Sie die Ordnerstruktur untersuchen, in dem die Bilder befinden usw.

+0

ich hatte es entzippt & alle Bilder bekommen, aber ich will sie in entsprechender Weise wie .. 1. TEXT 2. Image dann wieder Text auf diese Weise ..... – SilentKiller

+0

Ich verlor E-Mail. Chat ist weg .. – Priyanka

Verwandte Themen