基本思路:
把Word文件上傳到服務器,讀取其內容存儲為Html,然後加載Html內容
1:使用Microsoft.Office.Interop.Word組件
這是比較常用的一種方式,代碼就不貼出了,網上大把的例子
缺點:服務器需要裝Word的組件,並且需要在服務器上設置Docm+對象的權限,如果一台服務器還好,如果項目應用到多台不同服務器,就比較繁瑣了
2: OpenXml API
可以將.docx(word 97-2003 不適用)轉化為XML,有了XML,想轉成HTML或是其他格式都不再是問題了,此Api需要 .net FreamWork3.5+ Office2007+
3:第三方:例如Aspose.Words(已測試,推薦)
Aspose提供了各種格式的轉換方案,有興趣的可以進去仔細看一下,.NET Java方向的都有,采用其中Aspose.Words這個Dll,無需安裝微軟Office組件 即可轉換Word(Converting DOC,DOCX to HTML without MS Office Word in .Net)
復制代碼 代碼如下:
Aspose.Words.Document d = new Aspose.Words.Document(wordPhysicalPath);
d.Save("d:\\1.html", SaveFormat.Html);
即可存為HTML文檔(注意Word裡面的圖片存儲在和Html同級目錄下,讀取Html內容時需要替換<img src='http://www.jb51.net/CWolf/archive/2011/09/30/為 <img src='+圖片虛擬路徑)
優點:不需要安裝微軟Office組件,只需要一個差不多2M的DLL 就可以完成此功能
缺點:Aspose並不是一個開源的組件,國內雖然有破解版,也可反編譯後自己進行更改,但是版權問題確實是要考慮的因素
還有一些第三方的其他的項目,大部分是收費的,在此就不一一列舉了