All posts

How to create a CHM wrapper

This post will show you how to create a CHM that will wrap other CHMs and show them in one place. We used this approach when we created the RadControls for WinForms documentation. We will use it for the new Prometheus documentation (coming with Q1 2008).

 

Prerequisites

FAR tool

Nothing more to add to what I said here

Project Wizard

HTML file – Well, it’s not mandatory to have a HTML file in the wrapper. I did it without such file when I created the WinForms wrapper.  However I recommend having such file. It would make your life easier. So create a simple HTML file; it could be Introduction, Overview, or any other kind of Welcome topic.

 

 

1.       Start the new project wizard and

2.       Set the project file name. Nothing special here. The project filename does not necessary coincide with the CHM file name, but unless you have a very special reason to make those different, I would recommend setting a meaningful name for the project and same name for the CHM.

3.       Let wizard search for web files. It will find the HTML file that I advised you to create earlier.

3.1.    The wizard will find all web files in the project folder, including images, stylesheets, etc. Include those only if you need them. Otherwise remove them from the list.
The important thing here is to set the HTML file as default and home page (note the red rectangle in the upper right corner)

4.       Check the items that you need. Standard CHM files include all of these features, so it’s better to check these all.

4.1.    At this step you need to create the TOC. Just click the Create TOC button and the wizard will create the HHC file for you. You don’t need to edit the TOC at this point. 

5.       Set the window title (the text that will appear in the title bar of the CHM) and the CHM file name.

 

6.       You don’t need to compile the project at this point. Select the second option (Advanced Project Editor) and Finish the wizard.

Advanced project editor

The wizard will open the project editor. In order your CHM wrapper to be aware of the CHMs that it will wrap, you need to specify those CHMs in the project editor.

You can have all the CHM in the same folder as the wrapper (that’s how we are doing it for RadControls for ASP.NET) or in a separate folder (that the case for our WinForms controls).

The last thing to do is to edit the Table of Contents(TOC) and include the merged CHM files there. Open the TOC editor and include all CHM files as TOC nodes. You need to fill the path to the CHM file and the name of the TOC file for each CHM. In the general case, the name of the TOC file will be the same as the CHM file name. However that not mandatory and those two names may differ (as it is in RadControls for ASP.NET).

 

 

The final step would be to compile the wrapper.

For your convenience I've prepared an archive with the project files created in this post and a DOC file with the post itself. You can download the ZIP from here.

Facebook Twitter DZone It! Digg It! StumbleUpon Technorati Del.icio.us NewsVine Reddit Blinklist Add diigo bookmark

Post a comment
  1. Formatting options
       
     
     
     
     
       
  2. Security image