HlpToChm Tools

Version 1.3

SourceForge.net Logo


For download the installer program, directly, click here:


With Windows Vista, Microsoft don't give support to the helps with hlp format, this forces to change to the chm format that, in fact, is better. Several commercial programs that make easy the change exist. HlpToChm Tools are a programs set of open source programs (in Delphi), that I use.

Independently of the conversion, one of the programs (ArrangeLinks) allows to check the links of the href anchors and images from htm files group of a hhp project.

The conversion

In summary: it behaves moreover the conversion from the files hpj to hhp:

1. The conversion from the rtf help files, habitually, to several htm files and the creation of files h (map) and hhk (index).

2. The conversion from the cnt contents file to hhc file.

Steps to carry out it

A. Copy the foot notes of the rtf file to a txt file with its name that begins with fpn_.


MyProgram.rtf -> fpn_MyProgram.txt

fpn_MyProgram.txt, will contain:

# Introduction
$ The introduction
# IntroAddressed
$ Addressed to


B. Save the rtf file as a htm file, being created a directory that contains all the images that are linked with the htm file.


MyProgram.rtf --Word--> MyProgram.htm and the directory MyProgram_files with filelist.xml, image001.png, image002.gif....

[ If it has several fragments that it corresponds to the predetermined format (<pre>) you can change them to this format with SetPre ]

[ If the file/s htm contain letters with accents that have not been changed to the form & xxxx; you can use the program HtmWithoutDiacr ]


C. Delete:

The now foot notes coming from the rtf: <div id=ftn1>,....

The initial <div and the ending </div> of the htm source.

The all superfluous code of the htm file created with Word. To make it an excellent program is TidyGUI, that you can find it in http://pagesperso-orange.fr/ablavier/TidyGUI/. In the program options (Configuration | Layout), choose a high value (for example 10000) for Wrap margin, each paragraph will be this way in a single line, with the <p>, <h1>, <h2>, ... at beginning of the line and without indent:



D. Execute the program DelOldHRef, that has three functions:


E. Execute the program PutAnchorH1, that needs the fpn_name.txt created previously. The program places the identifier before the text of the heading:

<h1>Introduction/The introduction</h1>
<h1>IntroAddressed/Addressed to</h1>
<h1>MainWindow/Main Window</h1>

And that later on it will be used as name for the htm file to create.


F. Edit the htm file, at your convenience, converting from heading 1 to heading 2, the headings that won't constitute individualized htm files.

<h1>Introduction/The introduction</h1>
<h2>IntroAddressed/Addressed to</h2>
<h1>MainWindow/Main Window</h1>


G. Create the anchor for the headings 2, with the program PutAnchorH2:

<h1>Introduction/The introduction</h1>
<h2><a name="IntroAddressed">Addressed to</a></h2>
<h1>MainWindow/Main Window</h1>


H. If you want to check the sizes assigned for the images and their existence, you can use the program SetImg.

In the above panel the htm file is assigned, clicking Read images it will place in the left above panel the links (ordered by occurrence, and the discordant sizes will appear in boldface) and in the right panel the files (the nonexistent ones will appear in red).

[ I work with diverse languages: Catalan, Spanish, English... and I have for habit to rename the image files to their real name.

Example: image001.png, image002.gif -> LogoCatSalut.png, stock_edit-16.gif...

That I make it only in one of the languages, SetImg renames the files of the other languages in an automatic way:

Assign in the above panel the htm file pattern, after Read assign the htm destination file and click Replace images, then the names shall be changed. ]


I. Create the htm files from the main file (in the ejemple MyProgram.htm) with CreateHtm.

Following the previous example, the next files would be created: Introduction.htm (with The introduction as title) and MainWindow.htm (with Main Window as title).


J. Assign the links with ArrangeLinks.

This way, with the example: with

<p><u>Addressed to</u>IntroAddressed</p>

the program change it for:

<p><a href="IntroAddressed">Addressed to</a></p>

To do it is necessary to select the files to analyze, habitually all, and you can select them with , you must verify the links in the right panel, and once corrected the errors (in the corresponding htm files), execute the change with .

If it has not been made previously, now it can be assigned the css file to all selected htm files.

Later you can see the links integrity from the second page, you can change the grid items ordination clicking the column title.

After numbering with:

It allows to create the list of references for the file pas with:

hcHlpToChmTools = 1000;

It allows to create the file h with:

After numbering with :

It allows to create the list of references for the pas file with :

  hcHlpToChmTools = 1000;

It allows to create the h file with :

#define HlpToChmTools 1000


This program also allows to check the images links, as well as its sizes.

[ You can rarely need to rename the files or images to differentiate them as group adding a prefix in their names, to make this you can use the program RenDirFiles, when changing the names of the images or files, also are changed automatically the names corresponding of the links to these images or files that there are inside the htm files ]


K. Create the contained list: hhc (from the cnt file) with TableOfContents. The final file won't be exactly the one wanted, but it will facilitate it a lot.