close

在 Linux 下將 chm 檔轉成 html

有位 mison 兄寫出了 chm2html,可在 Linux 下將 chm 檔轉成 html,採用 GPL 授權喔! 實在非常感謝 mison 兄!!!

用法簡介如下:

1. 下載 chm2html( FreeBSD version )
ftp://ftp.tnc.edu.tw/pub/chm2html

2. 編譯

tar xvzf chm2html-0.1.tar.gz
cd chm2html-0.1

make

3. 假設要轉換的 chm 檔為 KNXBV.CHM
ftp://ftp.tnc.edu.tw/pub/chm2html/KNXBV.CHM

chmod +x chm.sh
./chm.sh KNXBV.CHM

即可自動叫出 mozilla 瀏覽轉換成功的 html

或者:

./chm2html < KNXBV.CHM test/

然後用瀏覽器觀看 test 目錄中的 index.html 即可。

建索引目錄檔: knxvb.html

./hhc2html.pl test/KNXBV.hhc > test/knxvb.html

也有 FreeBSD 的 port 版本喔!

ftp://freebsd.sinica.edu.tw/pub/statue/chm2html/chm2html-0.1a.tgz

ftp://ftp.tnc.edu.tw/pub/chm2html/freebsd-port/chm2html-0.1a.tgz

以下是原作者的 README 說明。

====

by mison@bbs.ee.ntu.edu.tw

這裡有一篇 HTML Help (CHM) 的參考資料
<http://www.speakeasy.org/~russotto/chm/chmformat.html>

可以參考裡面的 CHM Tools package
<http://www.speakeasy.org/~russotto/chm/chmtools.tar.gz>
再加上 netscape plugins SDK
<ftp://ftp.netscape.com/pub/sdk/plugin/unix/unix-sdk-3.0b5.tar.Z>
寫一個 chm plugin,就可以用 mozilla 看 chm 檔了。

因為這陣子發現在NetScape跑得好好的JavaScript在IE不能執行,找到M$
的說明文件是CHM格式;在網路上尋找CHM的工具軟體,幾乎都是M$作業系
統的版本,唯一有點機會的是 CHM Tools Package 含程式原始碼,偏偏又
make不起來。

看到GNU/Linux有朋友問到『在Linux看CHM的軟體』的同時,我正在想辦法
把 CHM 寫成 mozilla plugin,因為 plugin 參考資料也是很少,遇到一些
瓶頸;看到有人也需要使用CHM格式.於是先改一個暫時版應急。

關於『怪符號檔名』問題,新版已經改正,把
system( "install -d directory"); 改成 mkdir( "directory", mask);
就可以了;這個部分的功能其實沒有太大影響,暫時先保留,等 plugin 版
完成時,再一起release出來。

在 GNU/Linux 看 .chm 的工具程式,版本更新:
<http://www.geocities.com/labourvanity/pub/chm2html-0.1a.tgz>

新版修正bug,並增加支援中文檔名、轉『目錄檔』為 html 或 bookmark

安裝步驟:

tar -xzvf chm2html-0.1a.tgz
cd chm2html
tar -xzvf chmtools.tar.gz
tar -xzvf utf-converter-1.0.tar.gz
make

使用說明:

一、把 ~/winhlp/braille.chm 解開、放到 ./tst 底下
../chm2html < ~/winhlp/braille.chm ./tst

二、解開CHM會有一個 .hhc 的目錄檔,可以轉成 html
../hhc2html.pl ./tst/braille.hhc > .tst/braille.html

三、目錄檔也可以轉成 mozilla 的 bookmark 來用
../hhc2bookmark.pl --lo=on --root=`pwd`/tst ./tst/braille.hhc > bookmark.html

補充說明:

中文檔名的部分,只是把 chm 裡的 unicode 轉成 big5,
這樣只是讓解出來的中文檔名可以讓人看得懂,hyper link還是會有問題。

參數 --lo=on 是指定把大寫檔名改為小寫,這是因為 chm2thml 是根據 chm 檔頭
解出檔案,而 hhc 目錄、chm 檔頭裡的檔名,兩者可能不一致。所以在第一步 chm
解開後、自行判斷要不要加 --lo=on

bookmark 只是一個暫時的解決方案,可以用 hhc2bookmark 轉出來的檔案替換原來
~/.mozilla 裡的 bookmark,這樣可以模擬 M$-IE 的 text/sitemap;其實有更好
的方法, mozilla 有提供 sidebar 和 IE sitemap 類似,但是我還不知如何新增
sidebar 到 mozilla 裡面。

hyper link 檔名不一致的問題可能千奇百怪,轉目錄的程式是用 perl 寫的,
若有需要,請自行修改 perl 程式裡的 regular expressions

微軟有個程式可以HTML->CHM,也可以轉回來,應該是這個
http://download.microsoft.com/download/
OfficeXPProf/Install/4.71.1015.0/
W98NT42KMe/EN-US/HTMLHELP.EXE

請自己把他串成一行,很多html檔時蠻好用的

====

註1: htmlhelp.exe 可至以下位址下載:

ftp://ftp.tnc.edu.tw/pub/cpatch/helputil/htmlhelp

註2:

Linux 下觀看 chm 的 viewer:

GnoCHM :

http://gnochm.sourceforge.net/

xCHM :

http://xchm.sourceforge.net/

chmviewer :

http://www.herdsoft.com/ftp/downloads.html#chmviewer

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Bluelove1968 的頭像
    Bluelove1968

    藍色情懷

    Bluelove1968 發表在 痞客邦 留言(0) 人氣()