2014-05-13 6 views
5

potremmo convertire documenti Microsoft Office (doc, docx, ppt, pptx, xls, xlsx, ecc.) In una stringa html in Android. ho bisogno di mostrare documenti di ufficio nella mia app. ho cercato e trovato docx4j, apache poi e http://angelozerr.wordpress.com/2012/12/06/how-to-convert-docxodt-to-pdfhtml-with-java/ per convertire i file in html. questo approccio sta funzionando bene nella versione desktop. ma quando uso in Android sto ottenendo "Impossibile convertire in Dalvik formato errore 1". che potrebbe essere dovuto all'utilizzo di un numero eccessivo di giare nel mio progetto Android. voglio sapere c'è un unico modo da cui converto documento di ufficio in html in Android. scusate per l'inglese.Come convertire i documenti dell'ufficio in html in Android

EDIT

sono ora in grado di convertire doc in html utilizzando apache poi. qui è il metodo

public void showsimpleWord() { 
    File file = new File("/sdcard/test.doc"); 

    HWPFDocumentCore wordDocument = null; 
    try { 
     wordDocument = WordToHtmlUtils.loadDoc(new FileInputStream(file)); 
    } catch (Exception e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    WordToHtmlConverter wordToHtmlConverter = null; 
    try { 
     wordToHtmlConverter = new WordToHtmlConverter(
       DocumentBuilderFactory.newInstance().newDocumentBuilder() 
         .newDocument()); 
     wordToHtmlConverter.processDocument(wordDocument); 
     org.w3c.dom.Document htmlDocument = wordToHtmlConverter 
       .getDocument(); 
     ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     DOMSource domSource = new DOMSource(htmlDocument); 
     StreamResult streamResult = new StreamResult(out); 
     TransformerFactory tf = TransformerFactory.newInstance(); 
     Transformer serializer = tf.newTransformer(); 
     serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); 
     serializer.setOutputProperty(OutputKeys.INDENT, "yes"); 
     serializer.setOutputProperty(OutputKeys.METHOD, "html"); 
     serializer.transform(domSource, streamResult); 
     out.close(); 
     String result = new String(out.toByteArray()); 
     System.out.println(result); 
     ((WebView) findViewById(R.id.webview)).loadData(result, 
       "text/html", "utf-8"); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

ora alla ricerca di altri.

+2

è necessario farlo dal lato del dispositivo? Forse sarebbe meglio usare un server per fare queste conversioni? –

+0

@RafaelOsipov no se usiamo il server per questo. la nostra app dipenderà dalla connessione internet. –

+0

in questo caso implementare il motore di conversione sul server utilizzando il POI Apache e il dispositivo invierà solo documenti al server e riceverà i risultati della conversione. –

risposta

2

Mentre è sicuramente possibile convertire un documento word in HTML sul dispositivo Android stesso, come altri hanno menzionato, non è consigliabile a causa di una serie di problemi. (vale a dire la potenza di elaborazione limitata e la memoria di un androide, nonché problemi di compatibilità con la maggior parte delle librerie progettate per gestire i file di MS Office) Come tutti hanno menzionato, sarebbe preferibile fare il lato server di conversione. Detto questo, se non c'è davvero alcun modo possibile data la tua situazione, potresti voler dare un'occhiata a this stackoverflow question.

Il asker sembra avere un problema simile al tuo. (dato che capisco correttamente la tua domanda) Il poster risponde alla loro stessa domanda attraverso la discussione e fornisce un link alla sua fonte nel commento alla sua risposta. Usa la libreria POI di Apachi nella sua soluzione, ma suddivide la libreria in diversi file DEX più piccoli (uno per ciascun componente della libreria) in modo che giochi bene con Android.

Spero che sia stato utile!