整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

通过调用Windows命令,将chm 文件转换为html 文件

过调用Windows命令,将chm 文件转换为html 文件。

方法:

命令行(cmd),输入hh -decompile <输出文件夹路径> <要反编译的CHM文件全路径名>

例如:

win+r 键,弹出运行窗口输入命令cmd回车,然后输入:

过 Amazon Kindle 官方商店购买电子书,可以轻松实现「下单买电子书 - 推送至 Kindle」,但仅仅依靠官方商店渠道获取的电子书数量可能还不足够,Kindle 用户选择从网上其他渠道下载回来的电子文件,大多数是 pdf、epub 格式,直接放在 Kindle 设备上,会面临格式不支持或者内容排版变形等问题。

为了解决以上的问题,我收集了几款本地工具和在线工具的解决方案,帮助大家轻松应对电子书格式转换,在 Kindle 上获得即点即开的阅读体验。

本地工具

Kindle 设备目前原生支持 mobi、azw 和 azw3 三种电子书格式,其中 mobi、azw 是较早推出的格式标准,而 azw3 是在 2011 年 Kindle Fire 平板一并推出的格式,由于其支持 HTML5 和 CSS3 语法,最后输出的内容有着较好的排版支持效果。

对于电子书格式转换需求,下面收集了四款本地工具,有 Amazon 官方出品的 KindleGen、Kindle Comic Creator,也有最热门的本地电子书管理工具 Calibre,而 EasyPub、Kindle Comic Converter 和 ChainLP 解决了其他文档格式转换的问题。

KindleGen

KindleGen是一款亚马逊官方推出的电子书格式免费转换工具,主要功能是将 HTML、XHTML 或者 epub 文档转换成 Kindle 设备兼容的 mobi 格式。KindleGen 实际上是一款命令行工具,支持 Windows、Mac 和 Linux 平台,以将 epub 格式的《1984》转换成 mobi 为例子,具体使用步骤:

1.下载并解压 KindleGen 压缩包,由于亚马逊 官方页面暂时不支持中国区下载,建议大家在书伴页面找到百度网盘下载压缩包;

2.比如将压缩包解压到文件路径 D:\KindleGen,打开 Windows 命令提示符,输入D:\KindleGen\kindlegen,系统将反馈 KindleGen 的使用说明;

3.比如将《1984》电子书放在 D:\ebook,命令行窗口输入cd /d D:\ebook进入电子书所在的目录文件位置;

4.输入 D:\KindleGen\kindlegen 1984.epub,转换成功后自动在 epub 源文件的目录位置生成 1984.mobi 文件。

另外还有一个更简便的方法,将 1984.epub 文件直接拖拽至 kindlegen.exe 应用程序图标上,KindleGen 工具会自动弹出转换的页面,并在源文件的位置下生成 mobi 文件。

Kindle Comic Creator

Kindle Comic Creator则是一款亚马逊官方专门为漫画作者和出版商推出的漫画转电子书的免费工具,适用 Windows、Mac 平台,支持将 JPG、PDF、TIFF、PNG 和 PPM 转换成 mobi 电子书。提前准备好几张示例图片后,KCC 使用步骤如下:

1.打开 KCC 主界面后,选择创建新图书,弹出创建窗口,按步骤填写「面板选择」和「元数据和设置」的选项,包括了图书定位、翻页方向、画布大小、封面图片和输出保存的位置;

2.完成基本信息输入后,进入图像添加的编辑界面,在左边栏的图书管理器中,图书设置和页面设置中提供了更详细的元数据和页面调整的选项,右边栏有 Kindle 设备预览效果;

3.选择菜单栏「文件 - 导出为 KF8 图书」输出生成 mobi 电子书文件(快捷键 F5直接在制定目录生成转换文件)。

除了亚马逊官方出品的 KCC 软件外,ChainLP、Kindle Comic Converter也能够把漫画图片轻松转换成 epub、mobi 格式文档。

Calibre

Calibre是一款电子书管理工具神器,也提供了格式转换功能,支持 Windows、Mac 和 Linux 平台,甚至提供了便携绿色版本,我们通过内置的命令行工具 ebook-convert 或者图形界面完成各种电子书格式转换。

ebook-convert命令语法是:

ebook-convert input_file output_file [options]

参照 Calibre wiki 文档、 显示,input_file 支持输入的格式 azw4、chm、comic、docx、epub、fb2、html、mobi、pdf、txt 等格式,output_file 则支持输出 azw3、docx、epub、html、mobi、 pdf、txt 等主要格式。

输入如下命令,实现将 1984.epub 文件转换成 1984.mobi 文件格式。

ebook-convert 1984.epub 1984.mobi

图形界面。Calibre 主界面中选中书籍后,在工具栏选择「转换书籍」打开转换界面,接着在右上角的输出格式选项,选择希望输出的文档格式(支持输入格式参照 ebook-convert 命令行介绍部分 )。另外亚马逊近期推出较新的电子书格式 KFX,如果需要将 KFX 和其他格式互转的话,可以尝试安装 Calibre 插件 KFX Input 以及 KFX Output。

EasyPub

跟 Calibre 提供一站式电子书解决方案不同之处在于,EasyPub 提供功能相对单一,它是一款针对 TXT 转换成 mobi、epub 格式的免费工具,仅支持 Windows 系统,下载地址在书伴网 页面搜索即可。

在格式转换的设置标签页中,用户可以利用章节部分的调整选项,通过文档的章节规则生成较好的文件目录。

如果用户经常从网络中下载的文档以 TXT 格式为准,那么 EasyPub 这款纯粹单一的转换工具能够满足大部分需求。

在线工具

除了以上四款本地工具外,在线工具同样能够满足电子书格式转换需求,其优势是免除了安装应用程序的繁琐操作,不占用本地空间资源,随用随打开在线页面。

Convertio

Convertio支持各类文档格式相互转换、OCR 识别功能,通过超链接、Dropbox 和 Google Drive 导入文件,注册账户支持最大 100MB 文件大小。最省心的地方在于,用户上传文件后,Convertio 将自动识别上传文件的格式,给出转换成对应格式的选项。在电子书格式转换中,Convertio 电子书转换支持输出 mobi、azw3、epub 常见格式,也支持转换成 lrf、snb、rb 等较少见的电子书格式。

Kindle 邮箱

Kindle 邮箱除了解决了文件推送到 Kindle 设备的问题外,还能够「曲线救国」解决 epub 格式在 Kindle 阅读器上阅读,只需要将 epub 文件格式手动改为 zip,再通过电邮方式推送到 Kindle 个人邮箱,亚马逊个人文档云存储将自动转换格式后推送到 Kindle 设备中,用户直接打开文档即可阅读。

结语

或许 Kindle 吃灰的原因不在于电子书格式转换的问题,但以上推荐的六款工具可以很好解决大家从网上下载和制作的文档后,转换成 Kindle 设备支持阅读的格式,本地工具凭着更丰富的转换设置选项更细致地调整转换效果,在线工具则有着「用完即删、随用随开」的优势。希望这篇工具合辑让 Kindle 电子书格式转换的问题,不再成为大家阅读电子书的「绊脚石」。

1 -

场景

CHM是英文Compiled HTML Help的缩写,是微软公司专有的联机帮助格式,由HTML页面、索引和其他导航工具的集合组成。这些文件被压缩并部署为二进制格式,扩展名为.CHM,用于编译HTML。CHM格式通常用于软件文档。

虽然CHM格式是老的文档格式,很多Windows程序已经不再将它作为帮助文件的首选,但是有些场景我们依然希望将DITA或者Markdown发布成CHM格式的内容。尤其是为运行在Windows操作系统下的软件提供离线帮助。DITA发布体系支持将DITA内容发布成CHM格式。

本文分析将DITA或Markdown格式的内容发布成CHM格式的方法,并为实现这个目的扫清实际操作遇到的技术障碍。

- 2 -

DITA-OT发布框架

DITA-OT是DITA内容发布的开源发布引擎。它的诞生,是为了将DITA格式的内容发布成多种格式输出。

随着这些年的发展,DITA-OT支持的输入内容包括DITA和Markdown,输出的格式包括PDF、HTML和CHM格式等。见下图(源自DITA-OT官网:www.dita-ot.org):

1. 输入格式一:DITA Map + Topic

系统支持由XML格式的DITA Map和XML格式的Topic组成的文档,见下例。

Map文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map
  PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd">
<map xml:lang="zh-CN">
  <title>智能云相册</title>
  <topicref href="./topics/chap1.dita">
    <topicref href="./topics/sect1-1.dita"/>
    <topicref href="./topics/sect1-2.dita"/>
    <topicref href="./topics/sect1-3.dita"/>
    <topicref href="./topics/sect1-4.dita"/>
    <topicref href="./topics/sect1-5.dita"/>
  </topicref>
  <topicref href="./topics/chap2.dita">
    <topicref href="./topics/sect2-1.dita"/>
    <topicref href="./topics/sect2-2.dita"/>
    <topicref href="./topics/sect2-3.dita"/>
  </topicref>
  <topicref href="./topics/chap3.dita">
    <topicref href="./topics/sect3-1.dita"/>
    <topicref href="./topics/sect3-2.dita"/>
    <topicref href="./topics/sect3-3.dita"/>
  </topicref>
</map>

Topic文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
  PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
<topic id="general" xml:lang="zh-CN">
  <title>产品概述</title>
  <prolog/>
  <body>
    <p>智能云相册(Cloud Photos)是阿里云为影像类应用提供的一站式解决方案。智能云相册除了提供影像文件存储、管理等基础功能以外,还支持对影像内容进行分类打标、面孔识别等智能分析,并提供基于自然语言理解的智能搜索服务。</p>
    <p>智能云相册服务基于阿里云云计算服务构建,它解决了以往搭建云相册后端服务过程中,需要购买、搭建和运维 ECS 集群,集成其他云计算服务(对象存储、媒体转码等),处理海量用户的高并发请求等一系列繁琐的问题。更重要的是,它提供了对影像内容的智能分析,智能生成相簿和智能搜索等服务,让人工智能技术变得触手可及,极大提高企业和个人用户构建云相册应用程序的效率。</p>
  </body>
</topic>

发布过程是这样的:

2. 输入格式二:DITA Map + Markdown

同时,系统也支持由XML格式的DITA Map和Markdown格式的Topic组成的文档,见下例。

Map文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd">
<map xml:lang="zh-CN">
    <title>智能云相册</title>
    <topicref navtitle="产品简介">
        <topicref href="./chap1/sect1-1.md" format="mdita"/>
        <topicref href="./chap1/sect1-2.md" format="mdita"/>
        <topicref href="./chap1/sect1-3.md" format="mdita"/>
        <topicref href="./chap1/sect1-4.md" format="mdita"/>
        <topicref href="./chap1/sect1-5.md" format="mdita"/>
    </topicref>
    <topicref navtitle="快速入门">
        <topicref href="./chap2/sect2-1.md" format="mdita"/>
        <topicref href="./chap2/sect2-2.md" format="mdita"/>
        <topicref href="./chap2/sect2-3.md" format="mdita"/>
    </topicref>
    <topicref navtitle="用户指南">
        <topicref href="./chap3/sect3-1.md" format="mdita"/>
        <topicref href="./chap3/sect3-2.md" format="mdita"/>
    </topicref>
</map>

:目前DITA-OT不支持使用Markdown来写DITA Map文件,只支持使用Markdown编写Topic。

上例中格式mdita表示Markdown格式的DITA Topic。

Markdown格式的Topic内容:

# 产品概述


智能云相册(Cloud Photos)是阿里云为影像类应用提供的一站式解决方案。智能云相册除了提供影像文件存储、管理等基础功能以外,还支持对影像内容进行分类打标、面孔识别等智能分析,并提供基于自然语言理解的智能搜索服务。


智能云相册服务基于阿里云云计算服务构建,它解决了以往搭建云相册后端服务过程中,需要购买、搭建和运维 ECS 集群,集成其他云计算服务(对象存储、媒体转码等),处理海量用户的高并发请求等一系列繁琐的问题。更重要的是,它提供了对影像内容的智能分析,智能生成相簿和智能搜索等服务,让人工智能技术变得触手可及,极大提高企业和个人用户构建云相册应用程序的效率。

提示:在发布过程中,如果Topic格式是Markdown,系统先将它转换成XML格式的Topic,然后再执行发布。

发布过程是这样的:

如果你所在的公司有很多Markdown格式的内容,想将他们组合在一起发布,那么通过这种方式可以将Markdown内容纳入DITA发布体系,获得单一数据源多种格式输出的能力。

- 3 -

实践

因为CHM是微软公司独有的格式,只能在Windows操作系统上运行,所以请在运行Windows操作系统的电脑上运行本实践步骤

1. 安装必要软件

如果安装了Oxygen XML Editor编辑器,它已经包含了DITA-OT发布引擎。

如果没有使用Oxygen XML Editor编辑器,那么可以自行到DITA-OT官网(www.dita-ot.org)下载安装程序,并按照文档安装到电脑上。本文使用的是DITA-OT 3.7.4版本。

无论用到上边两种方法的哪一种,都需要额外安装一个软件叫做HTML help workshop。这个软件是微软公司开发的,但大家可能会发现微软公司的官网已经下载不到这个软件了。

幸运的是,有其他人也碰到了此问题,并提供了解决方案。请访问如下网页:

https://learn.microsoft.com/en-us/answers/questions/265752/htmlhelp-workshop-download-for-chm-compiler-instal

点击网页中的下图链接下载安装程序:

:以上链接需要科学上网才能下载。经确认发现最后一个德语下载链接可以直接访问下载

下载后,请运行这个安装程序安装HTML help workshop软件。

注意:将htmlhelp.exe下载下来后在安装之前建议使用杀毒软件查杀文件确保安全。

2. 使用Oxygen XML Editor发布

在Oxygen XML Editor编辑中打开ditamap文件,然后发布,如下图:

系统会生成xxx.chm文件。双击此文件,打开结果如下图:


3. 使用Windows命令行发布

如果没有Oxygen XML Editor并且安装了DITA-OT,则使用Windows命令行发布。

1) 打开Windows命令行

2)运行以下命令

cd C:\dev\dita\dita\cloudphotox
dita -i cloudphoto.ditamap -f htmlhelp -o out

注:C:\dev\dita\dita\cloudphotox是我ditamap文件所在路径。

第二行命令的意思:

  • -i cloudphoto.ditamap:输入文件是cloudphoto.ditamap
  • -f htmlhelp:输出格式为htmlhelp
  • -o out:输出文件放到out目录下

3)输出结果为out目录下的cloudphoto.chm文件。

打开以后如下图:

- 4 -

总结

通过本文描述的总结和实践,大家可以使用此方法将DITA和Markdown格式的内容发布成CHM格式的帮助文件。

赶快试试吧!