czy możemy konwertować dokumenty Microsoft Office (doc, docx, ppt, pptx, xls, xlsx itp.) Na ciągi html w systemie Android. Potrzebuję pokazywać dokumenty biurowe w mojej aplikacji. szukałem i znalazłem docx4j, apache poi i http://angelozerr.wordpress.com/2012/12/06/how-to-convert-docxodt-to-pdfhtml-with-java/ do konwersji plików w html. to podejście działa dobrze w wersji na komputery. ale podczas korzystania z Androida otrzymuję komunikat "Nie można dokonać konwersji w formacie 1 błędu Dalvik". co może być spowodowane używaniem zbyt dużej ilości słoików w moim androidowym projekcie. Chcę wiedzieć, czy istnieje jeden sposób, z którego konwertuję dokument biurowy na html w systemie Android. Przepraszam za angielski.Jak przekonwertować dokumenty biurowe na html w Androidzie
EDIT
jestem teraz w stanie konwertować doc do HTML za pomocą Apache POI. tutaj jest metoda
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();
}
}
teraz szukają innych.
czy to konieczne, aby zrobić to po stronie urządzenia? Może lepiej byłoby użyć serwera do tych konwersji? –
@RafaelOsipov nie, jeśli używamy do tego serwera. nasza aplikacja będzie zależna od połączenia internetowego. –
w tym przypadku implementuj silnik konwersji na serwerze przy użyciu Apache POI, a urządzenie będzie wysyłać tylko dokumenty na serwer i otrzymywać wyniki konwersji. –