如何在Linux(以FC为例)下生成CHM电子书(以非图形界面的方式)
由于微软没有公开CHM的格式,所以Linux下CHM的制作一直没有好的办法。目前可行的方式是用wine运行“HTML help Workshop”来实现。
“HTML help Workshop”是微软提供的一款制作CHM的免费软件,但是操作不便。它提供了生成CHM的主程序
hhc.exe 和动态库
hha.dll,我们的思路是在linux下用wine来运行 hhc.exe,生成CHM电子书。
具体步骤
[准备软件]
(1) wine-1.0.1.tar.bz2:
http://www.winehq.org/announce/1.0.1
(2) html help workshop:
http://jy.newhua.com/down/HA_HHWorkShop474_ljh.rar
注:这是一个汉化版
注:这是一个汉化版
(3) itss.dll:c:/windows/system32/itss.dll
(4) 安装了xserver的linux系统
[安装Wine]
# tar jxvf wine-1.0.1.tar.bz2
# cd wine-1.0.1
# ./configure --prefix=/usr/local/wine
# make depend
# make
# make install
如果configure过程中出现错误提示,注意按照提示去减去相应的编译模块,但是xserver是必不可少的;如果提示没有xserver,则必须安装之。
[生成wine工作目录]
# cd /usr/local/wine/bin/
# wine
运行之后,会有几行提示,不管它。
在 /root/.wine/ 目录下生成了 wine 模拟系统的文件
[移植hhc]
复制 hhc.exe 和 hha.dll 到 /root/.wine/drive_c/windows/ 目录下
复制 c:/windows/system32/itss.dll 到 /root/.wine/drive_c/windows/system32/目录下,替换
执行
# cd /root/.wine/drive_c/windows/system32/
# /usr/local/wine/bin/wine regsvr32.exe itss.dll
[编写生成脚本]
# cd /root
# mkdir chmtt
# cd chmtt
# vi mkchm
mkchm的内容如下
#!/bin/bash
# script - mkchm
export DISPLAY=:0.0
export WINEDLLOVERRIDES="itss=n,b"
/usr/local/wine/bin/wine /root/.wine/drive_c/windows/hhc.exe z://root//chmtt//1.hhp
将一个workshop的工程文件(包含.hhp .html .hhc .hhk等)全部复制到 /root/chmtt目录下,然后执行脚本
# cd /root/chmtt/
# ./mkchm
会出现一堆错误提示,不用管他
此时会在 /root/mkchm 目录下生成 1.chm
[大功告成]
如果在执行 mkchm 时提示找不到xserver,则说明xserver没有启动,执行
# X &
即可
如果在执行 mkchm 时提示
fixme:itss:ITStorageImpl_SetControlData
则表示itss.dll没有替换或者注册失败
本文介绍如何在Linux系统中利用Wine工具将HTML文件转换为微软的CHM帮助文档。通过简单的脚本操作,你可以在不离开Linux的情况下完成这个任务,实现了跨平台的CHM制作。

314

被折叠的 条评论
为什么被折叠?



