分享解决AxureRro生成CHM文件目录乱码的解决方案
分享解决AxureRro生成CHM文件目录乱码的解决方案
生成chm文件是一种比较好用的离线分享原型的手段,特别是对于原型在内网发布,但是老板在外面要用邮件看原型。
但是axure生成的chm文件,左侧目录为乱码,对于有些人来说,可能不适应。
网上查了是什么原因,以及手动的解决方案,就用vbs实现了一下。
在桌面创建一个后缀为.vbs的文本文件,将以下代码粘贴上,第2,3,4行是hhc文件的路径设置、生成路径及文件名的设置,要根据自己的实际情况修改。
每次使用axure生成chm文件后,双击vbs文件运行这个vbs,就ok了
代码如下(全部开源,不用含担心木马):
Dim strHHCEXE, strWorkPath, strFileName
strHHCEXE = "C:\Program Files\HTML Help Workshop\hhc.exe"
strWorkPath = "D:\server\APMServ5.2.0\www\htdocs\protype\t\"
strFileName = "111120a"
Dim strHHCFile, strHHPFile, strCompileCmd
strHHCFile = strWorkPath+"Table of Contents.hhc"
strHHPFile = strWorkPath+strFileName+".hhp"
strCompileCmd = """"+strHHCEXE+""""""+strWorkPath+strFileName+".hhp"""
'将hhc从unicode转换为Ansi
U8ToAnsi(strHHCFile)
'将hhp文件中的0x409(英文),改为0x804(中文)
Dim fso, f, ts, strContent
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(strHHPFile)
Set ts = f.OpenAsTextStream(1, 0)
strContent = ts.ReadAll
ts.close
strContent = Replace(strContent,"=0x409","=0x804")
Set ts = f.OpenAsTextStream(2, 0)
ts.write strContent
ts.close
'重新编译chm文件
Set WshShell =CreateObject("WScript.Shell")
WshShell.Run strCompileCmd
function U8ToAnsi(strFile)
dim ADOStrm
dim s
Set ADOStrm = CreateObject("ADODB.Stream")
ADOStrm.Type = 2
ADOStrm.Mode = 3
ADOStrm.CharSet = "utf-8"
ADOStrm.Open
ADOStrm.LoadFromFile strFile
s = ADOStrm.ReadText
ADOStrm.Position = 0
ADOStrm.CharSet = "gbk"
ADOStrm.WriteText s
ADOStrm.SetEOS
ADOStrm.SaveToFile strFile, 2
ADOStrm.Close
Set ADOStrm = Nothing
end function
如果从Web上拷贝这段代码,有格式问题,可以参考下载附件,记得修改里面第2、3、4行的参数生成chm.rar (883 Bytes)下载次数:38
2011-11-30 16:09
收藏分享评分
页:
[1]