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

Hive SQL零基础到精通:100道练习题+答案,SQL能力快速提升

我将以我15年架构与开发的经验,带领大家从零基础到精通,通过精心设计的100道练习题及其详解,系统地、深度地掌握Hive SQL的核心精髓。它可以将结构化的数据文件映射为一张数据库表,并提供了一套类SQL的查询语言——HiveQL(简称HQL),允许熟悉SQL的用户直接查询存储在HDFS上的海量数据。它将Job描绘为DAG(有向无环图),允许更灵活的任务编排,避免不必要的中间落盘,可以复用容器,从而大幅降低延迟。希望你以此文为起点,在广阔的大数据世界里继续遨游,成为一名真正的数据高手!

架构师的AI之路,分享AI应用开发架构的学习与实践。 798

使用HTML Help Workshop制作chm文件

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

lanyanjiayu的专栏 2373

基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验

本文详细介绍了基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验。通过分析纯滞后系统的控制难题,探讨大林算法在工业控制中的应用优势,并提供Matlab-Simulink环境搭建、控制器D(z)设计、振铃消除及仿真实验的完整流程。文章还对比了大林算法与PID控制的性能差异,为工程实践提供参考。

dropout6artist的博客 796

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

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

weixin_34032621的博客 424

医药行业新零售项目数据分析报告——基于Excel的分析与可视化

不同平台客户支付金额用数字+百分比展示更直观。各大区支付金额分析较为粗浅,后续可加入不同大区人数、配送费等进行细分分析。图表略微单一,可采用组合图,运用两个及以上维度对数据进行分析。数据来源本项目数据来源于某机构的项目案例,以上分析内容均为本人原创,不涉嫌抄袭。原做项目,新平台首发。

2401_84213513的博客 1495

34、木材在家具制造中的应用

本文详细探讨了木材在家具制造中的应用,从木材的选择、加工技术到设计创新和表面处理等方面进行了全面解析,并结合实际案例分析木材家具的市场趋势与未来发展。文章强调了木材家具在功能性、智能化和环保性方面的潜力,展示了其在现代家居生活中的重要地位。

flink9streamer的博客 242

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

RT-DETR改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进RT-DETR颈部网络

本文记录的是利用颈部结构优化RT-DETR的目标检测网络模型。利用改进后的颈部网络,通过跳层连接,避免了在进行反向传播时的梯度消失问题,并且引入跨尺度连接,可以实现不同级别和层次的特征充分融合,获取足够的高层语义信息和低层空间信息交换,从而在大规模变化场景下提高检测性能。GIRAFFEDET: A HEAVY-NECK PARADIGM FOR OBJECT DETECTION-GFPN包含了上述的跳层连接(dense-link和log2nlog _{2} nlog2​n-link)以及跨尺度连接(Quee

Limiiiing的博客 2228

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

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

weixin_30800807的博客 463

RTX6000 PRO BLACKWELL 最优 CUDA 版本选择指南(适配 vLLM/SGLang 大模型推理)

本文针对NVIDIA Blackwell架构RTX6000PRO显卡部署vLLM/SGLang大模型推理引擎时的CUDA版本选择问题,提出专业建议。分析表明,CUDA12.9(需搭配552.06+驱动)是最优选择,因其完全支持BW架构特性,且与vLLM/SGLang最新版本深度适配。文章提供详细的Linux环境部署教程,包括驱动升级、CUDA12.9安装及vLLM/SGLang配置步骤,并指出CUDA13.0目前适配不完善,不推荐新手使用。最后给出常见问题解决方案,强调版本匹配对推理性能和稳定性的重要性。

2501_93651177的博客 681

PyTorch深度学习实战(1)——神经网络与模型训练过程详解

在本节中,我们将了解传统机器学习与人工神经网络间的差异,并了解如何在实现前向传播之前连接网络的各个层,以计算与网络当前权重对应的损失值;实现反向传播以优化权重达到最小化损失值的目标。并将实现网络的所有关键组成——前向传播、激活函数、损失函数、链式法则和梯度下降,从零开始构建并训练了一个简单的神经网络。

盼小辉丶的博客 9万+

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

GameFramework教程✨六、怎样加载一个3D UI

怎样加载一个3D UI

星河造梦坊 1583
上一篇: 公有领域一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、付费专栏及课程。

余额充值