这些天因为工作需要,要将一些html文件转换为chm文件,当然是需要和程序结合在一起。
后来找到NDoc,里头有一段代码是相关的,于是开始分析代码,写完之后,总结:主要是利用微软的hhc.exe来编译html文件,程序需要将具体的数据写入hhp和hhc文件。
主要代码如下:
  public void CompileProject()
  {
   Process helpCompileProcess = new Process();  //创建新的进程,NDOC采用Process启动HHC.EXE来Compile一个CHM文件

try
   {
    判断文件是否存在并不被占用
    try
    {
     string path = _chmFile;  //chm生成路径

if (File.Exists(path))
     {
      File.Delete(path);
     }
    }
    catch
    {
     throw new Exception("文件被打开!");
    }

ProcessStartInfo processStartInfo = new ProcessStartInfo();
    processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    processStartInfo.FileName = hhcFile;  //调入HHC.EXE文件 
    processStartInfo.Arguments = "\"" + Path.GetFullPath(GetPathToProjectFile()) + "\"";//获取空的HHP文件

helpCompileProcess.StartInfo = processStartInfo;

//开始生成....
    helpCompileProcess.Start();

helpCompileProcess.WaitForExit(); //组件无限期地等待关联进程退出

if (helpCompileProcess.ExitCode == 0)
    {
     MessageBox.Show(new Exception().Message );
    }

}
   finally
   {
     helpCompileProcess.Close();
   }
  }
  public void OpenProjectFile()
  {
   FileStream fs = new FileStream(GetPathToProjectFile(),FileMode.Create);
   streamHtmlHelp = new System.IO.StreamWriter(fs,System.Text.Encoding.GetEncoding("GB18030"));
   streamHtmlHelp.WriteLine("[FILES]");
  }
  public void AddFileToProject(string filename)
  {
   streamHtmlHelp.WriteLine(filename);
  }
  public void CloseProjectFile(string title)
  {
   streamHtmlHelp.WriteLine();
   streamHtmlHelp.WriteLine("[OPTIONS]");
   streamHtmlHelp.WriteLine("Title="+title );
   streamHtmlHelp.WriteLine("Compatibility=1.1 or later");
   streamHtmlHelp.WriteLine("Compiled file=" + GetCompiledHtmlFilename());  //chm文件名
   streamHtmlHelp.WriteLine("Contents file=" + GetContentsHtmlFilename());  //hhc文件名
   streamHtmlHelp.WriteLine("Default topic=" + _defaultTopic);  //默认页
   streamHtmlHelp.WriteLine("Display compile progress=No"); //是否显示编译过程
   streamHtmlHelp.WriteLine("Language=0x804 中文(中国)");  //chm文件语言

streamHtmlHelp.WriteLine();
   streamHtmlHelp.WriteLine("[INFOTYPES]");

streamHtmlHelp.Close();
  }

转载于:https://www.cnblogs.com/monthkey/archive/2004/06/15/15995.html

用C#实现将html文件转换为chm文件相关推荐

  1. 将CHM文件转换为HTML文件

    将CHM文件转换为HTML文件 如果要处理CHM文件,直接对其处理好像不太方便,微软提供的ShowHelp() API功能有限.这时我们可以讲CHM文件转换为HTML文件以便进行处理. 微软在Wind ...

  2. python批量pdf转word,python批量实现Word文件转换为PDF文件

    本文为大家分享了python批量转换Word文件为PDF文件的具体方法,供大家参考,具体内容如下 1.目的 通过万能的Python把一个目录下的所有Word文件转换为PDF文件. 2.遍历目录 作者总 ...

  3. Python Qt GUI设计:将UI文件转换为Python文件的三种妙招(基础篇—2)

    目录 1.创建项目 2.将.ui文件生成.py文件 2.1.Eric 6编译 2.2.Python命令行编译 2.3.脚本编译 3.界面.逻辑分离思想 在开始本文之前提醒各位朋友,Python记得安装 ...

  4. python npy文件_python实现npy格式文件转换为txt文件操作

    如下代码会将npy的格式数据读出,并且输出来到控制台: import numpy as np ##设置全部数据,不输出省略号 import sys np.set_printoptions(thresh ...

  5. GDCM:将PAPYRUS 3.0文件转换为dcm文件的的测试程序

    GDCM:将PAPYRUS 3.0文件转换为dcm文件的测试 GDCM:将PAPYRUS 3.0文件转换为dcm文件的测试 GDCM:将PAPYRUS 3.0文件转换为dcm文件的测试 #includ ...

  6. GDCM:DICOM文件转换为QImage文件的测试程序

    GDCM:DICOM文件转换为QImage文件的测试程序 GDCM:DICOM文件转换为QImage文件的测试程序 GDCM:DICOM文件转换为QImage文件的测试程序 #include &quo ...

  7. python 将excel文件转换为txt文件_python利用pandas将excel文件转换为txt文件的方法

    python将数据换为txt的方法有很多,可以用xlrd库实现.本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转换为txt文件. 直接上代码: ''' function:将 ...

  8. php jpg转换为pdf文件,php使用ImageMagick将PDF文件转换为JPG文件的方法_PHP

    本文实例讲述了php使用Image Magick将PDF文件转换为JPG文件的方法.分享给大家供大家参考.具体如下: 这是一个非常简单的格式转换代码,可以把.PDF文件转换为.JPG文件,代码要起作用 ...

  9. php生成图片文件流,php如何将base64数据流文件转换为图片文件?

    2017-03-07 在开发中,自己遇到一个前端在上传图片的时候,使用的base64数据流文件显示的图片. 也就是说 ***image/后面的jpg是我们的图片文件格式,(base64,)后面的很大一 ...

  10. office文件转换为pdf文件

    office文件转换为pdf文件 首先安装openoffice,自行百度 导入jar包,自行百度 引入坐标: <!-- 转pdf配置 --><dependency><gr ...

最新文章

  1. Win64 驱动内核编程-1.环境搭建
  2. Yii2 的小贴士用法
  3. [OS][FS]查看ext3文件系统分区的superblock
  4. ppt转html5 带动画_我复刻了IPhone12这页发布会PPT
  5. layer绑定回车事件(转)
  6. python按索引删除字符串,基于特定的索引字符串值选择记录,然后通过python删除后续字段...
  7. win10 如何锁定计算机,Win10 1909 专业版怎么锁定计算机屏幕
  8. 解决 Plugin with id 'com.github.dcendents.android-maven' not found.
  9. 大数据的“媒体玩法”
  10. python怎么安装json_python里面怎么安装json包
  11. 为什么你说的话别人不愿意听?
  12. Linux查看硬盘挂载
  13. cad2020打印样式放在哪个文件夹_压箱底!这些CAD打印设置技巧只能从老师傅身上学到...
  14. Spring MVC ajax请求
  15. Tony.SerialPorts.RS232串口参数配置模块:扫描事件例程
  16. 已解决:error: cannot connect to daemon
  17. Geekban极客班 第三周
  18. RabbitMQ管理平台功能说明文档
  19. 阿里巴巴自动驾驶三维点云分割PointNet实现
  20. 抖音中的搞笑BGM如何提取,MP3转换器怎么使用

热门文章

  1. 红帽学习笔记[RHCSA] 第一课[Shell、基础知识]
  2. Luogu2481 SDOI2010 代码拍卖会 DP、组合
  3. SpringBoot 的配置文件
  4. Java数据库学习之模糊查询(like )
  5. 关于寒假作业存在问题的强调
  6. 微服务自动化部署(ansible playbook)干货之--zookeeper部署
  7. postgresql 数据库路径迁移
  8. CentOS7 yum方式安装MySQL5.7
  9. Mycat实战之配置EP分片
  10. 设计模式(十): 代理模式