könnten wir Microsoft Office-Dokumente (doc, docx, ppt, pptx, xls, xlsx, etc.) in HTML-Zeichenfolge in Android konvertieren. Ich muss Office-Dokumente in meiner App zeigen. Ich habe gesucht und docx4j, apache poi und http://angelozerr.wordpress.com/2012/12/06/how-to-convert-docxodt-to-pdfhtml-with-java/ gefunden, um Dateien in HTML zu konvertieren. Dieser Ansatz funktioniert in der Desktop-Version. aber wenn ich in android benutze, bekomme ich "Konnte in Dalvik-Format Fehler 1 nicht umwandeln". was möglicherweise daran liegt, zu viele Gläser in meinem Android-Projekt zu verwenden. Ich möchte wissen, gibt es einen einzigen Weg, aus dem ich Office-Dokument in HTML in Android konvertieren. Entschuldigung für Englisch.Wie Office-Dokumente in HTML in Android konvertieren
EDIT
ich bin jetzt in der Lage doc zu konvertieren mit Apache POI html. hier ist Methode
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();
}
}
jetzt anderer Benutzer.
ist es notwendig, dies auf der Geräteseite zu tun? Vielleicht wäre es besser, einen Server für diese Konvertierungen zu verwenden? –
@RafaelOsipov Nein, wenn wir Server dafür verwenden. Unsere App wird auf die Internetverbindung angewiesen sein. –
Implementieren Sie in diesem Fall die Konvertierungs-Engine auf dem Server mit Apache POI, und das Gerät sendet nur Dokumente an den Server und empfängt die Konvertierungsergebnisse. –