C#生成CHM文件代碼 功能實現(xiàn):
1.將在線的網(wǎng)頁保存為CHM文件
2.我們將對我們進行編譯的CHM文件進行反編譯,使用的還是微軟自帶的一個exe(hh.exe)。
3.以編程的方式將CHM文件轉(zhuǎn)換為Word
CHM文件轉(zhuǎn)換為Word
接下來,我們來延伸下,利用反編譯的文件,將CHM轉(zhuǎn)換成Word文件。思路是這樣的:利用反編譯,得到hhc文件(hhc文件中包含htm或html文件的文件名)和一大堆web頁面(如果一開始編譯進去的是一大堆的話,呵呵),創(chuàng)建一個word文件,將html文件插入到word中,下面以實例的方式來實現(xiàn)。
為了方便代碼管理,我創(chuàng)建了一個類庫項目,命名為CHM2Word,里面主要實現(xiàn)將CHM文件反編譯并將反編譯的文件整合為Word。在CreateCHM項目中調(diào)用代碼即可,另需要你的機器安裝Office2003(對應,添加引用 ->COM->Microsoft Word 11.0 Object Library)或2007(對應,添加引用->COM->Microsoft Word 12.0 Object Library)。
PS:
1.如果你使用的是office2003或者office2007,需要修改類庫項目下的WordClass類下Word方法,因為office2010的
Microsoft.Office.Interop.Word.ApplicationClass不再提供構造方法,而是提供Microsoft.Office.Interop.Word.Application()接口
2.如果在轉(zhuǎn)換的工程中,始終沒有反應,可以調(diào)試下,如果出現(xiàn)這樣的錯誤,“因為沒有打開的文檔,所以這一命令無效”。
調(diào)試中不會彈出異常,但是將鼠標放到wApp對象中,查看的會發(fā)現(xiàn)那樣的錯誤,原因是因為權限不夠,可以采用如下方法解決:
運行dcomcnfg打開組件服務,依次展開"組件服務"->"計算機"->"我的電腦"->"DCOM配置"
找到"Microsoft Word應用程序",右鍵打開屬性對話框,
點擊"標識"選項卡,點擊"標識"標簽,選擇"交互式用戶"(此設置可能對計算機安全存在威脅,如不設置可以解決問題就不設置,點"下列用戶",把管理員的用戶administrator密碼....正確填寫進去也行)
點擊"安全"選項卡,依次把"啟動和激活權限","訪問權限","配置權限",都選擇為自定義,然后依次點擊它們的編輯,把everyone添加進去,并加入所有的權限...
OK,解決此問題!
如果你的office是2010或者你的系統(tǒng)版本較高的話,很有可能遇到這樣的問題。我的電腦是windows7+office2010,就遇到了這樣的問題。
3.在反編譯和在線生成CHM的時候會生成一些臨時文件,如果不及時刪掉的話,會造成空間的浪費。