C#生成CHM文件
2012-09-07 16:50
651 查看
HTML Help Workshop介绍:微软出品的HTML Help WorkShop制作chm文件的最佳工具。
(下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=21138)
(HTMLHELPWORKSHOP教:http://wenku.baidu.com/view/a90adbd249649b6648d74794.html)
本文,我们将用编程的方法来实现将html文件编译成CHM文件。在开始编程之前,我们有必要了解下HTML Help Workshop是怎么生成CHM的。
HTML Help Workshop编译成CHM文件需要如下三个文件,分别以hhp,hhc,hhk为文件后缀名。
hhp:CHM工程文件,CHM目标文件属性95%的参数都在这里被确定.
hhc,列表文件,确定目标文件中左侧树形列表中"目录"选项卡下的内容.
hhk,索引文件,确定目标文件中左侧树形列表中"索引"选项卡下的内容.
hhp几乎就是一个标准的ini文件.分为三个小节Option,Windows,Files.
典型的配置文件(test.hhp)结构如下:
内容页项目资源(test.hhc)文件结构如下:
引文件(test.hhk))也是一个HTML文件,它包含若干个关键词,当用户打开chm文件后,单击索引标签并输入一个关键词后,chm文件将显示与这个关键词有关的主题的列表,使大家非常方便地找到相关主题。
典型的文件结构如下:
将在线网页保存为chm文件 代码如下:
(下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=21138)
(HTMLHELPWORKSHOP教:http://wenku.baidu.com/view/a90adbd249649b6648d74794.html)
本文,我们将用编程的方法来实现将html文件编译成CHM文件。在开始编程之前,我们有必要了解下HTML Help Workshop是怎么生成CHM的。
HTML Help Workshop编译成CHM文件需要如下三个文件,分别以hhp,hhc,hhk为文件后缀名。
hhp:CHM工程文件,CHM目标文件属性95%的参数都在这里被确定.
hhc,列表文件,确定目标文件中左侧树形列表中"目录"选项卡下的内容.
hhk,索引文件,确定目标文件中左侧树形列表中"索引"选项卡下的内容.
hhp几乎就是一个标准的ini文件.分为三个小节Option,Windows,Files.
典型的配置文件(test.hhp)结构如下:
[OPTIONS] Title= test Compatibility=1.1 or later Default Window=Main Default topic=index.html Display compile progress=No Language=0x804 中文(中国) [WINDOWS] Main=test","test.hhc","test.hhk","index.html","index.html",,,,,0x20,180,0x104E,[80,60,720,540],0x0,0x0,,,,,0 [FILES]
内容页项目资源(test.hhc)文件结构如下:
DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <HTML> <HEAD> <meta name="GENERATOR" content="Microsoft? HTML Help Workshop 4.1"> HEAD> <BODY> <OBJECT type="text/site properties"> <param name="Window Styles" value="0x237"> OBJECT> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="NewTopic"> OBJECT> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="NewTopic"> <param name="Local" value="NewTopic.html"> OBJECT> UL> UL> BODY> HTML>
引文件(test.hhk))也是一个HTML文件,它包含若干个关键词,当用户打开chm文件后,单击索引标签并输入一个关键词后,chm文件将显示与这个关键词有关的主题的列表,使大家非常方便地找到相关主题。
典型的文件结构如下:
DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <HTML> <HEAD> <meta name="GENERATOR" content="Microsoft? HTML Help Workshop 4.1"> HEAD> <BODY> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="NewTopic"> <param name="Local" value="NewTopic.html"> OBJECT> UL> BODY> HTML>
将在线网页保存为chm文件 代码如下:
protected void Page_Load(object sender, EventArgs e) { CreateIndexHtml(); CreateCHM(@"D:\Program Files (x86)\HTML Help Workshop\hhc.exe");//生成CHM文件 } /// <summary> /// 将百度的首页下载到本地 /// </summary> private void CreateIndexHtml() { string url = "http://www.baidu.com"; HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse(); StreamReader respStream = new StreamReader(myResp.GetResponseStream(), Encoding.Default); string respStr = respStream.ReadToEnd(); respStream.Close(); FileStream fs = new FileStream(Request.PhysicalApplicationPath + @"\index.html", FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs, Encoding.Default); sw.Write(respStr); sw.Close(); } /// <summary> /// /// </summary> /// <param name="hhcFileUrl">HTML Help Workshop安装后hhc.exe文件的路径</param> /// <returns></returns> private bool CreateCHM(string hhcFileUrl) { Process helpCompileProcess = new Process(); //创建新的进程,用Process启动HHC.EXE来Compile一个CHM文件 try { ProcessStartInfo processStartInfo = new ProcessStartInfo(); processStartInfo.WindowStyle = ProcessWindowStyle.Hidden; processStartInfo.FileName = hhcFileUrl; //调入HHC.EXE文件 processStartInfo.Arguments = "\"" + Path.GetFullPath(Request.PhysicalApplicationPath + @"\test.hhp") + "\"";//获取先前做好的HHP(里面会引用hhc.hhk等文件)文件 processStartInfo.UseShellExecute = false; helpCompileProcess.StartInfo = processStartInfo; helpCompileProcess.Start(); helpCompileProcess.WaitForExit(); //组件无限期地等待关联进程退出 if (helpCompileProcess.ExitCode == 0) { Response.Write(new Exception().Message); return false; } } finally { helpCompileProcess.Close(); } return true; }
相关文章推荐
- C# 如何生成CHM帮助文件
- C#生成CHM文件(外篇使用hha.dll)
- C#生成CHM文件(中级篇)
- C#生成CHM文件(外篇使用hha.dll)
- C#生成CHM文件(应用篇)之代码库编辑器(3)【附源代码下载】
- C#生成CHM文件(中级篇)
- C#生成CHM文件(应用篇)之代码库编辑器(3)【附源代码下载】
- C#生成CHM文件(应用篇)之代码库编辑器(4)【附程序最终版下载】
- C#生成CHM文件(应用篇)之代码库编辑器(4)【附程序最终版下载】
- C#生成CHM文件(入门篇)
- C#生成CHM文件(中级篇)
- C#生成CHM文件(应用篇)之代码库编辑器(5)【总结、程序、源代码】
- C#生成CHM文件(应用篇)
- C#生成CHM文件(应用篇)之代码库编辑器(5)【总结、程序、源代码】
- C# 生成CHM文件
- C# 生成CHM文件 资料汇总
- C# 如何生成CHM帮助文件
- C#生成CHM文件(外篇使用hha.dll)
- C#生成CHM文件(应用篇)之代码库编辑器(1)
- C# 如何生成CHM帮助文件