我有一個web應用程序。我已經在服務器端以xml格式(Word 2003 XML文檔)生成了MS Word文檔。我需要使用某種查看器將此文檔顯示給客戶端的用戶。所以,問題是:我可以用什麼庫來解決這個問題?我需要一個API來使用java來查看客戶端上的word文檔。用java applet查看.doc文件
回答
您無法在使用Java(或任何其他簡單技術)的網頁中可靠地顯示Word文檔。有幾個商業圖書館用於渲染Word,但是您不會覺得這些是簡單,便宜或可靠的解決方案。
你應該做的是:
(1)使用.NET程序 (2)將文檔轉換爲使用Word發動機富文本打開Word引擎在服務器上 (3)顯示豐富的文本或者使用RTF格式的Swing控件,或轉換成HTML:
String rtf = [your document rich text];
BufferedReader input = new BufferedReader(new StringReader(rtf));
RTFEditorKit rtfKit = new RTFEditorKit();
StyledDocument doc = (StyledDocument) rtfKit.createDefaultDocument();
rtfEdtrKt.read(input, doc, 0);
input.close();
HTMLEditorKit htmlKit = new HTMLEditorKit();
StringWriter output = new StringWriter();
htmlKit.write(output, doc, 0, doc.getLength());
String html = output.toString();
在這種方法的主要風險是,字引擎要麼崩潰或有內存泄漏。出於這個原因,你必須有一個機制來定期重新啓動它並對其進行測試,以確保它正常工作,而不是佔用內存。
docx4all是一個基於Swing的小程序,它執行Word 2007 XML(即不是Word 2003 XML),這是我們幾年前寫的。
從svn得到它。
這是一種可能的編輯方法。如果你想要的只是一個查看器,而不是轉換爲HTML或PDF格式?你可以使用docx4j。 (披露:「我的」項目)。
如果我理解正確,docx4j可以通過applet查看xml doc文件嗎? – kant
是否可以使用jasperreport的JRViewer類查看Doc文件? – kant
docx4all applet使用docx4j查看/編輯docx文件 – JasonPlutext
您可能會看到Apache POI - Java API to Handle Microsoft Word Files,它能夠讀取各種文檔(分別爲OLE2和OOXML格式,.doc和.docx擴展名)。
讀取DOC文件可以很容易爲:
import java.io.*;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
public class ReadDocFile {
public static void main(String[] args) {
File file = null;
WordExtractor extractor = null ;
try {
file = new File("c:\\New.doc");
FileInputStream fis=new FileInputStream(file.getAbsolutePath());
HWPFDocument document=new HWPFDocument(fis);
extractor = new WordExtractor(document);
String [] fileData = extractor.getParagraphText();
for(int i=0;i<fileData.length;i++){
if(fileData[i] != null)
System.out.println(fileData[i]);
}
}
catch(Exception exep){}
}
}
你可以找到更多的:HWPF Quick-Guide(特別HWPF unit tests)
需要注意的是,根據POI網站:
HWPF仍處於早期發展階段。
我需要編寫doc文件。 'POI'不適用於此。 – kant
我建議看看openoffice源代碼並實現它。 它應該是用java編寫的。
- 1. Jquery插件查看文件(JPEG,PDF,DOC)
- 2. 頁面無法查看.doc文件
- 3. 在java applet中查看textfields的問題
- 4. Java Applet類文件
- 5. 在iphone中使用Webview查看.doc,.docx,.rtf,.ppt文件
- 6. JAR文件中的Java Applet
- 7. Java Applet下載文件
- 8. 如何查看`lib * -doc`?
- 9. 如何使用java創建.doc文件?
- 10. 如何用java applet上傳文件?
- 11. Java Applet查看器 - 禁用安全管理器
- 12. Android webview下載並查看pdf,xls或doc文件
- 13. 使用Google文檔查看器打開文檔(.doc,.pdf) - C#
- 14. 加載或查看Ios中的UIWebview中的.doc文件
- 15. 如何使用getCodeBase()在Java Applet中查找並加載文件?
- 16. 查看MS Word 2010中的.doc文件的VBA腳本
- 17. 如何在PostgreSQL中查看txt/doc/pdf/html文件
- 18. 用Doc將Doc文件轉換成Docx?
- 19. 如何查看我的Java applet的錯誤消息?
- 20. 在java applet中查看圖像所需的調整大小
- 21. 如何獲取Java中的applet查看器像素的顏色?
- 22. Java Applet - MVC - 如何綁定模型來查看?
- 23. 如何在java中顯示applet查看器?
- 24. 刪除文件或.html,.DOC在java中
- 25. 將.jar文件轉換爲JAVA DOC
- 26. 從Java EE + Struts2導出到DOC文件
- 27. Java applet中的文件路徑問題
- 28. 直接從jar文件啓動Java applet
- 29. Java applet找不到JavaPOS配置文件
- 30. 從Java Applet獲取PDF文件
鑑於服務器端代碼生成報告,爲什麼不生成它作爲HTML並將其顯示在瀏覽器選項卡中的「JEditorPane」? –
,因爲任務是生成doc報告,如果需要,可以用ms字打開。 – kant
如果用戶想要在MS Word中打開它,請將word doc直接推送到具有適當內容類型的瀏覽器。 (請注意,在此框中它將由Open Office加載。)如果用戶想要先預覽它,請將其生成爲HTML並在瀏覽器中顯示它。 –