解压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,最好是管理员运行。新人作品,如有不足之处望海涵

27-eMMC电路设计

eMMC硬件电路设计

weixin_66510961的博客 4008

使用HTML Help Workshop制作chm文件

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

lanyanjiayu的专栏 2373

ECB oracle——attack

基于ECB oracle的攻击方案前言什么是ECB方案步骤1.确定块大小和明文大小2.暴力破解求明文脚本代码 前言 参考文章:Breaking ECB by prepending your own message. 环境地址:ECB oracle 什么是ECB 分组密码中AES的一种模式(其他还有:CBC、ECB、CTR、OCF、CFB)如图每一块加密是分开的。 方案步骤 1.确定块大小和明文大小 先用一个字符"a"去encrypt返回32个字节的数据(64位16进制)依次用"aa",“aaa”…去en

weixin_44617902的博客 1311

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

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

weixin_34032621的博客 424

Keil MDK-ARM v5.43a 部署 STM32F103 开发环境全流程

嵌入式开发环境是 Cortex-M 微控制器工程落地的基础支撑,其核心在于编译器链、设备支持包(DFP)与调试驱动的协同一致性。Keil MDK-ARM 作为工业级 ARM Cortex-M 开发套件,依托 Arm Compiler 和 CMSIS 标准,提供从代码编译、外设抽象到实时调试的全栈能力。其技术价值体现在对 STM32 等主流 MCU 的深度适配、高可靠性 SWD 调试支持,以及与 HAL 库、CubeMX 工程的无缝集成。典型应用场景涵盖温湿度传感终端、工业 PLC 子模块及低功耗边缘节点开发

weixin_33750664的博客 888

零基础学GPU KMD--8. 内存管理:GPU 显存与系统内存的协同​8.1 显存分配策略:GEM / TTM 原理

支持 VRAM、GTT(Graphics Translation Table)、SYSTEM 内存的动态迁移与缓存管理。:若缓冲区在 SYSTEM,TTM 分配 GTT 条目并建立页表映射,使 GPU 可直接访问。:系统内存中预留给 GPU 直接访问的区域,通过 GPU 的 MMU 做地址翻译。你需要我继续展开这一部分吗?​ 为复杂离散 GPU 设计,应对大容量 VRAM、多内存域、显存迁移等问题。:重量级、功能全,适合大容量、多内存域的离散 GPU,强调显存迁移与统一管理。

amy_mhd的博客 185

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

【2025CSPJ普及组】T4. 多边形

【2025CSPJ普及组】T4. 多边形【题目描述】小 R 喜欢玩小木棍。小 R 有 n 根小木棍,第i(1≤i≤n) 根小木棍的长度为 ai。

lybc2019的博客 849

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

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

weixin_30800807的博客 463

【红外DDE算法】一种应用于高动态范围红外可视化的算法

【红外DDE算法】一种应用于高动态范围红外可视化的算法 - 这个算法背后的动机 - 展示这个算法的流程 - 然后讨论各个可调参数的意义。

sunwindl91181的博客 1682

yolov8涨点系列之Concat模块改进

yolov8涨点系列之Concat模块改进

zhang1379的博客 2950

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

2023年高教社杯 | 2023年高教社杯全国大学生数学建模思路(A题思路、C题思路)

2023年高教社杯 | 2023年高教社杯全国大学生数学建模思路(A题思路、C题思路)

前程算法屋的博客 624
上一篇: 公有领域一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、付费专栏及课程。

余额充值