短篇小說 - 沒有其他選擇。 CHM很好,Sandcastle可以製作乾淨的HTML。我對這種大型CHM文件沒有經驗,但有一些想法如下。
我認爲你已經有了一個很好的Sandcastle配置,例如未經檢查Indent rendered HTML
,在編寫如此大的CHM時幫助創作沒有問題的良好工作流程。
Marco在他的評論中提到CHM壓縮是體面的。他是對的 - 正如你在自己的測試中看到的,轉向基於Web的幫助(40MB> 5GB),你無法獲得更好的壓縮。
基於Web的幫助和編譯幫助有不同的觀點。開發人員經常希望將封閉的文檔作爲CHM文件,而不是基於Web的幫助。另一方面,外部客戶經常要求在互聯網上提供文檔(有時也包括內部用戶)。
- 問問你的開發人員和營銷人員,嘗試拆分你的SDK文檔。
- 檢查您的文檔 工作流程中是否添加了高分辨率圖像(此處與使用Sandcastle時沒有預期的關係)。 他們經常炸燬產生的CHM。
- 檢查您是否使用合併的CHM,並且您可以使用FAR HTML來壓縮ITS 文件(CHM文件,CHW文件)。嘗試它以滿足您的需求。
最後一點允許您壓縮CHM中的死區(如果有的話)。大多數CHM不會壓縮太多。事實上,一些CHM實際上可能會增長几千字節。要壓縮CHM文件,我們只需將Istorage API函數複製到臨時文件,然後將該文件重命名爲原始CHM文件。生成的CHM具有相同的文件內容,但沒有null填充。
那麼,爲什麼壓縮?真正的優勢在於減少CHW文件。 CHW文件包含所有合併(或集合)CHM的組合索引。它們在不需要壓縮速度的情況下即時創建。您可以安全地刪除CHW,因爲下次打開CHM時,HTML幫助將重新創建。它們是有意義的,因爲一個10 MB的文件將會減少80%左右,降至2 MB。如果您在合併的CHM中沒有索引,那麼您沒有看到CHW文件。
如果你downvote你能否解釋爲什麼。我不認爲這是重複的,因爲所有其他問題都不考慮文件大小問題。也不要認爲這是一個自以爲是的工具請求,因爲我很樂意用手動和/或編程方法來創建我自己的解決方案。如果問題沒有完全解答,請告訴我缺少哪些信息。謝謝。 – bastijn
那麼如果從CHM中提取HTML,會發生什麼?也許你的html代碼只是頂級的。CHM壓縮是體面的,但不超過。 chm的問題首先是什麼也不是很清楚。 (我沒有downvote順便說一句) –
CHM的問題是,它很難分發。理想情況下,我將有一個託管網站,我們的客戶可以看到我們的API,非常像MSDN。我將提取html來確保,但我認爲壓縮是因爲CHM正在做它應該做的事情,編譯html和縮小內容。 – bastijn