生成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行的参数 |
欢迎光临 爱评测-移动互联网评测 (http://www.aipingce.com/) | Powered by Discuz! X3.2 |