Review of HelpNDoc

HelpNDoc is a relatively inexpensive help authoring tool, but it provides a surprisingly large and professional range of features. This review shows what HelpNDoc's particular strengths are and for which scenarios the program can be most useful.

Notes: This review was sponsored by the manufacturer of the software. However, the manufacturer did not influence the content of the review. The software version tested was version 8.4.

System requirements and installation

HelpNDoc runs exclusively under Windows. It does not have any particular hardware requirements. The program is installed in less than a minute.

The user interface language can be set to English, German, French, and Spanish. However, the online help for the program is only available in English.

HelpNDoc main window

Structure of the user interface

As with most help authoring tools, by default there is a content tree on the left side of the program window to manage the document structure.

The main area of the program window is the editor.

On the right side, there are 3 panels:

  • Library: Here you can select and manage all objects that are available in the project, such as images, videos, text variables, snippets, HTML code modules, etc. These object can be used as often as needed.
  • Topic properties: Here you can edit various properties of the open topic.
  • Keywords: Here you can assign and manage the keywords for the alphabetical index.

All window areas can be undocked, freely positioned, and docked again at any position as required.

The menu has a typical Microsoft-inspired ribbon with a customizable quick access toolbar.

Editing content

Basic editing essentially works like in any modern WYSIWYG editor.

Here you can edit the text, add tables, images, etc. via the ribbon or from the project library, and you can format the text by applying preset paragraph and character styles.

Hyperlinks to other topics or to external websites or files can be created with the help of a convenient dialog.

HelpNDoc edit hyperlink window

Generating documents

For generating the documents, there is a powerful batch editor, where all documents to be generated can be preconfigured individually. HelpNDoc saves these settings in its project, making them available again at any time.

Before running a generation process, you can click which documents HelpNDoc should produce. HelpNDoc will then generate all selected documents fully automatically in one pass without any further action.

HelpNDoc generate documentation wndow

Supported output formats are:

  • HTML (responsive WebHelp)
  • CHM
  • PDF
  • Word
  • Markdown
  • EPUB and MOBI
  • Qt Help (a special format for the Qt framework)

If required, the system also generates header files or equivalent files for various programming languages to enable context-sensitive help calls.

Single source publishing

HelpNDoc supports single source publishing at all levels:

  • Multiple output formats: You can generate different output formats from the same source: CHM, HTML (WebHelp), PDF, Word, EPUB, etc.
  • Multiple variants: You can generate a document in different variants. For example, you can generate a documentation once as the documentation for the “Professional Edition” of a software and once as the documentation for the “Standard Edition” of the same software. Certain content may differ in these variants. Yet, you maintain all content in the same HelpNDoc project. If anything changes in the next release of the software documented, you only have to change one place in the documentation source. All documents generated from the source automatically inherit the new content and are equally up-to-date again.
  • Multiple designs: You can generate a document in any number of different designs, for example, if you sell the documented product as an OEM product.

You can control whether and how a particular piece of content appears in a generated document at multiple levels of granularity:

  • Templates and style overrides control the visual appearance of a generated document.
  • Variables contain small text fragments that can be dynamically assigned during generation – for example, the product name, the version number, or similar.
  • Snippets contain content that occurs multiple times in a document, but they only need to be created and maintained once. For example, a particular warning could be needed in multiple places in a documentation. In this case, you can store such a warning as a snippet in the project library and reuse it as often as you like. If you need to revise the warning later, you just have to change the text in the snippet. All texts that use the snippet are then automatically up-to-date again.
    A snippet can consist of any number of paragraphs and can also contain images, tables, and hyperlinks.
    Creating a snippet is as simple as can be: Just select the content to be used as a snippet in the editor, right-click the selection, and select Convert to snippet in the context menu.
    HelpNDoc convert to snippet
    The only thing that is a bit of a pity is that in the snippet, the link to the preset paragraph and character styles is lost as soon as you edit the snippet text. Don't worry: everything still looks as intended, but if you ever change the appearance of a style later on, the contents of the snippets won't notice and will have to be reformatted manually. The snippet editor does not support styles, but only manual formatting.
  • Build tags define the individual variants of a documentation, as well as the various output formats.
  • Within a topic, you can restrict content to specific variants and output formats using IF-THEN-ELSE statements. You can even nest these statements if necessary.
    HelpNDoc conditions within a topic
  • If an entire topic is only relevant for certain variants, or if the topic should only appear in certain output formats (for example, only in the online documentation but not in the PDF), you can assign the build tags to the whole topic in the table of contents.
    HelpNDoc conditions for an entire topic
  • When generating a document, you specify which build tags should be visible in that document.
    HelpNDoc conditions set for a build

HelpNDoc supports only one table of contents per project. You therefore can’t have different structures the documents generated from the same source. However, this makes creating and managing topics very simple and efficient.

Project management

A HelpNDoc project is a single file. All images used in the project can either be embedded in this project file or referenced externally. No database needs to be set up, maintained, and backed up.

Link management

Within a HelpNDoc project, link management is probably the most important administrative task. HelpNDoc does this fully automatically. If you change the name or the ID of a topic, HelpNDoc automatically updates all links to this topic.

Search and replace

Being able to automatically search for and replace content that is no longer up-to-date is extremely important in any authoring system for technical documentation. HelpNDoc provides a powerful search function, which even supports regular expressions.

In a project-wide search, all search results are listed on a separate panel, where they can be clicked to be edited one after the other.

HelpNDoc conditions set for a build

Project analyzer

If you are looking for specific things or want to get an overview of a project, you can also use the integrated Project analyzer. For example, here you can get an overview of all hyperlinks that exist in the project.

HelpNDoc project analyzer

Double-clicking an object in the Analyzer immediately takes you to the relevant place in the project. While you continue working on the project, you can leave the Analyzer open.

It is also worth mentioning that several objects can be selected and edited simultaneously in the Analyzer. For example, you can change the target of any number of hyperlinks with a single command.

Topic status

Each topic can optionally be assigned a user-defined status, such as requires update, in progress, requires review, internal or similar.

Each status has a specific color, which is displayed along with the topic in the table of contents. This helps a lot in organizing your work.

HelpNDoc project analyzer

It is possible to exclude topics that have a certain status when generating a document, which can be extremely handy.


HelpNDoc provides no specific support for the translation of documentation. The source data is not available as XML data, and no XML data can be exported for translation. However, all texts in a project and in templates can be modified freely and can thus at least be translated manually.

This leaves you with the following options if you want to translate your documentation into a foreign language:

  • You can create a copy of the project, change the language settings and language-dependent texts in the templates there, and translate the copy directly in the HelpNDoc's editor.
  • Instead of the HelpNDoc project, you can translate the output generated from HelpNDoc (if necessary, unpack CHM with a decompiler beforehand). In this case, it is even possible to use a translation memory system. However, this is not an ideal solution.

Working in a team

Only one user can work on a project at a time. A lock file is used to block access until the project file is closed again.

Merged projects, in which one HelpNDoc project includes one or more other HelpNDoc projects, are not possible.

In scenarios where multiple contributors provide content, this content must either be copied manually or can be integrated as library objects. Imported library objects can be HTML, Markdown, or Word files. HelpNDoc then incorporates this content either once as a classic import, or dynamically each time a document is generated.

Importing content

If you have existing content that you would like to maintain in HelpNDoc in the future, you can import it once. However, HelpNDoc also offers you the possibility to dynamically and temporarily import content only at the time when you generate a document in HelpNDoc. In this case, HelpNDoc does not permanently incorporate the imported content into its project. Instead, the content continues to be maintained separately in the external file – for example, by authors who do not use HelpNDoc at all. Not many authoring systems offer this functionality.

If the corresponding paragraph and character styles already exist in the project, they will be adopted during the import, and the contents will immediately appear cleanly formatted. (Tip for Word imports: Import formats once beforehand in the Styles Editor from an RTF file, then you do not have to create the formats manually.)

HelpNDoc can import the following formats:

  • Word and RTF
  • HTML
  • Markdown
  • CHM (both compiled CHM and uncompiled source files)
  • legacy WinHelp HLP
  • EPUB
  • Text

If necessary, entire folders with many files can be imported in one go.

If needed, HelpNDoc can automatically split documents into individual topics based on the headings within the documents, and it can hierarchically structure the table of contents accordingly.


If you want your documentation to match your overall corporate identity and not look exactly like thousands of other documents, it is important to be able to adapt the design freely to your own corporate design requirements. HelpNDoc provides a wide range of options for this – some of them very simple, others quite demanding.


Styles are the simplest means of customization. In HelpNDoc you can create as many paragraph and character styles as you need. You can design them easily with the help of simple dialogs. You don't need to know anything about CSS. A nice feature is the possibility to organize styles hierarchically, so that styles inherit their properties from their parent styles, as long as those properties are not overridden. If you organize your styles well, you can, for example, change the font or the color for all styles in one place with one command.

Initially, styles are identical for all output formats and variants. Optionally, however, you can define overrides for each document style when configuring the generation processes. This makes it possible, for example, to use another font in a PDF file as you use in an online help system. In extreme cases, two variants can look totally different.

Unfortunately, no keyboard shortcuts can be assigned to most styles. Keyboard shortcuts are only available for the default style Normal and for Headings 1 to 3. However, keyboard shortcuts are available for many program functions.

Tipp: If you like to add additional shortcuts, you can use an external tool, such as AutoHotkey (see also AutoHotkey scripts for writing technical documentation).


If you want to change not only the appearance of the pure text but also the layout and design as a whole, you can make basic settings in a template editor. For most cases, the options provided here should be enough to customize the documents sufficiently. In addition, you can add individual CSS files, JavaScript files, or downloadable assets to the output here if required.

For output to PDF or Word, you can freely design the title page, set margins, headers, and footers, define the styles for the table of contents, and so on. Advanced things, like multi-column layouts, are not supported.

HelpNDoc template editor

A downside is that the cross-references contained in a document do not include page numbers (except for the table of contents). Also, an alphabetical index is missing in the PDF and Word output (however, it is available in online formats). This makes HelpNDoc well-suited for manuals that are read on-screen and use active hyperlinks instead of page numbers. For manuals printed on paper, however, HelpNDoc is not the optimal tool.

If you want to get down to the detail, HTML-based output formats in addition allow you to edit the HTML code of the templates and the scripts that are run internally when generating a document. Or you can create your own templates and scripts from scratch. There are no limits to creativity and complexity here.


Its various automation options are one of HelpNDoc’s major strengths:

  • When generating output, all documents to be generated can be precisely preconfigured in the Batch Editor and then produced all at once with a single click without further intervention.
  • Alternatively, the generation process can also be triggered via the command line and thus integrated into a batch file, for example.
  • Build Actions can be used to execute scripts, to send HTTP requests, or to control external programs before and after each document is generated.
  • Recurring tasks can be individually automated with scripts. Many functions within HelpNDoc can be controlled via a comprehensive API.
  • HTML templates also use scripts. Thus, some degree of intelligence can be built in here as well.

Pushing the limits of what is possible

You might miss some things in HelpNDoc that you know from modern websites, such as expandable and collapsible sections (“dropdowns”), clickable images (“thumbnails”), tabs, sortable tables, etc. In this respect, HelpNDoc does not differ very much from comparable authoring tools. Except for dropdowns and thumbnails, these features are missing in almost any authoring tool, which is actually a pity.

However, with a little bit of CSS and JavaScript, you can add many things on your own – see also my detailed tool-independent tutorials (coming soon). In HelpNDoc, such extensions to the standard functionality can be integrated particularly conveniently with the help of the library function.


By clicking the following link, you can open an example of a WebHelp system that was created with HelpNDoc and integrates some advanced features, such as dropdowns, thumbnails, tabs, sortable tables, sticky objects, and more.

Open HelpNDoc example help file in a new window

The bottom line

Compared to other professional help authoring tools, HelpNDoc is very cost-effective. Of course, you can't expect the same range of functions here as with a system that costs several times as much. Or can you? In some areas, HelpNDoc actually offers even more.

The clear strengths of HelpNDoc are:

  • Very reasonable price.
  • Ease of use for basic tasks.
  • Clean, modern user interface.
  • Contemporary and almost freely customizable output, especially in HTML-based formats.
  • Script engine with a rich set of API methods for automating complex and repetitive tasks.
  • Command line interface and Build actions to automate even complex generation processes.
  • Ability to import externally maintained content dynamically only at the time the output is generated (Markdown, HTML, Word, RTF).

On the one hand, this makes HelpNDoc an authoring tool for anyone looking for an inexpensive and fairly simple solution for a smaller or medium-sized project in which teamwork and the translation workflow do not play a major role.

On the other hand, HelpNDoc is an exceptionally versatile solution for scenarios that require a high degree of automation, or where documentation is fed from multiple sources.


  • A technical writer manages the documentation and writes their content directly into HelpNDoc.
  • Interface documentation is automatically exported from the source code as Markdown files with an external tool and is linked to the HelpNDoc project.
  • The marketing department and product management maintain individual pieces of content in Microsoft Word.

Finally, HelpNDoc brings everything together in its project and fully automatically generates a uniform output – not only as WebHelp (HTML), but also in other formats, such as CHM, PDF, or Word.

Pricing and licensing

HelpNDoc is available in 3 versions:

  • The Standard Edition is the right choice for those who only want to generate CHM or HTML and can do without automatic build actions. Price: €99
  • The Professional Edition can create all output formats. Price: €299
  • Finally, the Ultimate Edition also supports build actions and the ability to encrypt and sign generated PDF and Word files. Price: €499

For testing and for strictly personal use, there is also a free version available (generates banners in the output). For corporate use, the manufacturer offers floating licenses as well as special license models.

Updates are included for at least one year and one full version cycle.

Manufacturer and licensing options: