Linux下用wine实现CHM制作

本文介绍如何在Linux系统中利用Wine工具将HTML文件转换为微软的CHM帮助文档。通过简单的脚本操作,你可以在不离开Linux的情况下完成这个任务,实现了跨平台的CHM制作。
如何在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没有替换或者注册失败
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值