2010年曾经使用Doxygen生成全中文的chm文档。由于Doxygen生成的chm目录文件(index.hhc)本身是使用UTF-8编码的,而古老的chm编译器(HTML Help Workshop)对于CHM控制文件(index.hhc、index.hhk、index.hhp),却只支持ANSI编码(即本地编码,如中文系统为GBK),所以最终编译出来的chm文件,左边的目录导航栏全是乱码。为了解决这个问题,可费了一番工夫,得先使用编码转换工具转换后再用chm编译器编译(见:使用doxygen为C/C++程序生成中文文档)。

今天重新拿起Doxygen,惊喜地发现,它已经支持生成ANSI编码的chm目录文件(index.hhc)了,所以能省好多工夫,现在终于可以一步搞定。现在想来,Doxygen早就应该支持这个功能的,做起来也很简单——当然我没有详细去翻查Doxygen是从哪个版本开始支持的,反正Doxygen 1.8.0是支持的,想必之后的版本都支持。

下载和安装 Doxygen

到 Doxygen 官网 下载最新的Doxygen安装程序,然后安装。这个软件包包括了一个GUI界面的前端工具,可以帮助我们方便创建Doxygen配置文件和生成目标文档。

下面以 Doxygen 1.8.0 为例进行讲解。

下载和安装 chm 编译器

我们使用微软古老的 HTML Help Workshop 1.3,这个软件N久没更新了。

下载地址:微软官网

下载后根据提示安装。

项目一般设置

首先在“Wizard”标签的Project项进行如下设置:

项目名称:将在最新的文档首页中显示

源码列表:选择要生成文档的源代码或目录,可以有多个文件或目录形成一个列表。建议使用相对路径,相对于当前目录(也即当前配置文件所在的目录)

递归扫描:如果需要对整个源码目录下的所有子目录及文件生成文档,请勾选本项

输出目录:设置最终生成的帮助文档的存储路径,建议使用相对路径

下一步,Mode项,根据需要设置文档生成模式。

下一步,Output项,设置输出格式,勾选HTML和“prepare for compressed HTML(.chm)”

然后切换到“Expert”标签的“HTML”项,设置HTML和CHM相关的选项:

GENERATE_HTMLHELP:确保已经勾选了

CHM_FILE:最终生成的.chm的文件名,如“HkcProjectHelp.chm”。默认为“index.chm”。可以使用路径,也可以使用相对路径,相对于上面设置的输出目录的html目录(建设使用上一级目录,如“..\MyDoc.chm”)

HHC_LOCATION:chm 编译器(hhc.exe)的全路径。请指到 HTML Help Workshop 的安装目录的 hhc.exe 程序

CHM_INDEX_ENCODING:chm索引文件编码,下面会讲到,这里填“GBK”

编码设置

编码设置很重要,如果设置不当,生成的文档会出现乱码。因为 Doxygen 汲及的东西多,有好几项编码设置,所以需要认真对待,根据项目的实情情况设置。

所有高级设置(包括编码设置)都在“Expert”标签,重要的设置项如下:

Project/DOXYFILE_ENCODING:当前 Doxygen 配置文件本身的字符编码,默认为UTF-8,一般不需要修改

Project/OUTPUT_LANGUAGE:输出语言。这里是指Doxygen自己生成的导航、提示、帮助等文本的文字采用的语言。我们希望帮助文档是全中文的,所以选择Chinese

Input/INPUT_ENCODING:输入文件的编码。这里是指我们的源代码文件本身的编码。在Windows平台一般是系统编码(GBK),而Linux平台一般是UTF-8。请用文本编辑器查看源文件的编码。这里如果设置的不一致,源码文件的注释中所有非ASCII字符将在生成的文档中变成乱码。

HTMP/CHM_INDEX_ENCODING:这里设置Doxygen生成的CHM索引文件的编码,以前是不能设置的,默认为UTF-8,而微软的编译器不能识别UTF-8编码的索引文件,所以最终造成左边目录导航栏乱码。我们设置它为GBK,这样Doxygen将为我们生成GBK编码的索引文件(.hhc、.hhk、.hhp)

生成CHM文档

设置好了后,点击“Run”→“Run doxygen”生成最终的.chm文档,如果设置正确,打开后是全中文的了。

doxygen html chm,使用Doxygen生成全中文的chm帮助文档相关推荐

  1. Sandcastle方法生成c#.net帮助类帮助文档chm

    Sandcastle方法生成c#.net帮助类帮助文档chm Sandcastle方法生成c#.net帮助类帮助文档即chm后缀的文档,其实是通过C#文档注释生成的XML文件来生成帮助文档的.因此,第 ...

  2. Java8中文api汉化文档下载【谷歌翻译最精准版】【jdk api 1.8_google.CHM】

    Java8中文api汉化文档下载[谷歌翻译最精准版][jdk api 1.8_google.CHM] 这是Java8的汉化文档,谷歌翻译非常精准! 需要的同学微信扫码发送关键字 api8 即可获取下载 ...

  3. java生成word文档 图片_java生成带有图片的word的文档-Go语言中文社区

    生成带有图片的word的文档 @RequestMapping(params ="getWordByDate",produces = "text/html;charset= ...

  4. FreeMarker中文帮助手册API文档,基础入门学习文档

    FreeMarker中文帮助手册API文档,基础入门学习文档 分类: 编程技术 发布: bywei 浏览: 7 日期: 2011年5月28日 分享到: QQ空间 新浪微博 腾讯微博 人人网 什么是Fr ...

  5. javadoc文档的生成方法_Cocoa 代码注释与文档生成

    Cocoa 代码注释与文档生成 本文的文档规范部分的内容参考自:NSHipster 的 Swift Documentation 作者 & Nate Cook 本文知识目录 背景 曾经以为好的代 ...

  6. 在Vs.net中集成 NDoc生成的 Html Help 2帮助文档

    注:NDoc是一个Open Source的For .Net 文档自动生成软件.它可以通过 .Net中XML的注释标签来生成非常漂亮的MSDN风格的类库文档.(相对于VS.Net自己带的Comment ...

  7. 亿愿Word文档批量多语言翻译---word文档翻译专家!几十种语言随意快速互译!可以生成中外文,中英文对照内容文档!

    亿愿Word文档批量多语言翻译-软件功能简介 [亿愿Word文档批量多语言翻译]采用目前最强大的.国际著名公司的谷歌翻译引擎,自动识别语言种类,把英文.日文.韩文.德文.法文.俄文等几十种外国语言的文 ...

  8. 如何给WPS里全是图片的word文档中利用题注自动编号

    打开需要编号的word文档. 操作如下(可按图片中的数字序号顺序操作): 第一步,利用JS宏代码自动换行插入回车符 这里的代码需要复制dujianxiong大神的代码, https://blog.cs ...

  9. Java使用POI生成折线图导出到word文档(折线图)

    本篇文章主要介绍,如何使用Apache POI组件生成折线图导出到word文档中,具体步骤看下文. 一.实现效果 Java使用POI技术生成折线图导出到word文档中,最终生成的折线图如下所示: 二. ...

最新文章

  1. emv中的 部分匹配_【干货】EMV指标的精准运用
  2. 详解进程的虚拟内存,物理内存,共享内存
  3. 物理设计-数据类型的选择
  4. 支持Dubbo生态发展,阿里巴巴启动新的开源项目 Nacos
  5. java 加载资源_在Java中加载资源的首选方式
  6. java图形界面重写坐标_重写自由软件和计算机图形的历史
  7. Spring AOP 源码初窥(二) 从注解开始
  8. memcached php 测试,php一致性hash性能测试(flexihash/memcache/memcached)
  9. 三次样条插值算法C++实现
  10. java线程学习笔记
  11. (Java)idea连接数据库
  12. 《过程控制系统》习题整理
  13. 字符串转16进制 与 16进制转字符串
  14. 关于组织自定义皮肤/主题的一点思考
  15. TCP/IP模型背后的内涵
  16. 转载:优启通添加软件方法(一些 EXLOAD 简单的应用例子 )
  17. 【完美解决】org.apache.catalina.core.StandardContext.filterStart 启动过滤器异常
  18. 香农说,要有熵。信息时代由此开启……
  19. 微服务-长轮询异常:SecurityManager accessible to the calling code
  20. 130. Surrounded Regions

热门文章

  1. AMD:无限你我的无限
  2. python原始数据是什么_荐Python种MNE库模拟原始脑电数据
  3. office2007之PPT模版更换与应用
  4. python祝福语_Python | 微信自动回复祝福语
  5. 小米android通知栏图标不显示,MIUI开发版更新:已修复原生样式下部分通知图标不显示的问题...
  6. hread first html5,(完整版)2017届上海市徐汇区高三英语二模卷(含听力文本和答案)...
  7. linux系统top命令:virt,res,shr详解
  8. 40家全球知名MCU生产厂商及其详细介绍
  9. React上拉加载和下拉刷新
  10. SMTP邮箱服务器发送邮件