查看: 6122|回复: 1

分享解决AxureRro生成CHM文件目录乱码的解决方案

[复制链接]

0

主题

7

回帖

112

积分

会员

互联网从业者

Rank: 5Rank: 5

积分
112
发表于 2011-11-30 15:12:49 | 显示全部楼层 |阅读模式
尹广磊公众帐号
生成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

0

主题

1

回帖

11

积分

会员

Rank: 5Rank: 5

积分
11
发表于 2011-12-13 16:41:16 | 显示全部楼层
跪求具体范例。
如:我的HTML HELP WORKSHOP是安装在“C:\Program Files\HTML Help Workshop”位置
我当前编写的CHM文件位置是在“C:\Users\张三\Documents\我的 Axure RP 原型\移动无限\移动无限产品原型演示.chm"

那么我该如何修改   VBS   文件里的第2,3,4行代码

本人邮箱:  9649448@qq.com  感激不尽!
您需要登录后才可以回帖 登录 | 新用户注册

本版积分规则

QQ|手机版|友情链接|版权声明|关于我们|Axure中文社区 |网站地图

GMT+8, 2024-5-14 12:10

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表