C#生成CHM文件(中级篇)

来源:Alexis的51博客 责任编辑:栏目编辑 发表时间:2013-07-02 00:23 点击:

在上篇《C#生成CHM文件(入门篇)》中,我们利用微软自带的hhc.exe以编程的方式创建一个CHM文件,而且调用的是一个静态的HMTL文件。

在中篇中,实现以下几个目标
 1.将在线的网页保存为CHM文件
 2.我们将对我们进行编译的CHM文件进行反编译,使用的还是微软自带的一个exe(hh.exe)。
 3.以编程的方式将CHM文件转换为Word

在中篇中,把界面稍微调整了下,如下图

一、将在线的网页保存为CHM文件

曾尝试直接使用网址来编译html文件,结果一直报错,于是就放弃了。现在实现的方法的思想是这样的:先将输入的url地址的网页保存到本地,然后利用上一篇中的方法生成CHM文件。不过经测试,这样的效率还是比较低的,主要的花费在将htm文件下载到本地,如果带宽不够的话,将会很慢,不过总归是种方法,大家如果有更好的解决方案,希望能告诉我。

  1. HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);  
  2.  HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();  
  3.  StreamReader respStream = new StreamReader(myResp.GetResponseStream(), Encoding.Default);  
  4.  string respStr = respStream.ReadToEnd();  
  5.  respStream.Close();  
  6.  FileStream fs = new FileStream(startPath+@"\test.htm", FileMode.Create, FileAccess.Write);  
  7.  StreamWriter sw = new StreamWriter(fs, Encoding.Default);  
  8.  sw.Write(respStr);  
  9.  sw.Close(); 

思路是将网页保存在本地的,startPath为项目所在路径。 大家可以以http://www.baidu.com/index.htm为例(注意要以htm或html为结尾),测试下,看看能不能正常将百度的首页保存到CHM文件中。效果图是这样的:

二、反编译CHM

反编译CHM的方法同初篇中的利用Process类来进行。

 

  1. /// <summary>  
  2.         /// 反编译CHM文件  
  3.         /// </summary>  
  4.         /// <param name="CHMFile">CHM文件名</param>  
  5.         /// <returns>返回hhc文件名</returns>  
  6.         /// <remarks>uses the <see cref="DecompileChm"></see></remarks>  
  7.         public&

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • 用C#制作屏幕捕获程序
      • .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上
      • 遍历ArrayList易犯错误
      • C#对XML操作:一个处理XML文件的类(1)
      • .NET简谈反射(动态调用)
      • 使用C#编写LED样式时钟控件
      • DataList嵌套问题 如何删除内层子DataList的记录
      • 怎样用C#实现完整文档打印功能
      • .NET简谈自定义事务资源管理器
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1