我想用 C# 编写 CHM 查看器。什么资源/信息可以帮助我做到这一点?
问问题
2598 次
2 回答
6
我已经用 C++ 编写了一个 chm 查看器,作为 SumatraPDF ( http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html ) 的一部分。它是开源的,因此您可以将代码移植到 C# ( http://code.google.com/p/sumatrapdf/ )。
chm reader只有几个部分:
- 解析 CHM 文件格式,提取 *.html 页面和 CHM 文件中的其他文件。在苏门答腊,我们使用 CHMLib ( http://www.jedrea.com/chmlib/ ) 但还有其他库 ( http://bonedaddy.net/pabs3/code/#hhm )
- 显示 .html 页面,这在 C#/.NET 中使用 Web 浏览器控件非常容易
- 您可能希望实现其他功能,例如目录。目录需要解析一个 CHMindex 文件并构建一个带有节点的树视图(您可以查看http://code.google.com/p/sumatrapdf/source/browse/trunk/src/ChmEngine.cpp了解我们如何做它在苏门答腊)
于 2012-01-10T22:55:12.977 回答
1
应该不会太难。你可以看看这个http://savannah.nongnu.org/projects/chmspec这是对 chm 文件格式的一个很好的猜测,因为微软从未发布过官方规范。从表面上看,它基本上是一个压缩的 html 文件的集合。解压缩后,您可以在嵌入式浏览器控件中打开 html 文件。正常的浏览器控件是基于 IE 的,但正在进行创建 chrome 和 firefox 可嵌入控件的项目。
于 2010-07-17T06:19:18.417 回答