首先貼個好東西,一個方案文檔,這是我已經實現過兩種方案後纔看到的一片文章,先行參考先總體思路。html
http://www.officeweb365.com/officetoview.htmlweb
先說下個人項目需求:服務器
用戶上傳文件(頁面限制格式pdf/doc/docx) -> 點擊文件名 -> 在線預覽已傳文件。字體
需求比較簡單,個人想法是:pdf能夠直接打開預覽因此這個能夠不用考慮,doc/docx的話須要做格式轉換,在線預覽將其轉成pdf或者html/htm頁面的方式。doc是97-2003文檔,廣泛解決方案都有,實現不難,重點是docx,因爲是07的文檔,在兼容性方面比較困難,後面具體的實現過程會提到。.net
歷程:因爲在先前在項目中已經使用POI實現了文檔的導出功能,因此我在作時候先用POI嘗試實現功能,後面發現POI在07的兼容性方面並很差(這裏也有一個就是我用來作demo的文檔選得很差,效果欠佳),特別是轉換成html文件時會存在字體格式亂碼的問題,能夠用微軟雅黑試試就知道了。故棄用選擇Openoffice,發現Openoffice在Windows上的實現真的挺複雜,能夠看看這個博主的內容就知道 http://blog.csdn.net/lbf5210/article/details/50519190 ,個人服務器是Linux,因此這種方式複雜了,爲了更便捷,我以爲使用直接轉成pdf/html/htm便可,而後根據路徑預覽,不使用上面博主的那種頁面插件,能夠省去不少麻煩。插件
下面是兩種方式分別實現的方式,各有優缺。htm
POI實現:http://www.javashuo.com/article/p-dcecqyfz-z.htmlblog
Openoffice實現:http://www.javashuo.com/article/p-zpfydwrz-bb.html文檔