返回首页

{A}
{S0}简介
本文介绍了大众几乎任何在线内容转换成CHM格式的可能是最快和最可靠的方法之一。被设计为自动和尽可能具有成本效益的转换。虽然在这篇文章中描述的过程是侧重于以下产品:网上内容创作({A3}),猎犬({A4}),CHM发生器({A5})
,可能的话,可以调整,以适用(FE {A6}网上内容创作)的任何产品。
,以协调在以下三个层次(和节省了宝贵的时间)之间的合作,CHM的绑架,一个自定义的内置命令行工具已创建。为什么要转换CHM格式的?
尽管其巨大的优势,每一个在线的系统(如公司/爱好的Wiki)也有其局限性和复杂性:它需要一个HTTP服务器,数据库服务器,服务器端的语言解释器/编译器(FE PHP,C#/ ASP.NET),和连接到互联网或内联网。
如果有人想访问的内容,只找到一些信息,但是,出于某种原因,他/她不会有可能连接到系统(FE由于准入的限制,服务器负载高),问题的出现。在我们开始之前
有几件事情需要开始CHM绑架者的工作:NET框架2.0,Mozilla Firefox的{A7}){A5}。解决方案大纲
下面的图表代表的总体思路:
第一,用户编辑的网上内容,使内容提供离线保存,然后,CHMSnatcher正在配置XML配置文件(有关详细信息,请阅读下一节),然后,CHMSnatcher命令行实用程序是在预处理模式下运行:iMacros的宏文件生成,HTML项目文件生成。然后,用户启动Mozilla Firefox浏览器,并在iMacros中添加上,选择在上一步生成的宏,然后运行它。宏身体检索(进程)的URL目标(这可能需要一段时间)。然后,CHMSnatcher命令行实用程序是运行在后处理模式:正在下载的内容的合适的替代品(FE适当的*. css文件是另一个取代),生成CHM文件(使用Microsoft HTML Help Workshop的)。
,CHM绑架者不:检索的网页??它只是生成一个宏,负责检索(更确切地说,是由Mozilla Firefox的,iMacros都添加上运行的宏),生成CHM文件??再次,它只是生成必要的HTML帮助车间HTML Help Workshop的编译CHM文件的项目文件。
把所有一起:CHM绑架者仅仅是一个quot;人在中间,"减少用户的努力,协调各种工具。CHM绑架者概述
如上所述,CHM绑架者是一个命令行实用工具。目前,它仅支持两个命令:

CHMSnatcher.exe preProcess [path to XML configuration file]

CHMSnatcher.exe postProcess [path to XML configuration file]

每两个命令需要一个XML配置文件。这里涉及一个更详细的说明例子:{C}snatchExpression标签是用来配置方式的CHM绑架者将创建一个为每一个检索页面的URL(见页标签)??FE在这里,我们要检索页打印版本。请注意,{0}参数是强制性的吗??将被替换页。urlName属性为每个页面。outputFolder标签决定:对Microsoft HTML Help Workshop的项目文件,将会产生其中的HTML页的文件,由Mozilla Firefox的iMacros的检索,将被保存(请注意,它会在页子文件夹的outputFolder保存。@价值)helpProjectName标签描述帮助项目名称,它会影响:*. HHP,*. HHC和*. chm文件名,CHM文件的名称(显示在生成的文档的标题栏)。iMacrosScriptFileName表示的地方,会产生*. IIM宏文件。建议将其设置为相同的目录中的Mozilla Firefox的iMacros看起来宏??请注意您的系统上,路径肯定会有所不同。页面标签封装在树层次结构的网页,正是这些将在CHM文件的文档树为代表的方式。页。@ urlName属性表示URL的页面片段,将与snatchExpression粘在一起。@属性的值。页面。title属性代表了页面的标题,因为它会显示在左侧CHM生成CHM文件的文件树。请注意,该页面。@ urlName可以留空。后处理工作将在用户检索,使用Mozilla Firefox的iMacros的页面上添加标签encapulates行动。的replaceAll标记表示文件替换操作:所有的replaceAll。@ searchedFile在outputFolder @价值的文件夹的replaceAll替换@ replacementFile文件文件。为什么我们需要更换?在这个例子介绍了维基打印页面包含没有利润,这是打印好的,但看起来CHM文件笨拙。因此,下载的每一个*. css文件将被替换为一个自定义的*. css文件。编译标记编译行动。为了使其成功运行,编译@ pathToHTMLHelpWorkshop属性必须设置正确。请注意,CHM绑架者假设*. hhp文件,将[helpProjectName @值]。HPP。

下表描述了在标签的标签/属性是强制性的。XML实体名称强制性@ value指定snatchExpression。@ value指定outputFolder。是helpProjectName。价值是@ value指定iMa​​crosScriptFileName。是页面。@ urlName是@标题页。是的replaceAll没有 编译没有使用代码
提交的CodeProject上的源代码是非常简单:它包含了一些操纵XML文档和大量文件内容生成(文件和StringBuilder的核心框架类是使用最广泛)。一目了然有趣的地方:CHMSnatcher.PreProcessor.FillTreeOfPages()和CHMSnatcher.PreProcessor.FillListOfPages()方法使用递归来构建/分析树页,CHMSnatcher.PreProcessor.GenerateHppProject()和CHMSnatcher.PreProcessor.GenerateHppTableOfContents()方法生成HTML Help Workshop的文件??没有第三方库需要做的工作,因为HTML Help Workshop的文件只是疼痛与古朴结构的文本文件(看到它自己)。兴趣点
我觉得有些事情可以做得更好:可以有一个方便的图形用户界面(GUI)发动机上增加。保存网页脱机可以被嵌入到CHM绑架者(第三方库),这应该是更简单的一个命令行工具,。不幸的是,一些工具像HTTrack没有工作对我来说(保存结果是远远不够完善??有失踪的图像,CSS文件等)。但是,也许你知道脱机采集,作业?后处理plug-ins/scripts可能是有用的(FE想象检索*. html文件替换一些标签?读下面的注意事项)。
注意,CHM绑架者可以用来存档,很可能大部分CodeProject上的网页。然而,出现一个小问题,与下载的脱机页的版本。也就是说,下载的HTML文件内嵌入一些JavaScript脚本的CHM文档显示讨厌的JavaScript错误当然的对话,这是不可接受的。克服它的方法之一是,以取代LT;脚本... LT; / scriptgt;在以下LT下载的HTML文件的标记; - 脚本.... LT; /脚本 - GT;然而,这种处理后的任务并没有一直没有实施至今,因此,随时延长!以飨读者
我希望你喜欢的文章,发现它有用。不过,如果你认为否则要表达它的评级,请发表评论,为什么你觉得这篇文章值得,特别是低年级。我想注释掉低三个档次,绝对不是要走的路吗??,请帮助改善!
无论如何,感谢阅读!历史2008年2月二路 - 第一版本创建。|不是用户友好

回答

评论会员:约翰卡马克: 时间:2011/12/16
Poonamol
评论会员:游客 时间:2011/12/16
?我怎样才能把我新创建的mediawiki页面上的inranet,以便其他用户可以访问它请尽快做needful。享受生活........{BR}
TSzatkowski
评论会员:游客 时间:2011/12/16
!大家我注意到一些非关键的问题与我的文章:-"一般的提示"一节中缺少海事组织,远东而不是"字符,在URL中使用(见snatchExpression标签),你应该使用XML配置文件中的放大器,-应建立子目录页(outputFolder的价值属性)手动运行前的任何iMacros的脚本(应当由固定在预处理模式下运行的CHM绑架者),-加入"全文搜索=是"*.hpp文件,-对其他语言的支持应。运行代码(FE讨厌的例外)如果您遇到任何问题,首先请验证XML配置文件(是否正确),然后在VisualStudio中运行的来源。而且不要忘了在浏览器中运行的iMacros脚本前,后处理!这篇文章的更新等候,并很快将公布,现在只要按照上面的提示。问候!T.Szatkowski修改日(星期二),2月19日,2008年2:43
smesser
评论会员:游客 时间:2011/12/16
我编译和运行你的程序运行前/后处理后,我只是一个内容表CHM文件空白页。我使用的是IE7和我下载iMacro的二进制文件,您链接到任何的想法是什么问题?没关系我没看过你的文章。我没有运行在浏览器中。宏我确实收到了一些错误,运行宏,但我没有得到一个CHM文件。我有一个问题与维克页。修改日(星期二),2月12日,2008下午01:44