針對office文檔的在線瀏覽功能,解決方案有如下幾種,其中各有優劣之處。這次只對解決思路作個說明,具體實現會在後面的博文中作說明。前端
方案一:使用微軟的dsoframer.ocx,該插件不在此詳細介紹了,其存在依賴性,須要windows系統下,而且只能運行在IE或者IE內核的瀏覽器(IE6不能自動註冊插件)。java
優勢:功能強大,能夠動態生產word模板,紅頭文件等,能夠在線編輯保存至本地或者服務器。(pageoffice能夠做爲替代,可是是收費插件。)linux
缺點:插件下降瀏覽器安全性,ocx插件偶現沒法註冊的狀況,而且運行不穩定。在IE7、8下,連續編輯文檔兩次會常常出現瀏覽器奔潰現象。官方已經中止更新。windows
方案二:使用flashpaper或者print2flash。這兩個控件實現起來較爲方便,可是比第一種方案稍慢一些。實現原理是上傳文檔,java調用flashpaper或者print2flash將文檔轉化爲swf文件,前端直接用flashpaper或者print2flash顯示swf文件便可。瀏覽器
優勢:支持轉化的文件格式較多,前端因爲調用flashpalyer顯示,因此能夠跨瀏覽,沒有瀏覽器的侷限性。安全
缺點:存在水印,flashpaper可使用破解版去除水印,print2flash暫時沒有好的去水印方法。此方案須要在windows環境下實現,而且windows環境下要安裝flashpaper或者print2flash軟件。Flashpaper不支持64位系統。服務器
方案三:使用jacob(或者Jcom)+openOffice(或者MSOffice)+swfTools+flexpaper。實現原理是jacob調用openOffice先將上傳的文檔轉換成pdf文件,在用swftool的pdf2swf功能將pdf文件轉換爲swf文件,最後在頁面用flexpaper顯示swf文件。工具
優勢:與第二個方案比較,沒有什麼優越性。flex
缺點:只能在windows下實現,轉化兩次速度比較慢。系統須要安裝兩個工具,以及註冊jacob.dll。jacob的版本與jdk版本要對應。spa
方案四:使用JodConverter、openOffice、swfTools。實現原理是JodConverter調用openOffice先將上傳的文檔轉換成pdf文件,在用swftool的pdf2swf功能將pdf文件轉換爲swf文件,最後在頁面用flexpaper顯示swf文件。
優勢:相比前面三種解決方案,此方案能夠在linux下實現。
缺點:轉換兩次速度比較慢。系統須要安裝其餘工具。