解压chm后由hhc生成html索引页面

CHM文件深度解析:从原理、安全机制到现代修复与编辑全攻略 CHM(Compiled HTML Help)是一种基于HTML打包编译的离线文档格式,其核心原理在于通过微软的ITStorage结构化存储技术,将网页、图片、索引等资源封装为单一文件,并辅以.hhp、.hhc、.hhk等导航文件实现目录树和全文检索。这一技术在当时提供了无需网络、高效检索的知识管理方案,广泛应用于软件帮助文档和技术手册。然而,随着系统安全机制的升级,现代Windows因限制CHM内嵌脚本的本地执行权限,常导致文件打开时出现空白或导航错误。从工程实践角度,解决此类问题需从文件属性解除锁定、调 阅读详情

解压chm大家都知道很简单。很多时候用hh来看chm是很痛苦的(比如没有增量查找功能),但是只用hh或者7z解压的chm,根本就没有目录(运气好的话,一些电子书会有目录页),而当我们用hh查看时,.hhc才是真正的目录。。

今天实在觉得不能忍受,于是打开perl写了个将.hhc简单转成.htm的脚本程序,代码最终很简单,但区区花了不少时间去尝试XML::Simple(原以为更简单)。

这段代码后悔没早些写出来,那看chm得轻松很多。^_^

 

另注:如果你想做的是将chm转换成一个带有hhc目录网页的文件夹,这里 有完整解决方案。

 


 

 

use feature qw(say);
use HTML::TreeBuilder;
if ($#ARGV != 1) {
    say "/n/nusage: hhc2idx.pl your.hhc your.htm";
    exit;
}
{
    my $tree = HTML::TreeBuilder->new; # build empty tree
    $tree->parse_file($ARGV[0]); #parse hhc file as HTML
    $tree->elementify(); #optional prevent reparse
   
    @objects = $tree->look_down("_tag","object"); #all object
    #say "there ar $#objects ob";
    for my $ob (@objects) {
        my ($el, $dst, $name);
        $el = $ob->look_down("name", "Local"); #Local val as <a> href URL
        if (defined($el)) {
             $dst = $el->attr('value')
        }
        $el = $ob->look_down("name", "Name");  #Name val as <a> text
        if (defined($el)) {
             $name = $el->attr('value')
        }
        #say sprintf('<a href="%s" >%s</a>', $dst, $name);
        if (defined($dst) && defined($name)) {
            $ob->replace_with(
                sprintf('<a href="%s" >%s</a>', $dst, $name)
                );
        }
    }
    my $outfile;
    open $outfile, ">", $ARGV[1];
    say $outfile $tree->as_HTML("", " "); #say out the new html text
# Now that we're done with it, we must destroy it.
    $tree = $tree->delete;
}

Eigen 3.1.1 CHM文档:C++线性代数库离线高效查询指南 在C++高性能数值计算领域,线性代数库是处理矩阵运算、几何变换和机器学习算法的基石。其核心原理在于通过模板元编程和表达式模板技术,在编译期优化运算表达式,实现接近手写汇编的运行时效率,这对于机器人学、计算机图形学等对性能要求苛刻的工程实践至关重要。为了最大化这类库的技术价值,开发者需要能够快速、精准地查阅API文档,理解模板参数、成员函数的时间复杂度及注意事项,以优化代码性能和避免常见陷阱。然而,在线文档依赖网络、检索效率低下,严重影响了开发流程。针对这一应用场景,将官方文档编译为CHM格式的离线帮助文件, 阅读详情

相关推荐

CHM文档制作工具与实战教程全解析

CHM(Compiled HTML Help)是微软推出的一种基于HTML的压缩帮助文件格式,广泛应用于软件开发、技术文档发布和用户手册制作。其核心技术架构采用LZ压缩算法将多个HTML页面、图像及样式表等资源整合为单一二进制文件,显著减小体积并提升加载效率。内部通过HHC(HTML Help Catalog)构建层级化目录树,结合HHS索引机制实现毫秒级全文检索,支持关键字跳转与上下文敏感帮助。

weixin_42466857的博客 1573

Doxygen、hhc生成chm格式文档

开源库中很多帮助文档是html格式,需要通过Doxgen生成 生成后有一系列文件,再通过hhc.exe打包成chm,就能方便拷贝到移动设备查看,比如IOS的chm sharp 下载Doxygen https://www.doxygen.nl/download.html 只需要下载其中的 binaries in a zip,我下载的版本为 doxygen-1.9.3.windows.x64.bin.zip 下载hhc.exe https://docs.microsoft.com/zh-cn/previous-

信箱神、得引擎 2273

CHM电子书制作的图文教程与实践指南

CHM(Compiled HTML Help)格式是微软公司推出的一种帮助文件格式,主要用于Windows平台。它将HTML页面、图片和其他支持的多媒体内容编译成一个单独的文件,通常以.chm为扩展名。自1997年随着Microsoft HTML Help Workshop的发布而普及,CHM格式在技术文档、用户手册、电子书等领域广泛使用。CHM(Compiled HTML Help)文件是一种广泛用于软件帮助文档和电子书籍的格式。

weixin_42393362的博客 642

将.hhc文件转换成html文件解析

.hhc–>FAR工具 导出–>htmljsoup解析htmlFile input = new File("/tmp/input.html"); Document doc = Jsoup.parse(input, "UTF-8", "http://www.jb51.net/"); Element content = doc.getElementById("content"); Elements li

85-专栏 2101

CHM电子书源文件反编译工具深度解析与应用实战

简介:CHM(Compiled HTML Help)是由微软开发的一种常用电子书格式,广泛用于Windows系统帮助文档。由于其编译特性,源文件无法直接访问,限制了编辑与内容提取。本反编译工具可高效解包CHM文件,还原其中的HTML页面、图像、CSS样式表等资源,并恢复原始目录结构与元信息(如书签和超链接),支持用户进行查看、修改和再利用。该工具适用于开发者更新文档、教育者定制教材及个人学习研究,但使用时需遵守版权规定,禁止未经授权的修改与商业用途。

weixin_28729843的博客 773

chm的hhc文件生成

chm的hhc文件生成,读文件夹中html文件信息,写入hhc

用C#实现将HTML文件转换为CHM文件(转)

这些天因为工作需要,要将一些html文件转换为chm文件,当然是需要和程序结合在一起。 后来找到NDoc,里头有一段代码是相关的,于是开始分析代码,写完之后,总结:主要是利用微软的hhc.exe来编译html文件,程序需要将具体的数据写入hhp和hhc文件。 主要代码如下: 复制C#代码保存代码public void CompileProject() {     Process h...

weixin_34018202的博客 159

将hcc文件(chm电子帮助)转换为htm可编译文件

hcc2htm 说明:本软件的功能是,将hcc文件(chm电子帮助)转换为htm可编译文件 转换过程如下: 1 安装QuickCHM2.6(请自行购买) 2 运行QuickCHM程序,[文件]-[反编译]-选择chm(电子帮助)文件,选择输出文件夹,等待编译成功,产生.hcc文件。 3 运行本软件,将反编译后的*.hhc文件转换为html文件。 4 打开main.htm,可以看到和chm一样的效果,双击项目可以启动编辑软件打开修改。

chm转换为html的超简单方法

在Windows下chm转换为html的超简单方法(反编译CHM文件的方法)   通过调用Windows命令,将chm 文件转换为html 文件。   方法:   命令行(cmd),输入hh -decompile   例如:   win+r 键,弹出运行窗口输入命令cmd回车,然后输入:   hh -decompile D:/chm/target D:/chm/VC++6DOC.c

quanquan_i的专栏 1866

chm文件转html文件

开始学C#没多久,自己写的一个小程序,可以批量将chm文件转化成html文件,运行需要有.NET,最好是管理员运行。新人作品,如有不足之处望海涵

AI量化交易工作台Vibe-Trading:用自然语言驱动策略回测与多智能体研究

量化交易通过数学模型和计算机程序执行投资决策,其核心在于将市场规律转化为可验证的策略。传统量化开发涉及数据获取、策略编写、回测验证等复杂工程,对非编程背景的从业者构成较高门槛。随着大语言模型技术的发展,自然语言交互正成为降低技术使用难度的关键。Vibe-Trading项目正是这一趋势的实践,它将金融工程任务封装为可调用的工具与技能,允许用户通过自然语言指令直接驱动策略回测、因子研究和投资组合分析。其技术价值在于构建了一个模块化的AI Agent框架,通过ReAct推理框架协调多个专项技能,并创新性地引入多智

weixin_28695161的博客 1567

使用HTML Help Workshop制作chm文件

声明:本指南为个人作品,转载请注明地 址,谢谢合作。 HTML Help Workshop是Microsoft推出的免费的chm编译器,“汉化新世纪”提供了汉化版下载,不过该版本附带了广告插件。如果您不介意的话笔者建议 您到Microsoft页面下载,毕竟Microsoft是chm文件的鼻祖。目前,Microsoft提供的版本是绿色版的,将下 载的文件解压到 一个目录,点击文件夹中的 Setup

lanyanjiayu的专栏 2373

AJ-Report开源数据大屏存在远程命令执行漏洞

该平台可以通过post方式在validationRules参数对应值中进行命令执行,可以获得服务器权限,登陆管理后台接管大屏。如果被攻击者利用,危害后果十分严重。

swordheart的博客 387

CHM文件深度解析:从原理到故障排查与编辑实践

CHM(微软HTML帮助集)是一种将HTML、CSS、图像及索引文件编译打包的离线文档格式,其核心原理类似于一个经过特殊封装的ZIP压缩包,通过内置的ITS格式和解析器实现结构化浏览。这项技术解决了早期网络环境下软件帮助、产品手册快速分发与高效检索的工程需求,广泛应用于技术资料归档与内部知识库管理。在实际应用中,CHM文件常因Windows安全策略(如区域标识符锁定)或路径解析问题导致无法打开,需通过属性解除锁定、系统组件注册等操作进行修复。对于开发者而言,借助7-Zip或CHM Editor等工具进行反编

weixin_34032621的博客 424

计算机网络之NAT的解释与实验配置

NAT 静态NAT 动态NAT easy_ip NAT服务器映射

爱学习的JackYang的博客 1917

SCSA,scCATCH,SciBet,SingleR 四种注释方法比较

以下是和四种细胞类型注释方法的详细对比,从。

qq_40256654的博客 1215

Doxygen + graphviz + Windows Help Workshop生成函数调用图和chm文件

1. 说明 Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。 Graph Visualization Software(...

CL的专栏 3257

基于混合智能框架的景区边界范围预测与补全系统

摘要 本文提出一种混合智能框架,结合随机森林模型和GIS规则约束,解决景区边界缺失问题。系统基于Python和ArcGIS平台,利用多源地理空间数据训练随机森林分类器预测景区范围,并集成地形、水文、道路等GIS规则进行优化。实验结果表明,该方法能有效预测15000个景区的边界,精度优于单一模型。创新点在于: 1)数据驱动与知识驱动相结合的混合智能范式; 2)面向全国尺度的大规模边界补全; 3)提供完整的Python+ArcGIS实现方案。该系统为景区精细化管理提供了技术支撑,具有实用价值。

huanghm88的专栏 282

CHM文件格式深度解析:从HTML Help原理到制作与故障排除

在软件开发和文档工程领域,离线帮助文档和电子出版物的高效分发与阅读体验一直是核心需求。其技术原理通常涉及将结构化内容(如HTML、CSS)进行本地化编译、压缩和索引,以实现无需网络连接的快速访问和全文检索。这种技术方案的核心价值在于,它创造了一个独立、高性能的文档容器,极大地优化了用户在带宽有限或离线环境下的知识获取效率。其典型应用场景包括传统桌面软件的帮助系统、技术手册和离线电子书。本文聚焦于实现这一目标的经典技术——微软HTML帮助集(CHM文件),深入解构其基于ITSF/ITSP文件系统的内部格式、倒

weixin_30800807的博客 463

【Python爬虫系列】_005.浏览器开发者工具(详解)

Elements(元素)分析当前页面节点,用来辅助书写BS或者XPath这里面的数据与源代码有区别,不一定准确(避坑)Console(控制台)这个除了查看错误信息、打印调试信息(console.log())、写一些测试脚本以外,还可以当作Javascript API查看用例如我想查看console都有哪些方法和属性,我可以直接在Console中输入"console"并执行后续学js逆向的时候需要用到Sources(源代码)与在网页页面,鼠标右键——查看网页源代码 内容一致。

weixin_50296259的博客 422

Open3D——直通滤波(python详细过程版)【2025最新版】

python就一个字:强。博客长期更新,本文最近更新时间为:2025年1月11日。

点云侠的博客 7515

JAVA eclipse(myeclipse)生成帮助文档(html或chm格式)

目录(?)[+] 转自:http://www.blogjava.net/lishunli/archive/2010/01/07/308618.html Javadoc转换chm帮助文档的四种方法总结 V1.0 关键词 Javadoc chm 转换 jd2chm javadoc2chm javadoc2help Javadoc2chm 中文乱码 李顺利 前言 ...

ithome 296

QGIS编译(跨平台编译)之五十六:QScintilla编译、QScintilla安装(Windows、Linux、MacOS环境下编译、安装)

QGIS编译;QScintilla编译、QScintilla安装(Windows、Linux、MacOS环境下编译、安装)

LuckyHanMo的博客 1898
上一篇: 公有领域一AES加解密算法C语言实现,和一个小的改进
下一篇: 支持自动TOC超文本目录生成的chm转换器(perl脚本)
JoyerHuang_悦
博客等级 码龄23年 101粉丝 111原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值