Five reasons to use RoboHelp scripting

by Willam van Weelden

Adobe RoboHelp 8 and higher have built-in scripting support. Scripting may sound intimidating, especially if you do not have any programming experience. Using scripts however require no extra skills. And there are good reasons for exploring the possibilities of scripting. And scripting is not something for developers only.

1. Make your job more fun

Most people don’t like dumb, repetitive tasks. Personally I find such tasks mind bogglingly dull and boring. Why do I have to do a simple task that takes up a lot of my time and that can be done by any twelve-years-old? For instance, I created a few manuals with FrameMaker. These manuals must be available as PDF but must also be available in a larger help project. No big deal, link the FrameMaker books and all is well. But the style guide requires the use of tables around certain headings to accommodate for a nice jump to top image link.

You cannot set the link mechanism to just enter extra HTML into the topics when they are created. That means manually editing the topics: copy and paste the required tables into the topics and add place the headings inside the table. Even worse, when the FrameMaker document is updated, all changes to the topic are lost and I have to start all over again.

Wouldn’t it be great if this could be done automatically? Push a button, get some coffee and return to your desk to find that the task has been completed. Thanks to scripting, this can now become a reality. A script may not be able to do everything for you, but if a task is repetitive, there’s a very good chance that a script can do a lot of boring work for you.

2. Save time to do things that matter

Repetitive tasks are not just boring, they can also take a lot of time. A problem I encounter with projects is that I regularly need to assign context sensitive help id’s in projects. Creating map numbers and assigning those to topics is no big deal if you only have to map a dozen topics.

But what do you do when you receive a project that has hundreds of topics you need to assign context sensitive help id’s. Or what when you have a project that has thousands of topics? And perhaps not just one project but a few? Assigning the id’s by hand will take days. A script can do it in seconds. That leaves more time to do things that matter, such as creating great content!

3. Eliminate errors

When you manually perform a task, you always leave room for errors. Especially when you have to perform a repetitive task, it is easy to miss something. No matter how careful you are. For example: you need to convert a product name in all your topics to variables. When you open each topic in turn and manually replace the word with a variable you’re sure to miss the product name a couple of times.

Using a script is a great way to make sure that a task is done without any errors. A script doesn’t think and does exactly what it is programmed to do. It does everything exactly the same and it can’t forget something.

4. Push RoboHelp to the maximum

Many people don’t use RoboHelp on it’s own. They integrate MS Word documents and FrameMaker documents. They create custom skins that require modification in the output files and they synchronize variables and conditional build tags between projects.

RoboHelp does some things straight out of the box. Other things, such as modifying output files after generation, require extra work. With scripting you can integrate all those actions in RoboHelp. Do you use a separate tool to search and replace your way through the output files? A single script can take care of generating the correct layout, performing any find and replace actions you need and while it’s running copying the project files to the correct directory.

Remember my problem with linked FrameMaker documents? A simple script will update the linked resources and automatically modify the linked files so they adhere to our style guide. I don’t even have the time to get a cup of coffee before the script is finished.

5. Help others

Scripting is not just a great way to help yourself. Because you can easily share a script that you created, you can also help others. A good example of such a script is the Image resizer script by Chashnikov (see

Another forum member had a problem because she had to quickly reset the dimensions of all the images in a project. Chashnikov had already created such a script for himself and he was willing to share the script. Now everyone can benefit from Chashnikov’s solution.

Luckily this is not the only example. Several forum members and Adobe employees have already shared useful scripts.

How to get started

You may have already found the sample scripts Adobe has provided. But what if you need to do something Adobe hasn’t provided a script for? Fortunately, there are some sites that offer free scripts:

You can also post on the RoboHelp forum. Perhaps someone already created a script that does just what you need.

If you want to get started with creating scripts yourself, you should have some understanding of JavaScript. When you are somewhat familiar with JavasScript, I advise you to read my article Getting Started with ExtendScript in RoboHelp for a quick introduction to scripting in RoboHelp. The sample scripts provided by Adobe also provide excellent examples when you want to get familiar with scripting. To make scripting easier you can also use my RoboHelp ExtendScript Library. This library contains methods and functions I regularly use in my own scripts.

Willam van Weelden

About the Author

Willam van Weelden is a technical writer at Centric IT Solutions and a part time Philosophy student at the University of Utrecht. He creates help, demonstrations and commercial documentation using a variety of tools, including Captivate, FrameMaker and RoboHelp. You can visit him at