2014-05-13 16 views
5

chúng tôi có thể chuyển đổi tài liệu văn phòng microsoft (doc, docx, ppt, pptx, xls, xlsx, v.v.) thành chuỗi html trong Android hay không. tôi cần hiển thị tài liệu văn phòng trong ứng dụng của mình. tôi đã tìm kiếm và tìm thấy docx4j, apache poi và http://angelozerr.wordpress.com/2012/12/06/how-to-convert-docxodt-to-pdfhtml-with-java/ để chuyển đổi tệp bằng html. phương pháp này hoạt động tốt trong phiên bản dành cho máy tính để bàn. nhưng khi sử dụng trong android tôi nhận được "Không thể chuyển đổi trong định dạng Dalvik lỗi 1". có thể là do sử dụng quá nhiều lọ trong dự án android của tôi. tôi muốn biết là có một cách duy nhất mà từ đó tôi chuyển đổi tài liệu văn phòng sang html trong android. xin lỗi vì tiếng anh.Cách chuyển đổi tài liệu văn phòng thành html trong android

EDIT

tôi bây giờ là có thể chuyển đổi doc html sử dụng Apache POI. đây là phương pháp

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(); 
    } 
} 

hiện đang tìm kiếm những người khác.

+2

là cần thiết để làm điều đó ở phía thiết bị? Có lẽ sẽ tốt hơn nếu sử dụng máy chủ để thực hiện các chuyển đổi này? –

+0

@RafaelOsipov không nếu chúng tôi sử dụng máy chủ cho nó. ứng dụng của chúng tôi sẽ phụ thuộc vào kết nối internet. –

+0

trong trường hợp này triển khai công cụ chuyển đổi trên máy chủ bằng cách sử dụng Apache POI và thiết bị sẽ chỉ gửi tài liệu tới máy chủ và nhận kết quả chuyển đổi. –

Trả lời

2

Mặc dù chắc chắn có thể chuyển đổi tài liệu từ sang HTML trên thiết bị Android, như những điều khác có đề cập đến, nó không được khuyến khích do một loạt các vấn đề. (cụ thể là sức mạnh xử lý giới hạn, và bộ nhớ của một android, cũng như các vấn đề về tính tương thích với phần lớn các thư viện được thiết kế để xử lý các tệp MS Office) Vì tất cả chúng đều đề cập đến việc thực hiện phía máy chủ chuyển đổi. Điều đó nói rằng, nếu thực sự không có cách nào có thể cho tình huống của bạn, bạn có thể muốn xem this stackoverflow question.

Yêu cầu xóa dường như có vấn đề tương tự với của bạn. (cho rằng tôi hiểu câu hỏi của bạn một cách chính xác) Các poster trả lời câu hỏi của họ partway thông qua các cuộc thảo luận, và cung cấp một liên kết đến nguồn của mình trong các bình luận cho câu trả lời của riêng mình. Ông sử dụng thư viện Apachi POI trong giải pháp của mình, nhưng phá vỡ thư viện thành nhiều tệp DEX nhỏ hơn (một cho mỗi thành phần của thư viện) để nó phát độc đáo với android.

Hy vọng điều đó hữu ích!

Các vấn đề liên quan