How to easily write a user's guide for your application using different file extensions – DEVELOPPARADISE
26/05/2018

How to easily write a user's guide for your application using different file extensions


Introduction

Before I started to use the C# programming language, I usually make a user manual using a Microsoft Word document. This would mean, when I start writing an application’s user guide, I create an MS Word document in which I have entered the text and put the screenshots of the application.

Later, as a good option, Microsoft offers possibility to save MS Word document as a PDF document. Usually, I make a user manual in the MS Word document and finally save it as a PDF file. Afterwards, the generated PDF file is then delivered to end application users as user manual.

Two and a half years ago, I started developing a desktop WPF application which is very complicated (the development is still in progress) and there are screen forms with so many GUI elements that provide different possibilities. I needed a way to write a user guide that would be generally activated anywhere from the application by pressing the F1 key and also could be opened automatically on a specific part of the user manual when you are using help cursor and you clicked on a specific element in the user’s form (for example button, textbox etc.), (see picture below).
 

  How to easily write a user's guide for your application using different file extensions

So I began to use the file with the extension .chm, which has the ability to open at the specific chapter of the document, for the instruction that is related to a particular form and the GUI element on it.

Of course, for quick explanations and instructions, I usually use the ToolTip UI elements that can be linked to each GUI element of the form (button, textbox, combo box etc.). The good thing about these ToolTip elements is that they can be set to stay opened for unlimited period of time until you move to another part of the form. It is possible to format ToolTip text to be displayed in multiple rows.

Since the file with the .chm extension provides the ability to automatically position at the appropriate part of the document when opening. I started to search for a program that could generate a .chm document from the MS word document and having the accommodation of it being free of charge.

By browsing the Internet, I found a free application chmProcessor , a tool that provides the ability to generate different document types from MS Word documents.

How to use

chmProcessor provides the ability to save configuration to its project file (.WHC) and to generate the following file types from the original MS word document:
-Document compiled and saved in a compressed HTML (.chm)
-Acrobat Reader document (.pdf)
-Documentation saved in a HTML (.html)
-Microsoft’s alternative to PDF (.xps)
-Java ARchive package file format (.jar)
-Custom file format

The application is straight forward. When you start it, it’s necessary to enter the path for your MS Word document (.doc or .docx) file in the “Source files” window. Then, at the bottom of the screen, you need to specify the path to which you want to generate files in certain file formats and click the Generate button.

When you set up all necessary elements in the application, you can record the entire configuration as a chmProcessor project file with the .WHC extension. Later on, when you update the MS Word document content, double-clicking on this project file will open the application with all previously configured parameters and generate files based on MS Word document(s) in different formats.

In the documentation on the website for chmProcessor you can also find an example of a chm file called from C#

System.Windows.Forms.Help.ShowHelp (null, "C: / pathtomyhelpfile.CHM", System.Windows.Forms.HelpNavigator.KeywordIndex, "The title title to show");

My examples of the chmProcessor project files (.WHC) for generating a user guide can be found on the following websites:

https://github.com/vladano/GenCert/tree/master/GenCertHelp

https://github.com/vladano/SCVMMAddin/tree/master/doc

I have read many good articles and found so much useful source code on the Code Project website and so I want to share my experience. Maybe this article will help someone.