HelpNDoc User Manual PDF
HelpNDoc User Manual PDF
IBE Software
Table of contents
2 / 87
HelpNDoc User Manual
3 / 87
HelpNDoc User Manual
4 / 87
HelpNDoc User Manual
Welcome to HelpNDoc
HelpNDoc is an easy to use yet powerful and intuitive help authoring environment which provides
a clear and efficient user interface to build the most amazing CHM help files, WEB based
documentation, PDF and Word documents, ePub and Kindle eBooks as well as Qt Help files
from a single source without worrying about the inner working of help file generation.
This help documentation is designed so you can quickly learn HelpNDoc as a new user or
enhance your knowledge as a regular user.
Introduction
About HelpNDoc
System requirements
Getting help
HelpNDoc editions
HelpNDoc license agreement
What's new in HelpNDoc 4
How to buy HelpNDoc
About HelpNDoc
HelpNDoc is an easy to use yet powerful and intuitive help authoring environment.
HelpNDoc provides a clear and efficient user interface to build the most amazing CHM help
files, WEB based documentation, PDF and Word documents, ePub and Kindle eBooks as well
as Qt Help files from a single source without worrying about the inner working of help file
generation. You just have to enter or import your documentation in the built-in word processor
5 / 87
HelpNDoc User Manual
and hit the "Compile" button to obtain a fully functional help file which looks exactly as you
designed it.
Forget about bloated user interfaces and incomprehensible tools. HelpNDoc has been
engineered to provide the most advanced functionalities in their simplest form: creating and
maintaining HTML help files, Word and PDF documentation is usually a painful process but
thanks to HelpNDoc you may surprise yourself enjoying it!
You know how to use your favorite word processor, so you already know how to use HelpNDoc:
it's that easy! Add to that many powerful features such as live spell checking in a fully WYSIWYG
(What You See Is What You Get) environment and you'll begin to imagine how fast and easy it
will be for you to create your next help file and how professional it will look like.
System requirements
HelpNDoc's recommended system configuration includes:
Windows XP, Windows Vista, Windows 7, Windows 8 or Windows 10
512MB of RAM
80MB of free disk space
1024x768 screen resolution or higher
Help Compiler: Microsoft HTML Help Workshop
MobiPocket/Kindle Compiler: Amazon KindleGen
Qt Help Compiler: Qt Framework
Getting help
This help file can either be viewed on-line or off-line when installed with HelpNDoc. You can
obtain the latest version as well as other formats of this help file on line at http://
www.helpndoc.com/online-help
Off-line access
The off-line help file is part of the HelpNDoc installation. To launch it, either press the F1 key or
click the help button at the top right of HelpNDoc's main windows.
On-line access
To access and view the most recent HelpNDoc's help file on-line, launch a web browser to the
6 / 87
HelpNDoc User Manual
HelpNDoc editions
Three editions of HelpNDoc are available based on your needs:
HelpNDoc Professional Edition: Fully functional licensed edition, which can export banner-
free CHM, HTML, Word, PDF documentation, ePub and Kindle eBooks and Qt Help files;
HelpNDoc Standard Edition: Fully functional licensed edition, which can export banner-free
CHM and HTML documentation only;
HelpNDoc Personal Edition: This edition is completely free for personal use only and adds a
small banner at the bottom of all the generated documentation formats;
7 / 87
HelpNDoc User Manual
THIS EULA SHALL APPLY ONLY TO THE SOFTWARE SUPPLIED BY IBE SOFTWARE
HEREWITH REGARDLESS OF WHETHER OTHER SOFTWARE IS REFERRED TO OR
DESCRIBED HEREIN.
DEFINITIONS
(a) "HelpNDoc" and "Software" refers to IBE Software's HelpNDoc program, in each case,
supplied by IBE Software herewith, and corresponding documentation, associated media, and
online or electronic documentation.
(b) "IBE Software" means IBE Software.
(c) "Free Version" or "Freeware Version" or "Freeware Edition" or "Personal Edition" means a
free version of the Software for personal use only, so identified, to be used only for non-profit
projects. The Free Version is fully functional, without restrictions of any kind but may contain
messages in the end product stating that they have been created using the Free Version of the
Software.
(d) "Registered Version" means a version which has been bought to IBE Software.
(e) "Educational Version" means a version which has been bought to IBE Software by an
educational institution and may only be provided to students and employees of the institution.
The Educational Version may have limited functionalities and/or usage restrictions.
LIABILITY DISCLAIMER
THE HELPNDOC PROGRAM IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS
EXPRESSED OR IMPLIED. YOU USE IT AT YOUR OWN RISK. NEITHER THE AUTHORS
NOR IBE SOFTWARE WILL BE LIABLE FOR DATA LOSS, DAMAGES AND LOSS OF
PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS SOFTWARE.
RESTRICTIONS
You may not use, copy, emulate, clone, rent, lease, sell, modify, decompile, disassemble,
otherwise reverse engineer, or transfer any version of the Software, or any subset of it, except
as provided for in this agreement. Any such unauthorized use shall result in immediate and
automatic termination of this license and may result in criminal and/or civil prosecution.
8 / 87
HelpNDoc User Manual
(c) The HelpNDoc Free version may not be distributed inside of any other software package
without written permission of IBE Software.
(d) The HelpNDoc Free version allows the user to publish its work according to the license
agreement, but nor IBE Software nor any member of the company can be held liable for the
content of the publication.
TERMS
This license is effective until terminated. You may terminate it by destroying the program, the
documentation and copies thereof. This license will also terminate if you fail to comply with any
terms or conditions of this agreement. You agree upon such termination to destroy all copies of
the program and of the documentation, or return them to the author.
9 / 87
HelpNDoc User Manual
10 / 87
HelpNDoc User Manual
1. File menu
Manage projects: create new, open existing, save...
Access to recent projects and places
Access the application options
Access to help and resources on HelpNDoc
Exit the application
3. Ribbon tool-bar
11 / 87
HelpNDoc User Manual
4. Table of contents
Define and manage the topics hierarchy for the currently opened project
Root topic is the project topic, used to view and modify project settings
Selecting a topic will display its associated content for editing
5. Topic editor
Used to edit the selected topic's content
Setup the topic's source and behavior
6. Library
Define and manage the multimedia and reusable items such as images, movies, snippets,
included documents...
Add items to topics
7. Keywords editor
Define and manage the keywords hierarchy for the currently opened project
Associate keywords with individual topics
8. Status bar
Get stats about your documentation
Manage dictionaries and spell checker options
Get information about keyboard status
File menu
12 / 87
HelpNDoc User Manual
The HelpNDoc's file menu can be displayed by clicking the "File" button at the top left of the main
window. It is used to:
1. "Save" or "Save as" a project
2. Create a new project or open an existing one
3. Import an existing CHM file
4. Close the currently opened project
5. Access to recent projects and locations
6. Access help and product information
7. Access the options dialog and exit the application
Ribbon tabs
Presentation
The HelpNDoc's ribbon tabs are located at the top of the main window and provide all the
features available within HelpNDoc in a categorized fashion. The ribbon tabs parts are:
1. The main tabs - They are always visible and are used for the most important actions
2. The tabs groups - When a tab is selected, it will display actions grouped by similar purpose
3. Contextual tabs - Those tabs are only shown when needed. For example, the "Picture Tools"
tab is only visible when a picture is selected
13 / 87
HelpNDoc User Manual
Styles editor
The style editor is where style are created, customized and organized. The styles editor can be
accessed via the arrow at the bottom right part of the "Styles" group in the "Write" ribbon tab.
14 / 87
HelpNDoc User Manual
Each style added in the style editor can be used throughout the project to format texts,
paragraphs and links. Styles inherit from their parents any properties they do not explicitly define.
1. The style hierarchy shows a list of all the existing styles and their parents. A style can be
selected to be edited. Styles can be added, deleted, imported and exported via the buttons
bellow.
2. Common style properties include the name, kind of style (text, paragraph or both) and
inheritance information.
3. Use the "Edit" links to access to customization dialogs for font, hyperlink, paragraph, border
and background. Use the "Reset" button to reset to default.
How to use it
Use the find and replace window to look for text items within the current topic or entire project
and optionally replace found occurences by another text or library item.
The parts of the find and replace dialog are:
1. Find scope - Define the scope of the search options. Only in the current document or in the
entire project
2. Find text - What text should be searched
3. Replace with - Specify the text or library item to use as a replacement for the found text
4. Options - Specify the search options. Match case will find the specified text with the exact
same case as it has been written. Match whole word will only search for a complete word.
Search forward will specify whether to search forward (from top to bottom) or backward
15 / 87
HelpNDoc User Manual
Options window
HelpNDoc's options can be customized by using the "File" menu then "Options" button. This
shows the options window with various sections.
General Settings
Application language: choose HelpNDoc's user interface language. This requires a restart of
HelpNDoc.
Load and display RSS news: keep up-to-date with latest news about HelpNDoc as the RSS
feed will be displayed in HelpNDoc's welcome page. This may trigger a Windows firewall
warning as this requires Internet Access.
Show ruler: displays or hide a ruler at the top of the topic editor for greater control over
paragraph indentation, tabs and table cell sizes.
Clear history: clears the recent projects and folder history.
Compilers
To generate some documentation formats, HelpNDoc requires external compilers. This section
can be used to setup their path and download them.
16 / 87
HelpNDoc User Manual
Custom paths
Use this section to define the default custom path HelpNDoc will use.
Default output path: define the default path where project output will be generated when no
path is defined. Default is "My Documents\HelpNDoc\Output".
Dictionaries path: define the path where custom dictionaries are stored. Default is "My
Documents\HelpNDoc\Dictionaries".
Projects path: define the path where projects are opened from or saved to the first time.
Default is "My Documents\HelpNDoc\Projects".
Styles path: define the path where the default project styles is placed. See Customize default
project styles to learn more. Default is "My Documents\HelpNDoc\Styles".
Templates path: define the path where custom templates are located. Default is "My
Documents\HelpNDoc\Templates".
Launching HelpNDoc
Locate the HelpNDoc 4 shortcut on the desktop or Windows start menu
Double click the shortcut in the desktop or single click it in the Windows start menu
Adding topics
Click the "Home" ribbon tab item if it is not already selected
In the "Topic" section, click the "Add a topic" button
The new topic's title is made editable, enter a custom title if needed and press enter
17 / 87
HelpNDoc User Manual
Generating documentation
Click the "Home" ribbon tab item if it is not already selected
Click the "Generate help" button in the "Project" section
Choose which documentation format you want to generate
Click the "Generate" button
Writing documentation
18 / 87
HelpNDoc User Manual
To create a new project, use the "File" menu and click the "New project" button. This will open
the new project wizard dialog. The various parts of this dialog are:
1. Project title: specify the title of the new project
2. Project language: specify the main language of the project
3. Optionally specify an initial table of contents: use the TAB key to create the hierarchy
4. Import the table of contents from an existing CHM project
5. Quickly create a new empty project without any items in the table of contents
Project options
Each project is saved with its own set of configuration options, which include all the project
19 / 87
HelpNDoc User Manual
General settings
Project settings: Various informations about the project such as the project title or author
information. Some of these options may be exported to the final documentation.
Language settings: Specify the project's language and character set.
Automated settings: Automatically generate the topic's help ids with the captions.
Some system variables available in an HelpNDoc project can output current date and time
information. The following variables are available and will be replaced by the current date and
time value at generation time:
20 / 87
HelpNDoc User Manual
options" then "Customize" next to "Date / Time format" in the "Language settings". The following
table explains the various specifiers which can be used when formatting date and time settings:
Specifier Displays
d Displays the day as a number without a leading zero (1-31)
dd Displays the day as a number with a leading zero (01-31)
Displays the day as an abbreviation (Sun-Sat) using the translated
ddd
strings according to project language
Displays the day as a full name (Sunday-Saturday) using the
dddd
translated strings according to project language
Displays the date using the format given by Windows' short date
ddddd
format
Displays the date using the format given by Windows' long date
dddddd
format
Displays the year in the current period/era as a number without a
e
leading zero (Japanese, Korean, and Taiwanese locales only)
Displays the year in the current period/era as a number with a
ee
leading zero (Japanese, Korean, and Taiwanese locales only)
Displays the period/era as an abbreviation (Japanese and
g
Taiwanese locales only)
Displays the period/era as a full name (Japanese and Taiwanese
gg
locales only)
Displays the month as a number without a leading zero (1-12). If the
m m specifier immediately follows an h or hh specifier, the minute
rather than the month is displayed
Displays the month as a number with a leading zero (01-12). If the
mm mm specifier immediately follows an h or hh specifier, the minute
rather than the month is displayed
Displays the month as an abbreviation (Jan-Dec) using the
mmm
translated strings according to project language
Displays the month as a full name (January-December) using the
mmmm
translated strings according to project language
yy Displays the year as a two-digit number (00-99)
yyyy Displays the year as a four-digit number (0000-9999)
h Displays the hour without a leading zero (0-23)
hh Displays the hour with a leading zero (00-23)
n Displays the minute without a leading zero (0-59)
nn Displays the minute with a leading zero (00-59)
21 / 87
HelpNDoc User Manual
Create topics
Creating a new topic in an opened project can be achieved via two ways:
Select the "Home" ribbon tab then click the upper part of the "Add topic" button
Right click on any existing topic in the table of contents (including the project topic) and click
the left part of the "Add topic" menu item
By default, a new topic is added at the bottom of the table of contents and becomes the last topic
22 / 87
HelpNDoc User Manual
overall. HelpNDoc can optionally create a new topic at the following positions:
Before the currently selected topic
After the currently selected topic
As a child of the currently selected topic
As the last topic overall (Default behavior)
These actions are available from a sub-menu which can be accessed via the following ways:
Select the "Home" ribbon tab then click the arrow on the bottom part of the "Add topic" button
Right click on any existing topic in the table of contents (including the project topic) and hover
the arrow on the right part of the "Add topic" menu item
When a new topic is created, its title will become selected and editable for easier modification: it
becomes faster to create multiple topics and rename them.
Delete topics
A word of caution: Deleting a topic containing children will also delete its children. When a topic
is deleted, its associated content is also deleted. Library items used by the topics and keywords
linked with the topic are not deleted.
Rename topics
The topic's title as displayed in the table of contents can be changed using one of the following
ways:
Right click on the topic and select "Rename"
Select the topic then hit the "F2" keyboard shortcut
Select the topic then go to the "Home" tab then click the "Rename" button in the "Table of
contents" section
Topic icon
The topic icon is displayed before the topic title in the table of contents. By default, topics
containing children will be given a book icon, whereas topic without child will be given a note
icon. To change the icon for each individual topic:
Select the "Home" ribbon tab, then click the "Topic properties" item and choose the new topic
icon
Right click on any existing topic in the table of contents to open the topic management menu
then choose the new topic icon
Topic kind
23 / 87
HelpNDoc User Manual
Help ID
This is one of the most important part of a topic when using the generated documentation. The
help ID is a unique alpha-numeric identifier used to locate the topic. This ID will be used to name
individual HTML files in the generated HTML documentation, and can be used to open that
specific topic from any programming language in the CHM documentation.
Note: The Help ID can only contain alpha-numeric characters. HelpNDoc will ensure this rule by
automatically removing any unwanted characters (such as spaces) from the input.
Help Context
The help context is a numeric value which is unique to each topic. It can be used to uniquely
identify a topic, or open a specific CHM topic using Windows APIs.
Topic Header
The topic header is a simple text which is usually displayed as the title of the topic. By default,
HelpNDoc will use the topic title as the header, but it can be configured to either:
24 / 87
HelpNDoc User Manual
Topic Footer
The topic footer is a simple text which is usually displayed at the bottom of the topic. By default,
HelpNDoc will use the project copyright as the footer, but it can be configured to either:
Hide the footer - No footer will be displayed for that topic
Display a custom text - A custom text can be specified as the footer of that topic.
Move topics
Topics are managed as a tree-structure from the table of contents. A topic can contain any
number of children topics which itself can contain any number of children topics and so on. Also
topics are not sorted in any way in the table of contents so they can freely be positioned. To
move a topic in the table of contents:
Select the topic then from the "Home" ribbon tab, choose one of the move topic action: move
up, move down, move left, move right
Right click on the topic to move then from "Move topic" menu item, choose one of the action
Drag and drop the topic to the desired position by clicking and holding it, moving the mouse,
then release the mouse button where needed
Note: The project topic can't be move. It is always the root of all the topics available in the
project.
Topic kind
25 / 87
HelpNDoc User Manual
Kinds of topics
A topic can be of different kind. When first created in HelpNDoc, the topic is a normal topic with
content. The different topic kinds are:
Normal topic - This is the default topic kind where text, tables, library items... can be added in
the topic's content
Empty topic - This is a topic without any content of any kind attached to it
Show external URL - The topic will show the specified URL when shown in supported
documentation formats
Include external file - The specified file will be included as the topic's content when the
documentation is generated
Each topic can have a specific header and footer. By default, the topic header is set to display
the topic's title as defined in the table of contents and the topic footer is set to display the project
copyright. This can be changed to:
Hide the header / footer - Do not display anything for that topic
Display custom header / footer - Specify the text to use for that header / footer
The text contained in a normal topic with content can contain hyperlinks. Those links will redirect
the reader to the specific element they link to. To create an hyperlink:
Select the text to transform to an hyperlink
Select the "Insert" tab and click the "Insert / Edit hyperlink" in the "Links" panel (Keyboard
shortcut: CTRL+L)
Specify the links' attributes
26 / 87
HelpNDoc User Manual
Linking to a specific topic will allow the end-user to navigate to that particular topic by clicking the
link. To create a link to a specific topic:
1. Provide the link text. This field is not enabled if you have already selected the text in the topic
editor
2. Choose which topic to link to by selecting it in the hierarchy
3. Optionally choose the topic's anchor to link to
27 / 87
HelpNDoc User Manual
Creating a relative link, or navigation link, will provide a way to link to a topic relative to the current
one. HelpNDoc can create navigation links to:
Default topic - The topic which has been set as the default one in the project options
First topic - The very first topic in the table of contents
Last topic - The very last topic in the table of contents
Parent topic - The parent topic of the topic containing the link
Previous topic - The topic just before the one containing the link. If "Sibling topic only" is
checked, it will link to the previous topic at the exact same hierarchy level
Next topic - The topic just after the one containing the link. If "Sibling topic only" is checked, it
will link to the previous topic at the exact same hierarchy level
Link to a file
28 / 87
HelpNDoc User Manual
Based on the end-user Windows configuration and documentation format, an hyperlink to a file
will either:
Show the file directly in the help viewer
Show the file in an external application if the file format is registered to that application
Provide a download file box to let the user download it locally
The help file won't be included with the generated documentation. This means that the help
file must be deployed with the final documentation and placed in the correct folder when installed
on the end-user computer:
For a non-relative file: the file must be placed in the exact same folder and have the same
name as the one defined in the file path field. Example: c:\doc\myfile.txt
For a relative file: the file must be placed in a relative folder based on the main
documentation file. Example: the relative path is set to "file\myfile.txt" so the file must be
placed in the "file" sub-folder of the documentation output folder
Styles are an important part of HelpNDoc as they provide a way to keep an uniform look
throughout the documentation's topics. A style is applied to a piece of text which then becomes
linked to it: when the style changes, the format of the text changes too.
HelpNDoc comes with a set of predefined styles. Styles can be added and managed using the
styles editor.
29 / 87
HelpNDoc User Manual
Tables are used to either display tabular data or create complex layout in the final documentation.
To create a new table in HelpNDoc, from the "Insert" ribbon tab, click the "Insert table" button in
the "Items" group and either:
Choose the number of rows by columns to add by clicking the desired table size
Click the "Insert table" button to specify the size and some properties for the new table
Once a table is present in a topic, clicking it will display the "Table tools, Layout" ribbon tab. This
can be used to create, delete, change properties for the cells and the table.
Pictures are inserted in the library then in the topic editor. This provides a way to use the same
picture multiple times and modify it from the library without the need to find it in the topics. To
insert a picture, either:
From the "Home" ribbon tab, click the "Add item" button in the "Library" group and choose
"Add picture". Then drag the picture from the library in the topic editor
From the "Insert" ribbon tab, click the "Insert picture" button then "Insert another picture". This
will add it to the library prior to inserting it in the topic editor
When a picture is clicked in the topic editor, the "Picture tools, format" contextual ribbon tab is
shown to modify the picture's properties. From there, it is possible to:
Replace the picture with another one
Reset the picture properties such as size and alignment
Align the picture in the text flow
Adding the picture's alternative text: this is used in HTML based documentation as a place-
holder text while the picture is being loaded
Specify the picture's width and height
Image maps can contain one or multiple interactive shapes. A shape can be a rectangle, circle
or polygon and can link to any kind of links handled by HelpNDoc: topics, relative links, URLs,
EMails, or file links.
Manage shapes
To create a shape in the image map editor, choose the kind of shapes in the "Create Shapes"
section and draw it over the image.
To select a shape, click on it in the editor, or choose it in the "Shape" list of the "Properties"
section.
When one or more shapes are selected, click "Delete" in the "Manage Shapes" section to delete
them.
30 / 87
HelpNDoc User Manual
All those elements are first placed in the library and can then be re-used in any number of topics
within the current project. Once a library item has been placed in the topic editor, it is then linked
with the library item and therefore any modification made to the library item will also be made to
the linked elements. As an example, changing a picture in the library which has been placed in
hundreds of topics, will automatically change all those topics with the new picture.
To insert an item in the library, from the "Home" tab use the "Add item" button from the "Library"
group. To insert an item from the library to the topic editor, either:
Drag and drop the item from the Library panel into the topic editor
Select the element in the library panel then click the "Insert in topic" button from the "Home"
ribbon bar and "Library" group
Right click the element and choose "Insert in topic"
31 / 87
HelpNDoc User Manual
Create keywords
To create a first-level keyword:
Create the top part of the "Add keyword" button in the "Keywords" group of the "Home" ribbon
tab
The keyword is added in the list ready to be named: enter a name and validate using the
Enter keyboard shortcut
Rename keywords
To rename a keyword:
Select the keyword in the keywords panel
Click the "Rename" button in the "Keywords" group of the "Home" ribbon tab
Enter a name and validate using the Enter keyboard shortcut
Delete keywords
To delete obsolete keywords:
Select the keyword in the keywords panel
Click the "Delete" button in the "Keywords" group of the "Home" ribbon tab
Keywords' association with the current topic can rapidly be done using the check-box in front of
the keyword.
32 / 87
HelpNDoc User Manual
To rapidly manage every topics associated with a specific keyword, select the keyword then click
the "Associated topics" button in the "Keywords" group of the "Home" ribbon tab to open the
"Manage keyword association" window.
To associate the currently selected keywords with additional topics, check the boxes before the
caption of those topics. Un-check those boxes to remove the association.
To save the modified associated topic list, hit the OK button at the bottom of the window.
33 / 87
HelpNDoc User Manual
1. Spelling options
This shows the spelling options dialog which is
where the spell checker's settings can be
configured.
2. Active dictionaries
This indicates the currently active dictionaries. A
click on that button shows a list of all installed
dictionaries on the current computer as well as
options to install new dictionaries and change
currently active ones.
3. Install dictionaries
New dictionaries can be downloaded from the
OpenOffice.org extensions web-site and installed
using this dialog: just browse for the *.oxt file you
saved on your computer and HelpNDoc will install
it and add it to the list
4. Managing dictionaries
Dictionaries with a check mark are the ones
currently activated and used by HelpNDoc to spell
check the current project. To activate a dictionary,
click on it to check it. To deactivate a dictionary,
click on it to un-check it. HelpNDoc supports
multiple dictionaries activated at the same time:
when activating a dictionary, it won't deactivate
the currently activated ones.
Publishing documentation
34 / 87
HelpNDoc User Manual
From the "Home" ribbon tab, click the "Generate help" button to show the generation window.
From this window, you can specify:
The kinds of documentation formats to generate by adding builds and enabling them
The output path of the final documentation
The template and settings to use for each individual build
The order of the build execution
HelpNDoc will then process the templates and generate the documentation accordingly.
Advanced usages
Keyboard shortcuts
HelpNDoc implements various keyboard shortcuts which can be used throughout the application
to rapidly execute common actions.
User interface
Keyboard shortcuts available in HelpNDoc's main window.
Keyboard
Action Remarks
Shortcut
F1 Display the program help
35 / 87
HelpNDoc User Manual
Tree controls
Keyboard shortcuts available for all tree controls, including the table of contents tree, the library
tree, the keywords tree.
Keyboard
Action Remarks
Shortcut
+ Expand the current node
Expand the current node
*
and its children hierarchy
- Collapse the current node
Collapse the current node
/
and its children hierarchy
CTRL + UP Move the element up Not available in the library and keywords trees
CTRL +
Move the element down Not available in the library and keywords trees
DOWN
CTRL +
Move the element left Not available in the library tree
LEFT
CTRL +
Move the element right Not available in the library tree
RIGHT
CTRL +
Create a new item Not available in the library tree
INSERT
CTRL +
SHIFT + Create a new child item Not available in the library tree
INSERT
CTRL + DEL Delete the item
Associate the keyword with
SPACE Only for the keywords tree
the topic
36 / 87
HelpNDoc User Manual
Topic Editor
Keyboard shortcuts available when editing a topic.
Keyboard
Action Remarks
Shortcut
Keyboard auto-completion
When writing documentation, the user interface might become a distraction and could slow
down the writing process, in particular when adding special and non-textual elements in the topic
editor. That's why HelpNDoc provides the CTRL+SPACE auto-completion keyboard shortcut to
speed up the writing process.
37 / 87
HelpNDoc User Manual
To show the auto-completion dialog, hit the CTRL+SPACE keyboard shortcut in the topic editor.
The following actions are then available:
Enter any text in the filter field to filter the list and show only relevant items
Use the Up and Down keyboard keys to select the desired item
Use the Enter keyboard key (or click the item) to insert that item
Use the Escape keyboard key (or click the close button) to discard the dialog
The auto-completion dialog is context sensitive. It's action depends on the content at position of
the cursor in the topic editor.
Link to a topic
When used after a space character or at the start of a new line, it will provide a list of all
available topics to link to
When used within or right after a word, it will use that word as the filter. E.g. typing "help"
then CTRL+SPACE will filter all topics containing the text "help"
After selecting the topic in the list, a link with its caption will be inserted in the topic editor
38 / 87
HelpNDoc User Manual
Using the "Insert conditional operation" dialog box, choose between one of the operations:
IF: Start of a conditional section. The content written after this operation will be included only
if the tags are included (IF) or not included (IF NOT) in the current build;
ELSE: Will negate any previous IF operation. As an example, if the previous IF operation
included "CHM and HTML", the ELSE operation will included everything but those;
END: Will close the open conditional sections. Any content written after an END statement
will be included in every builds without any condition.
39 / 87
HelpNDoc User Manual
Click the top part of the "Generate help" button in the "Home" ribbon tab
Select a build
Click "Customize" if the "Included tags" tab is not already visible
Select the "Included tags" tab
Check any custom tag that will be included in that build
Analyzing a project
Analyzing an HelpNDoc project provides a centralized way to obtain advanced details on the
project structure and content. The project analyzer can be launched from the "Home" ribbon tab,
by clicking the "Analyze project" button in the "Project" group.
The project analyzer can be used to get various information about the project, including:
Paragraph, character, hyper-links and library item statistics
A chart representing a visual overview of the project layout
Hyper-links details and usage
Library items usage and details
Keywords usage and association details
The project analyzer can be started by clicking the "Analyze" button: it may take some time as it
will analyze each topic to report useful information. When the project analyzer window is visible,
it is still possible to modify the project in the background. However, any modification made to the
project will not update the analyzer reports: hitting the "Refresh" button is required in that case.
Analyzing hyperlinks
40 / 87
HelpNDoc User Manual
The "Hyperlinks" tab of HelpNDoc's project analyzer lists all hyperlinks found throughout the
project. The hyperlink analyzer can be used to:
List all links used in the project and their properties
Spot links pointing to deleted topic (broken links)
Spot duplicate links
Filter links by kind, caption, target or topic
41 / 87
HelpNDoc User Manual
The "Library items" tab of HelpNDoc's project analyzer lists all library items present in the library,
and how they are used throughout the project: a library item can be displayed multiple times in
the list if it is used multiple times in the project. The library items view is very powerful to manage
library items and can help save time by:
Showing how many times and where each library item is being used
Filtering library items by kind
Filtering library items which are not used at all
Filtering library items which are included in topics but not available in the library anymore
(broken items)
Locating library items with the exact same content
Merging multiple library items into one final item
42 / 87
HelpNDoc User Manual
available in the library anymore: broken library items will result in a broken documentation with
missing parts. To view broken library items, click the "Show broken items only" at the bottom of
the view. Clicking an item will show the topic containing it so that it can be deleted or replace.
Analyzing keywords
43 / 87
HelpNDoc User Manual
The "Keywords" tab of the project analyzer lists all keywords available in the current project with
the number of associated topics. The keywords analyzer can be used to:
Get a representation of keyword usage within the project: spot rarely used or overused
keywords easily
Spot broken keywords which are not associated with any topic
Manage topics associated with a specific keyword using the Manage keyword association
window.
Using the template editor is the recommended way to manage and customize templates. It is
also possible to manually alter the template files: read the low-level details about templates for
such cases.
The easiest way to manage templates is by using the template editor. The template editor can
be used to create, rename, modify and delete all kinds of templates.
It can be accessed using the "Template Editor" button from the "Templates" group in HelpNDoc's
"Tools" ribbon tab.
44 / 87
HelpNDoc User Manual
Managing templates
The template editor is used to manage all kinds of templates:
1. The template selection lists all templates available on the current computer. To manage a
specific template, select it in that list.
Standard templates (included with HelpNDoc's installation) are marked as such: they can't
be edited;
2. The create template button can be used to create a new template of any kind: select the
template kind and enter a unique name to create that template;
3. The duplicate template button can be used to duplicate the currently selected template. This
can be useful to create a small variation of a template or test some modifications without
altering the original template;
4. The rename template button can be used to rename the currently selected template.
HelpNDoc will make sure the newly entered name is valid and unique;
5. The delete template button can be used to delete the currently selected template. Warning:
this action will permanently delete the selected template from the current system and this
action can't be undone.
Customizing a template
Once a template is selected in the template editor, various customizable sections are available.
Those sections differ based on the kind of templates currently being selected.
Note: Standard templates, which are included with HelpNDoc's installation are read-only and
can't be modified.
HTML based templates: the general settings, variables, script files and assets can be
customized. HTML based templates include the following documentation formats: CHM,
HTML, ePub, Kindle and Qt Help;
Word and PDF templates: the page settings, cover page, headers, footers, table of contents
and topic titles can be customized.
HTML based templates include CHM, HTML, ePub, Kindle and Qt Help templates. In the template
editor, select an HTML based template to access its customizable settings:
General settings: customize the file extension, inheritance and other general settings for that
template;
Variables: manage variables which can be used by the template;
Script files: manage script files used to generate the final documentation;
Assets: manage assets bundled with the final documentation
45 / 87
HelpNDoc User Manual
General settings
Once you have selected an HTML based template in the template editor, access the "General
settings" group in the "Edit template..." panel to manage the following settings for that template:
Default file extension: indicates the extension which will be suggested by HelpNDoc when
you create a new build using that template;
Inherits from: templates can inherit from other templates and override only specific settings,
scripts and assets. Select the parent template here if needed. See: Template inheritance
Link settings: define how internal links will be generated by HelpNDoc. See: Handle the
generated topic links
Variables
Once you have selected an HTML based template in the template editor, access the "Variables"
group in the "Edit template..." panel to manage variables which can be used by this template.
When a variable is defined for a template, it can easily be customized from the build window for
each build using that template, and scripts from this template can easily access its customized
value to act upon it.
46 / 87
HelpNDoc User Manual
Edit a variable
Once a variable is selected in the list, the Edit Variable button will display the same window as
when creating a new variable is shown (see "Create a new variable" above). Only the "Id" field is
grayed out as it can't be modified for an existing variable.
Delete a variable
Once a variable is selected in the list, the Delete Variable button will delete that variable.
Deleted variables won't be displayed in build settings anymore and can't be used by script files.
47 / 87
HelpNDoc User Manual
Script files
Once you have selected an HTML based template in the template editor, access the "Script files"
group in the "Edit template..." panel to manage script files for this templates.
Script files are the heart of HTML based templates as they include a mix of HTML and Pascal
code used to instruct HelpNDoc on how to generate the final documentation. Using those very
powerful script files, it is possible to customize almost any part of the generated documentation
files.
Script files' names must adhere to the following pattern: FILENAME.pas.EXTENTION where:
FILENAME is the name of the script file and can be any valid file name;
EXTENTION is usually the final extension this file will generate.
As an example HelpNDoc's default HTML template includes the "topics.pas.html" file which is
used to generate HTML files for topics.
Edit a script
Once a script is selected in the list, use the "Edit Script" button to access the script editor and
change its name or content.
Delete a script
Once a script is selected in the list, use the "Delete Script" button to delete that script from the
currently selected template. This script won't be run anymore when the final documentation is
generated.
Assets
Once you have selected an HTML based template in the template editor, access the "Assets"
group in the "Edit template..." panel to manage assets bundled with the currently selected
template.
48 / 87
HelpNDoc User Manual
Assets are static files which will be deployed in the same directory as the generated
documentation. Assets are usually used to add CSS, JavaScript or Images to the final
documentation but they are not limited to those kind of files: any file type can be added as an
asset to a template.
The assets hierarchy displays a list of all assets bundled with the currently selected template. It
is possible to:
Create folders using the "New folder" button
Import new files as assets using the "Import asset" button
Rename the currently selected folder or asset using the "Rename asset" button
Delete the currently selected folder or asset using the "Delete asset" button
Move an asset to a different folder by dragging it and dropping it to the desired location
Word and PDF templates can be customized using the template editor. Select a Word or PDF
template to access its customizable settings:
49 / 87
HelpNDoc User Manual
Page settings: manage page size, orientation, margins, headers and footers sizes
Cover page: customize the content of the cover page
Header / Footers: customize the content of the headers and footers
Table of contents: customize the look and feel of the table of contents
Topic titles: customize the look and feel of the topic titles
The template editor is a visual interface which simplifies the creation and management of
templates. Behind the scenes, when a modification is made through the template editor, it is
stored to the template files on the hard drive, following a specific convention. This section
explains the template's low-level details, starting with the best practices.
Best practices
HelpNDoc comes with a set of default (Standard) templates for all the documentation formats.
Those templates are located in the "Templates" sub-directory of the HelpNDoc's installation
directory, usually under "Program Files\IBE Software\HelpNDoc\Templates".
In addition to that, a user template directory is created when HelpNDoc is installed. It is located
under "My Documents\HelpNDoc\Templates" and can be customized in HelpNDoc's options
window.
Recent versions of Windows won't allow non-administrator users to change anything in the
50 / 87
HelpNDoc User Manual
"Program Files" directory, that's why it is recommended to edit all the templates in the "My
Documents" template directory instead.
Assets
A template can contain an optional "assets" folder. All the files and sub-folders contained in that
folder will be copied in the documentation's output directory. This is useful to add external files to
the templates, such as CSS or JavaScript to HTML templates. Note: The content of the "assets"
folder will be copied directly in the generated documentation's output directory, not in an "assets"
sub-directory.
51 / 87
HelpNDoc User Manual
The template.info file is a standard INI file located in all the templates folders and is used to
specify basic informations on that template such as the name, category and extension.
The template.info file requires a "config" section with the following values:
name - defines the name of the template as shown in the project options and help generation
dialog
category - defines the category of the template and used to combine code templates in the
quick generation popup menu
extension - defines the extension of the main file which will be generated by this template
Template inheritance
As mentioned in the best practices, it is not advised to modify the default templates provided with
HelpNDoc usually located in the "program files" directory. Furthermore, some templates might
need only subtle changes to a subset of the files to suit the requirements. That's why HelpNDoc
introduces the template inheritance concept where a template can "inherit" from a parent
template, thus using all its template files, and only override the required files.
[config]
name=Child template
category=HTML Documentation
extension=html
inherits=Default HTML Template
This configuration file instructs HelpNDoc to use the template named "Default HTML Template"
as the parent template. Only template files from the same documentation format can be used as
a parent template.
52 / 87
HelpNDoc User Manual
by creating a file named "index.pas.html" in the child template's folder with alternative content.
How is it working
At generation time, HelpNDoc reads the template selected for the project. If that template inherits
from a parent template, HelpNDoc will first generate a new temporary template as follows:
1. The parent template's entire content is copied into a temporary folder;
2. The child template (the one selected for the documentation generation) is copied over this
parent template, replacing any duplicate file if required;
3. The template.info files are merged to preserve the sections and keys from both templates,
and override the duplicate ones using the child template's data.
Limitations
Some limitations apply to the template inheritance feature:
It is not possible to inherit from a template from a different documentation format: an HTML
template can't inherit from a CHM template and a Word template can't inherit from a PDF
template for example;
It is not possible to remove files from the original template, just add or override existing files
Code templates
Code templates are very similar to CHM and HTML templates except for the fact that they usually
won't need access to the topic's contents and can't access to their HTML content. Here are the
steps involved to create a code template:
Create a new folder under "My Documents\HelpNDoc\Templates\Code" with the name of the
new template
Create a new template.info file in that template folder and add the required name, category
and extension
Create a new file containing the ".pas" text before the extension. As an example, we will
create a "sample.pas.txt" file. Only files containing the ".pas" text will be interpreted by
HelpNDoc
Add sample code to that template
In HelpNDoc, the new code template will appear in the "Code Generation" category of the
"Generate help" popup menu in the "Project" section of the "Home" ribbon tab.
The CHM and HTML template system can be used to tailor the output for HTML-based
documentation generation. The template system is very similar to the code template but can
also access the topic's HTML content. To learn how to create a new HTML template, see the
"Building a single page HTML template" topic. Also learn how to:
Handle the generated topic links
Methods available in templates
Generate multiple files from a single template file
53 / 87
HelpNDoc User Manual
Template variables
HelpNDoc will automatically generate links to topics and anchors for you. By default, it assumes
that topics will be generated in a file called "%helpid%.html" where "%helpid%" is the value of the
help id of that topic. However, this is not always the case so HelpNDoc provides a way of
customizing the format of the generated topic and anchor links. They can be modified in the
"config" section of the template.info file. Here is a sample:
linkformattopic=#%helpid%
linkformatanchor=#%anchorname%
The possible variables to be used in the topic and anchors link formats are:
%topicid% - The internal HelpNDoc's managed unique topic id
%helpid% - The topic's help id value
%anchorname% - The name of the anchor as specified in HelpNDoc, is any
HTML and CHM templates can leverage various methods to get information or manipulate the
currently opened project. See methods available in the HelpNDoc API.
When interpreting a template file, HelpNDoc will automatically save the printed content to the
documentation's output directory and use the template file name, without the ".pas" part. For
example, the "topics.pas.html" file will be interpreted and the result will be written in the
"topics.html" file.
As it isn't possible nor sane to create a template file for every single file HelpNDoc has to
generate, the template system has a special property to switch the file currently being written.
The code required to do that is:
HndGeneratorInfo.CurrentFile := 'my-new-file.html';
When the template system interprets that line, it will automatically output any further content to
the file specified, in the documentation's output directory. This trick is used by the CHM and
HTML templates to output each individual topics into their own HTML file:
// Loop through each topics
for nCurTopic := 0 to length(aTopicList) - 1 do
begin
// Change the current output
HndGeneratorInfo.CurrentFile := aTopicList[nCurTopic].HelpId + '.html';
// Write the content of the topic to that file
// ...
end;
Template variables
54 / 87
HelpNDoc User Manual
CHM and HTML templates can define template variables in the template.info file. Those variables
will be presented in a user-friendly way in the documentation generation dialog and will be saved
within the project file. The template can request for user-defined values and act upon them to
customize itself based on user input. Possible template variables usages include:
Making a section optional. This is done in the default CHM and HTML templates with the
breadcrumbs line which can be hidden from generated documentation
Customizing the documentation appearance. In the HTML template, it is possible to specify a
base color, an icon set, default tree expansion status...
Provide localized texts. The default HTML template defines the captions for the "Index",
"Search" and "Content" tabs as variables so that it is possible to translate them from within
HelpNDoc
[var_BaseColor]
name=Base color
kind=color
default=#EFEFEF
description=Customize the documentation's base color.
55 / 87
HelpNDoc User Manual
Kinds of variables
A variable can be set as one of the following kinds depending on its purpose:
Kind Description Remarks
Samples
56 / 87
HelpNDoc User Manual
In this section, we will create a new HTML template from scratch. This template will create a
single-page HTML documentation where all the topics are grouped on that single page. The final
version of this template is installed with HelpNDoc and can be found in the "My Documents
\HelpNDoc\Templates\html\SinglePage" directory.
Template directory
First we need to create a directory for the new template. Custom templates are located in the
"My Documents\HelpNDoc\Templates" directory. As we are creating an HTML template which
we'll call "SinglePage", we will create the following directory for our new template: "My
Documents\HelpNDoc\Templates\html\SinglePage".
<%
begin
// 1. Output BOM for HTML UTF8 files
HndGeneratorInfo.BOMOutput := True;
// 2. Instruct the generator to generate the desired output file
HndGeneratorInfo.CurrentFile := ExtractFileName(HndGeneratorInfo.OutputFile);
%>
<html>
<head>
</head>
<body>
Sample HTML Code
</body>
57 / 87
HelpNDoc User Manual
</html>
<%
end.
%>
<%
// Variable declarations
var
// List of topics available in the current project
aTopicList: THndTopicsInfoArray;
begin
// 1. Output BOM for HTML UTF8 files
HndGeneratorInfo.BOMOutput := True;
// 2. Instruct the generator to generate the desired output file
HndGeneratorInfo.CurrentFile := ExtractFileName(HndGeneratorInfo.OutputFile);
// 3. Get the list of topics available
aTopicList := HndTopics.GetTopicList(False);
%>
<html>
<head>
</head>
<body>
Sample HTML Code
</body>
</html>
<%
end.
%>
<%
// Variable declarations
var
58 / 87
HelpNDoc User Manual
// Main program
begin
// 1. Output BOM for HTML UTF8 files
HndGeneratorInfo.BOMOutput := True;
// 2. Instruct the generator to generate the desired output file
HndGeneratorInfo.CurrentFile := ExtractFileName(HndGeneratorInfo.OutputFile);
// 3. Get the list of topics available
aTopicList := HndTopics.GetTopicList(False);
%>
<html>
<head>
</head>
<body>
<%
%>
</body>
</html>
<%
end.
%>
59 / 87
HelpNDoc User Manual
HndTopics.GetTopicHeaderTextCalculated(HndGeneratorInfo.CurrentTopic), nTopicLevel]);
<style type="text/css">
<%
// 12. Output global CSS content
print(HndProjects.GetProjectCssContent());
%>
</style>
linkformattopic=#%helpid%
linkformatanchor=#%anchorname%
Final touches
As we have seen, the possibilities are endless: we could add some custom-made CSS file in the
assets folder to customize the HTML headings, add the title of the project, the copyright,
completely modify the look and feel of our web-page, split it in sections... Some of those ideas
are added in the final sample file which is installed with HelpNDoc and can be found in the "My
Documents\HelpNDoc\Templates\html\SinglePage" directory.
The Default HTML template is using the output file name as the default index file for the HTML
documentation generation. A few modifications to the template can alter this behavior and force
HelpNDoc to generate an index.html file as the default index file.
Prior to doing any change to the default template, always make a copy in the personal template
folder and work on that copy.
60 / 87
HelpNDoc User Manual
HndGeneratorInfo.CurrentFile := ExtractFileName(HndGeneratorInfo.OutputFile);
To alter this behavior, just comment or remove the line from the template. Now HelpNDoc will
generate an index.html file automatically.
to:
That's all. Now HelpNDoc will generate an HTML documentation which will automatically use the
index.html file as the default index file.
61 / 87
HelpNDoc User Manual
The following is a simple example of a possible use of the HelpNDoc's command line options:
This translates to: generate the file "myHelp.hnd" according to the settings saved in that file.
This translates to: generate the file "myHelp.hnd" according to the settings saved in that file and
save the log to the file "c:\log\hnd-log.txt"
This translates to: generate the file "myHelp.hnd" by using the builds named "Build chm
documentation" and "Build pdf documentation" and modify or declare the variable "MyVariable"
with the value "MyValue".
Delphi integration
62 / 87
HelpNDoc User Manual
Java integration
For now on, each time a new project is created, the set of styles defined in this file will be loaded
and available for that project.
63 / 87
HelpNDoc User Manual
The script editor provides a way to use a programming language, based on the Pascal syntax, to
automate HelpNDoc. Almost everything in HelpNDoc can be automated, from project creation to
library management. See methods available in the HelpNDoc API.
The HelpNDoc API is based on the Pascal programming language. The following list describes
the methods available via the HelpNDoc API. As an example for the ClearDictionaries method, it
can be used as follows: HndDictionaries.ClearDictionaries;
List of objects
HndBuilds
HndBuildsEx
HndBuildTags
HndBuildTagsEx
HndDictionaries
HndEditor
HndEditorHelper
HndGeneratorInfo
HndMeta
HndJsSearchEngine
HndKeywords
HndLibraryItems
HndLibraryItemsCache
HndProjects
HndProjectsMeta
HndStyles
HndTemplates
HndTemplatesEx
HndTopics
HndTopicsEx
HndTopicsKeywords
HndTopicsMeta
HndBuilds
Properties and methods for Builds
function CreateBuild: string;
Create a new build.
procedure DeleteAllBuilds;
Delete all builds for the current project.
procedure DeleteBuild(const aBuildId: string);
Delete a specific build.
function GetBuildCustomValue(const aBuildId, aKey: string; const aDefaultValue: string =
''): string;
Get a custom value for that build.
64 / 87
HelpNDoc User Manual
65 / 87
HelpNDoc User Manual
HndBuildsEx
function GetBuildTemplateOrDefault(const aBuildId: string): string;
Returns the template for a specific build or the default template for this build kind.
function GetChmButtonVisibilityHex: string;
Return the CHM button visibility as an hexadecimal string.
function GetChmNavigationPaneStyleHex: string;
Returns the CHM navigation pane style as an Hexadecimal string.
function GetValidBuildOutput(const aBuildId, aBuildOutput: string): string;
Returns a build output which is not empty.
HndBuildTags
procedure AddTag(aTag: string);
Add a tag to the list of possible tags.
procedure ClearTagList;
Clear the list of tags for this project.
procedure DeleteTag(const aTag: string);
Delete a specific tag.
function GetTagListAll: TStringList;
Returns a list of all system and custom tags.
function GetTagListCustom: TStringList;
Get a list of custom tags.
function GetTagListSystem: TStringList;
Get a list of system tags.
HndBuildTagsEx
procedure ConditionAdd(aCondition: string; var aConditionList: TStringList);
Add condition to the list.
procedure ConditionInvert(var aConditionList: TStringList);
Invert condition in the list.
function ConditionRemove(aCondition: string; var aConditionList: TStringList): Boolean;
Remove condition from the list.
procedure ConditionReset(var aConditionList: TStringList);
Reset condition list.
66 / 87
HelpNDoc User Manual
HndDictionaries
procedure ClearDictionaries;
Clears the loaded dictionaries list and disable the spell checker component.
procedure DisableAllDictionaries;
Disable all the dictionaries.
function EnableDictionaries(const aLocalIdList: TStringList; const DisabledOthers:
Boolean = True): Boolean;
Enable a list of dictionaries. Disable the other ones if needed.
function EnableDictionary(const aLocaleId: Cardinal; const DisabledOthers: Boolean =
True): Boolean;
Enable the specific dictionary and disables others if asked.
function GetActiveDictionariesCount: Integer;
Returns the number of currently active dictionaries.
function GetActiveDictionariesList: THndDictionaryInfoArray;
Returns the list of currently active dictionaries.
function GetDictionariesCount: Integer;
Get the number of dictionaries.
function GetDictionariesList: THndDictionaryInfoArray;
Get a list of dictionaries.
function GetDictionaryInfo(const aLocalId: Cardinal): THndDictionaryInfo;
Returns information about the specific locale.
function InstallOOoDictionay(const aFileName: string): Boolean;
Installs a new OpenOffice.org dictionary.
procedure NotifyActiveDictionariesChange(Sender: TObject; const SaveToProject: Boolean =
True);
Notifies every listener the dictionary list has been updated.
procedure PauseLiveSpell;
Pause live spell in all possible controls.
function ReloadDictionaries: Boolean;
Reload the dictionary list from the disk.
procedure SaveActiveDictionariesToProject;
Save the currently active dictionaries to the currently open project.
67 / 87
HelpNDoc User Manual
HndEditor
procedure UpdateStylesFromTemplate(const anEditor: TObject);
Update the styles of the editor based on the template
procedure ApplyStyleToSelection(const anEditor: TObject; const aStyleId: Integer);
Apply the specified style to the selection.
procedure Clear(const anEditor: TObject);
Clears the content of the specified editor.
function CreateTemporaryEditor: TObject;
Creates a new temporary editor.
function CreateTemporaryReportHelper: TObject;
Create a new temporary report helper.
function CreateTemporaryViewer: TObject;
Creates a new temporary viewer.
procedure DestroyTemporaryEditor(const anEditor: TObject);
Destroys a previously created temporary editor.
procedure DestroyTemporaryReportHelper(const aReportHelper: TObject);
Destroys a previously created temporary report helper.
procedure DestroyTemporaryViewer(const aViewer: TObject);
Destroys a previously created temporary viewer.
function GetAnchorList(const anEditor: TObject): TStringList;
Retrieves the list of anchors in the specified editor.
function GetContentAsHtml(const anEditor: TObject; out aCssContent: string): string;
Returns the editor content as HTML.
procedure GetContentAsStream(const anEditor: TObject; aStream: TMemoryStream);
Returns the editor content as Stream.
function GetContentAsText(const anEditor: TObject): string;
Returns the editor content as text.
function GetCurrentAnchorName(const anEditor: TObject): string;
Returns the name of the current checkpoint or an empty string if there isn't any.
function GetCurrentItem(const anEditor: TObject): TObject;
Returns the currently selected item.
function GetCurrentPictureAltText(const anEditor: TObject): string;
Return the currently selected picture's alternative text.
function GetCurrentPictureBackColor(const anEditor: TObject): TColor;
Returns the background color of the currently selected picture.
function GetCurrentPictureHeight(const anEditor: TObject): Integer;
Returns the currently selected picture's height.
68 / 87
HelpNDoc User Manual
69 / 87
HelpNDoc User Manual
HndEditorHelper
function GetHyperlinkDetailedTextFromString(const aString: string): string;
Returns a detailed text from an hyperlink string.
function GetHyperlinkInfoFromString(const aString: string): THndHyperlinkInfo;
Extract the hyperlink information from a string.
procedure GetHyperlinkTargetExtraFromString(const aString: string; var Target, Extras:
string);
Returns the Target and Extra values from hyperlink data.
procedure ImportImagesToLibrary(const anEditor: TObject);
Import the images to library.
function SetHyperlinkInfoToString(const anHyperLinkInfo: THndHyperlinkInfo): string;
Constructs a string based in hyperlink info.
procedure SetupEditorProperties(const anEditor: TObject);
Defines default editor properties and events.
HndGeneratorInfo
70 / 87
HelpNDoc User Manual
HndMeta
function GetItemMetaRawValue(const aKey: string): WideString; override;
Returns the raw IROStrings value for the property of the specified item.
procedure SetItemMetaRawValue(const aKey: string; const aRawValue: WideString); override;
Assign a raw value to a specific key.
HndJsSearchEngine
procedure AddSearchData(const aSearchData, aAssociatedTopicId: string);
Add search data and associate it to a specific topic.
procedure ClearSearchData;
Clear the current search data.
function GetJsData: string;
Get the Javascript search data.
HndKeywords
Array of minimal keyword information
function CreateKeyword: string;
Create a new keyword. The new keyword will be placed at the bottom of the list.
procedure DeleteAllKeywords;
Delete all the keywords in the project, except the root project keyword.
function DeleteKeyword(const aKeywordId: string): Boolean;
Delete a specific keyword and its children.
function GenerateUniqueCaption(const aBaseCaption, aParentId: string; const
aFilteredItems: array of string): string;
Generates a unique caption within the specified parent.
function GetKeywordByCaption(aCaption, aParentId: string): string;
Returns the ID of the keyword with the specified case-insensitive caption with the specified
parent.
function GetKeywordCaption(const aKeywordId: string): string;
Get the caption of a specific keyword.
function GetKeywordDirectChildrenCount(const aKeywordId: string): Integer;
71 / 87
HelpNDoc User Manual
HndLibraryItems
Array of minimal library item information
function CreateItem: string;
Creates a new unspecified item to the library.
function DeleteItem(const anItemId: string): Boolean;
Delete a specific library item.
function GetItemByCaption(const aCaption: string): string;
Returns the item with the given caption.
function GetItemCaption(const anItemId: string): string;
Gets the caption of a specific item.
function GetItemContent(const anItemId: string): TMemoryStream;
Get the content of the item as a stream. Caller must free the stream after using it.
72 / 87
HelpNDoc User Manual
73 / 87
HelpNDoc User Manual
HndLibraryItemsCache
procedure AddOrInvalidateItem(anItemId: string);
Add an item to the cache or invalidate it.
procedure DeleteItem(anItemId: string);
Delete an item from the cache.
function GenerateUniqueCaption(const aBaseCaption: string; const aFilteredItems: array of
string): string;
Generates a unique caption amongst all cached items.
function GetItemFromCache(anItemId: string): THndLibraryItemsCacheInfo;
Get item cache info.
procedure Invalidate;
Invalidate all the items from the cache.
procedure InvalidateVariables;
Invalidate the variable values based on user changes.
HndProjects
procedure SetProjectName(const aProjectName: string);
Defines the project name.
procedure CloseProject;
Closes the currently openned project.
function CopyProject(const aNewProjectName: string; const OpenNewOne: Boolean): Boolean;
Copy the project to a new location and open the new one if needed.
function DeleteProject: Boolean;
Physically delete the currently openned project.
function GetProjectAuthor: string;
Returns the author of the project.
function GetProjectBusy: Boolean;
Project is currently busy: creating, loading or closing.
function GetProjectCharset: Integer;
Returns the project current charset.
function GetProjectCharsetAsHtml: string;
Returns the project current charset as HTML charset value.
function GetProjectClosing: Boolean;
Project is currently closing.
function GetProjectComment: string;
Return the current project's comment.
function GetProjectCopyright: string;
Returns the project copyright.
74 / 87
HelpNDoc User Manual
75 / 87
HelpNDoc User Manual
HndProjectsMeta
function GetItemMetaRawValue(const aKey: string): WideString; override;
Returns the raw IROStrings value for the property of the specified item.
procedure SetItemMetaRawValue(const aKey: string; const aRawValue: WideString); override;
Assign a raw value to a specific key.
HndStyles
procedure LoadFromProject(aRVStyle: TRVStyle);
Load the style templates from the project.
procedure NotifyStyleTemplatesChange(Sender: TObject);
Notify sbuscribers that the style list has changed.
procedure ResetStyleTemplates(aRVStyle: TRVStyle; doNotify: Boolean = True);
Reset the style templates by loading the default.hns styles file.
procedure SaveToProject(aRVStyle: TRVStyle);
Save the content of the style template to the project.
HndTemplates
function GetTemplateKindList: TStringDynArray;
Returns a list of template kinds available on the system: 'html', 'chm'...
function GetDefaultTemplateFor(const aTemplateKind: string): THndTemplateInfo;
Get the default template info for the specified kind.
function GetTemplateCategoryHierarchy: THndTemplateHierarchyArray;
Returns the full category hierarchy of available templates.
function GetTemplateFromName(const aTemplateName, aTemplateKind: string):
THndTemplateInfo;
Returns a specific template based on its name and kind.
function GetTemplateList: THndTemplateInfoArray;
Returns a list of available templates on specified kind, or all kinds if none specified.
76 / 87
HelpNDoc User Manual
procedure UpdateTemplateList;
Retrieves the templates from the hard drive.
HndTemplatesEx
function CopyAndMergeTemplateToFolder(const aTemplateInfo: THndTemplateInfo; const
aFolder: string): Boolean;
Copy the template to the specific folder, merging its info file with existing template in that folder.
function GetTemplateInfoFromPath(const aTemplatePath: string): THndTemplateInfo;
Get template info from its path.
function GetTemplateKindFromPath(const aTemplatePath: string): string;
Returns the kind of template available at the speicified path.
function GetTemplateRawNameFromPath(aTemplatePath: string): string;
Returns the template directory name from path.
HndTopics
Create, edit and manage topics within the current project.
procedure CopyTopicToClipboard(const aTopicId: string; const isCut: Boolean);
Copy the specified topic to clipboard.
procedure CreateMultipleTopics(const aTopicList: TStrings; const aParentTopic: string =
'';
Creates multiple child topics of the specified parent based on a tabular lists.
function CreateTopic: string;
Create a new topic. The topic will be placed at the bottom of the topic list.
procedure DeleteAllTopics;
Delete all the topics in the project, except the parent topic.
function DeleteTopic(const aTopicId: string): Boolean;
Delete a specific topic and its children. Project topic can't be deleted.
function GenerateUniqueHelpContext(const aBaseHelpContext: Integer; const
aFilteredTopics: array of string): Integer;
Generates a unique help context among all the topics except the filtered ones.
function GenerateUniqueHelpId(const aBaseHelpId: string; const aFilteredTopics: array of
string): string;
Generates a unique help id among all the topics except the filtered ones.
function GetCurrentTopic: string;
Returns the ID of the currently edited topic.
function GetProjectTopic: string;
Returns the root project topic.
function GetTopicCaption(const aTopicId: string): string;
Get the caption of a specific topic.
function GetTopicContent(const aTopicId: string): TMemoryStream;
Returns the content of the specified topic.
function GetTopicContentAsHtml(const aTopicId: string): string;
Get the topic's content as HTML. Only available when generating an HTML related
documentation.
77 / 87
HelpNDoc User Manual
78 / 87
HelpNDoc User Manual
79 / 87
HelpNDoc User Manual
HndTopicsEx
procedure SynchronizeAllHelpIds;
Overwrite all topic's help Ids based on caption.
80 / 87
HelpNDoc User Manual
HndTopicsKeywords
function AreTopicAndKeywordAssociated(const aTopicId, aKeywordId: string): Boolean;
Indicates wether the specified topic and keyword are associated.
function AssociateTopicWithKeyword(const aTopicId, aKeywordId: string): Boolean;
Link a specific topic to a specific keyword.
function DissociateTopicFromKeyword(const aTopicId, aKeywordId: string): Boolean;
Remove the association between the specified topic and keyword.
function GetKeywordsAssociatedWithTopic(const aTopicId: string): TStringDynArray;
Get a list of keyword Ids associated with a specific topic.
function GetTopicsAssociatedWithKeyword(const aKeywordId: string): TStringDynArray;
Get a list of topic Ids associated with a specific keyword.
HndTopicsMeta
function GetItemMetaRawValue(const anItemId, aKey: string): WideString; override;
Returns the raw IROStrings value for the property of the specified item.
procedure SetItemMetaRawValue(const anItemId, aKey: string; const aRawValue: WideString);
override;
Assign a raw value to a specific key.
Help compilers
FAQ and troubleshooting about Help compilers.
HelpNDoc can generate the PDF, Word and HTML documentation by itself. However, to
generate a CHM documentation, you will need to download and install the Microsoft HTML Help
Compiler.
Symptoms
When installing the Microsoft HTML Help Compiler on recent operating systems, you can receive
a warning message saying that "This computer already has a newer version of HTML Help".
81 / 87
HelpNDoc User Manual
Solutions
Discard the message as your system already has a valid and up-to-date help viewer. The
compiler has correctly been installed despite of this message.
Symptoms
When viewing your CHM documentation, Microsoft's HTML Help Viewer is showing an error page
saying either that:
"The action has been canceled"
"The page cannot be displayed"
Solutions
Make sure your help file is not accessed from a network path or via a mapped networked
drive. Try to copy the file locally and launch it again;
Make sure your help file isn't in a path with symbols such as "#" (sharp). Once again, try to
copy it locally before launching it;
In some cases, you can have access to an "unblock" button in the properties page of the
help file. Right click on the file then go to its properties and click the "unblock" button. This
button is not available in all systems though.
Symptoms
After an Internet Explorer update, when viewing your CHM documentation, Microsoft's HTML Help
Viewer isn't showing anything in the topic's contents.
Solutions
The update process might have caused problems with some files registration. You can try to
register them manually from the Start / Run prompt by entering each of these commands:
regsvr32 %systemroot%\system32\hhctrl.ocx <press the enter key>
regsvr32 %systemroot%\system32\itss.dll <press the enter key>
Despite modifying the navigation pane's width the CHM file is not updated
Symptoms
You change the navigation tab's width in the HelpNDoc's projects settings but when opening the
CHM file, nothing has changed.
82 / 87
HelpNDoc User Manual
Solutions
The Microsoft HTML help viewer stores the help window's size and position for each individual
help file as soon as it has been launched. Modifying the help settings after that won't have any
effect as the help viewer will only read local configuration for that help file and ignore the file's
settings set up using HelpNDoc.
A solution would be to erase the help viewer's configuration file, but be warned that this file
contains all the configuration made to all the help files viewed on the system. So deleting this file
will delete the configuration options for all the other files too.
This file is usually located there: C:\Users\%username%\AppData\Roaming\Microsoft\HTML Help
\hh.dat where %username% is your Windows user name.
Symptoms
When trying to search within the CHM documentation, no results are found.
Solutions
In your HelpNDoc project, click "Project options" in the "Home" ribbon tab and make sure the
project language and charset are correct
Make sure you are using a Windows installation setup with the same language as your
HelpNDoc's project language
Click the top part of the "Generate Help" button in the "Home" ribbon tab to access the
"Generate documentation" dialog, then select your CHM build in the list on the left, then click
"customize" if the "Template settings" tab is not already visible on the right, then check the
option "Use project charset for topics"
Generate the CHM documentation again
Symptoms
When viewing a local (not uploaded to a server) HTML documentation, Google Chrome will show
an error when trying to search within the documentation.
Solutions
HelpNDoc's HTML documentation generated using the default HTML template uses an AJAX call
to retrieve the search data. This provides faster loading times for the overall documentation.
However, when the HTML documentation is viewed locally, using the file:// protocol, Google
Chrome will not allow the AJAX call.
To work around this limitation, Chrome can be launched with the "--allow-file-access-from-
files" command line switch. As an example, run:
o chrome.exe --allow-file-access-from-files
Another possible solution is to serve the local documentation via a server such as Apache or
IIS, and therefore viewing your documentation using the http:// protocol. Google Chrome
won't have the same restriction in that particular case.
83 / 87
HelpNDoc User Manual
Symptoms
We are hosting our HTML documentation produced by HelpNDoc on the CloudFlare CDN but it
appears broken with various JavaScript errors.
Solutions
CloudFlare's Rocket Loader technology rewrites part of your HTML to provide faster loading
which can break some JavaScript. The solutions are:
Turn off Rocker Loader in the Performance Settings of CloudFlare. See: Why is JavaScript
or jQuery not working on my site?
Write a custom HTML template and disable Rocket Loader for some scripts. See: How can I
have Rocket Loader ignore my script(s) in Automatic Mode?
Missing files when generating a CHM file in the same directory as HTML
Symptoms
Your project contains an HTML build which is followed by a CHM build and while the CHM build is
fine, the HTML one is missing files such as topics, library items...
Solutions
This is due to the fact that most of the temporary files generated by the CHM build overwrite
existing files generated by the HTML build. And by default, the CHM build will delete those
temporary files after successful generation: the HTML build is therefore missing some files.
The best solution is to generate each build into its own specific folder to avoid such unwanted
interactions.
PDF documentation
FAQ and troubleshooting PDF documentation.
Symptoms
Printing a PDF document using Adobe PDF reader fails with the message saying "Drawing
Error".
Solutions
Try updating the Adobe PDF Reader software to the latest version. It can be downloaded freely
from Adobe's servers
84 / 87
HelpNDoc User Manual
Symptoms
When viewing a Microsoft Word document generated by HelpNDoc, the page numbers displayed
in the table of contents are wrong.
Solutions
HelpNDoc generates fields for the page numbers in the table of contents of Microsoft Word
documents. They are automatically managed and update by Microsoft Word and they are usually
updated when printing the document. It is possible to force the update of those fields by selecting
the whole table of contents in Microsoft Word, then hit the F9 keyboard shortcut.
By purchasing one of the full versions of HelpNDoc, you are entitled for free updates for a full
version cycle with a one year safety period. This means that, no matter what, you will benefit
from one year of free updates. And if by the end of that year we haven't reached a full version
cycle - for example if you buy version 4.0, a full version cycle will go up to version 5.0 included -
you will still get free updates until that version cycle has been reached.
Site license provide an unlimited number of licenses for a single location in the world. World
license provide an unlimited number of licenses for multiple locations throughout the world.
HelpNDoc can be licensed site-wide or world-wide. Please contact us to receive further details.
85 / 87
HelpNDoc User Manual
We use Share-It! as our payment handling partner. They are globally known for their security and
efficiency in payment processing. They accept many currencies including US dollars, Euros,
British pound, Australian dollar, Japanese yen, Canadian dollar, Swiss franc, Russian rouble,
Brasilian real, Norwegian krona, Swedish krona, Polish zloty, Chinese renminbi yuan, Taiwan
dollar, Indian rupee. You can pay using various payment methods including credit card, paypal,
wire-transfer, check and cash. To learn more about Share-It! and the ordering options, visit the
Share-It! FAQ section.
You can obtain a written quote from Share-It! by filling the following form: http://ccc.shareit.com/
ccc/quote.html
Make sure to mention the desired HelpNDoc Edition as well as product ID:
HelpNDoc Professional Edition named license product ID is 300316750
HelpNDoc Professional Edition floating license product ID is 300460470
HelpNDoc Standard Edition named license product ID is 300001096
HelpNDoc Standard Edition floating license product ID is 300460471
Miscellaneous
Miscellaneous FAQ and troubleshooting.
Symptoms
You downloaded the HelpNDoc installation program but can't launch it.
Solutions
Check that the installation program's extension is correctly set as an .EXE file. Some
programs such as CA Security Software can rename downloaded .EXE files to .EFW
To import Microsoft Word *.doc or *.docx files, the free "Microsoft Office Compatibility Pack for
Word, Excel, and PowerPoint File Formats" must be installed on the system. It is automatically
installed with some older versions of Microsoft Office but not with the latest versions. It can be
downloaded from Microsoft's web-site at http://www.microsoft.com/en-us/download/
confirmation.aspx?id=3
Symptoms
When launching HelpNDoc, either the main window can't be seen or some panels are missing.
Solutions
Use the "/reset" command line option to reset HelpNDoc's layout:
Use the WINDOWS + R command shortcut to open the Run panel
86 / 87
HelpNDoc User Manual
Indicate HelpNDoc's installation path with the /reset option. Usually it is "c:\program files\IBE
Software\HelpNDoc 4\hnd4.exe /reset"
Hit OK
Restart HelpNDoc normally
87 / 87