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

AD2428与SigmaStudio:从节点自动配置与EEPROM存储实战

本文详细介绍了AD2428 A2B收发器与SigmaStudio开发环境的集成应用,重点讲解从节点自动配置与EEPROM存储的实战流程。通过硬件连接、属性配置、数据导出及嵌入式系统集成等步骤,实现设备上电自启动,提升汽车音频系统的可靠性与部署效率。

g8f9d0s1a2的博客 650

使用HTML Help Workshop制作chm文件

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

lanyanjiayu的专栏 2373

CANoe数据回放实战:如何用Replay Block精准复现实车故障(附ECU数据处理技巧)

本文深入探讨了利用CANoe的Replay Block功能进行数据回放,以精准复现实车偶发性故障的实战方法。文章重点解析了从原始OBD日志中移除目标ECU数据、转换报文方向等核心数据处理技巧,旨在帮助工程师重构真实的网络测试环境,从而高效定位并解决复杂的ECU问题。

nnn11的博客 496

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

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

weixin_34032621的博客 424

VINS-Mono 代码详细解读——IMU预积分的残差、Jacobian和协方差 processIMU()+intergrationBase类+imu_factor.h

IMU离散中值预积分 1.1、IMU模型 测量值:加速度计a^、陀螺仪w^, 加上了bias游走和随机白噪声。 真实值:加速度计a、陀螺仪w。 实际情况下,可以获得测量值a^和w^,需要反推真实值。一般忽略随机游走高斯噪声n w=w^-bg; a=qwb(a^-ba)-gw; 1.2、连续时间IMU运动模型,积分 PVQ(两帧之间) 将第k帧和第k+1帧所有的IMU进行积...

try_again_later的博客 9266

IAR9.20.4安装与注册全攻略:附资源及典型问题解决方案

本文提供IAR9.20.4的详细安装与注册指南,涵盖环境准备、安装步骤、权限设置及注册机使用技巧。针对典型问题如评估版残留、权限不足和杀毒软件拦截等,给出了具体解决方案,帮助用户顺利完成IAR开发环境的搭建与激活。

a2b3c4d5e的博客 296

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

Origin绘制带差异显著性标记的分组均值条形图|科研论文图表教程(附数据格式模板)

传统柱状图虽能呈现组间均值差异,却隐藏个体数据分布;散点图虽能展示原始数据,却难以直观凸显统计显著性。带差异显著性(*)的分组均值条形图——它以“双层叙事”的创新设计,同时呈现群体特征与个体差异。

weixin_50236590的博客 1493

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

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

weixin_30800807的博客 463

【TiktokAPI】Tiktok直播API与实时互动功能开发完全指南

Tiktok直播API允许开发者创建、管理直播,并实现各种互动功能。/*** 获取Tiktok直播API访问令牌* @param {string} client_id - 应用ID* @param {string} client_secret - 应用密钥* @param {string} code - 授权码* @param {string} redirect_uri - 重定向URI* @returns {Promise<object>} 访问令牌响应*/try {}),

Mageia的专栏 3195

C语言实现惯性导航初始对准全部核心代码

惯性导航初始对准包括间接粗对准和卡尔曼滤波精对准,其中。为基于卡尔曼滤波的精对准,其中。

十八与她的博客 2283

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

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

WW、forever的博客 188
上一篇: 公有领域一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、付费专栏及课程。

余额充值