![]() |
Reverse Engineering |
![]() |
|
Sometimes you only have the output files and nobody can locate the source files. It's not always possible to recover but this topic is designed to help where it is.
I have to emphasise the topic is about recovering projects created in Classic versions of RoboHelp. The methods described here will not work with the New UI versions of RoboHelp with one exception. If you have a CHM output, see CHM Help below and proceed to the point where you have an HHP file. Then try importing those using the HTML topic option.
The first step must be a very thorough search for the source files. It is definitely worth the effort.
File Explorer search has improved but other tools such as Ultra Search are worth trying. Enlist the help of your IT guys as well. You really want to avoid the issues involved with the other options. Sometimes this problem occurs when an author has left and you have been given a new computer. Have IT wiped the old machine?
If frameless or responsive help was your only output, then I am sorry to say you are stuck. The best you can do is a manual rebuild.
By now you will see why locating the source files is worth the effort.
Until recently you had two options, one was free and one you had to pay for.
The free option is Rick Stone's excellent topic on the subject. It was orginally on his RoboWizard site but that is no longer online. Rick kindly gave me access to the content so you can see a PDF version. The downside, as you will see, is it involves a lot of manual cleaning up. If you use this method, when you have recovered your project, come back here and see the section below on Loss Prevention. Some of the tips will be relevant for webhelp as well.
The paid option was to purchase a script from Help Essentials. I understand it also recovers map ids, the table of contents and the index from webhelp generated from RoboHelp X5 to RoboHelp 2019 Classic. It does not work with responsive outputs or with outputs created by RoboHelp 2019 New UI.
Update 30th December 2021. The Help Essentials site is no longer available but the scripts there are now hosted on this site and are free. See Scripts.
See the WebHelp section above. I believe scripts for these output types included in the package on the Help Essentials site but check with them first.
The simplest solution is to use the scripts on the Help Essentials site. See the WebHelp section above. This type of output though is relatively easy to recover yourself by following the steps below. The basics have been covered across a number of posts on various forums. What I have done here is explain them a bit more fully and provide some options.
It is important with these methods that where you have to define the name of the CHM file, you use the name of the file you are decompiling exactly as it is. Do not, for example change myhelp.chm to myhelp2.chm. If change the name of the CHM file during the process, the glossary and browse sequence files will also be renamed. The necessary files will be in your folder but they will not appear in the project and the glossary and browse sequences will not show in your project.
See What's Lost for information about context sensitive help and conditional tags. Any index words that were contained in the source html files and any Stop words will be lost.
If you have a copy of FAR, then you have the tools you need.
Pete Lees posted details of a free tool that decompiles the CHM file and creates the HHP file in one process. The tool is Key Tools and it was available from Ralph Walden's site - www.keyworks.net. That site appears to have been taken over by someone else and the official download is no longer there. If you want to download it from my site you can click here. Whilst I am not aware of any incompatibilities, it is your responsibility to ensure it works satisfactorily on your operating system.
HTML Studio can be found on the Tools pod of RoboHelp. You can either point HTML Help Studio to the CHM or you can right click the CHM and select Convert to Source.
You will also need to download the HHP builder. Click here.
UPDATE 18 September 2017.
The HHP builder may report that CSH.DLL is missing. If it does, you should find one in C:\Program Files (x86)\Adobe\Adobe RoboHelp 2017\Redist. Copy that into the same folder as HHP Builder.
When you start HHP Builder it will ask you to browse to a folder where the HHP file is to be created and expect you to select the HHP file there. Of course there is no such file yet so if you click Build nothing will happen.
In that dialog you need to add the name of the file you want created in the File Type field, removing the star from that field. The name must be the same as your CHM file name. Then click Build and the HHP will be created and you can open the project in RoboHelp.
No pretty interface. Just enter this into a command prompt window, amended as necessary. You will also need to download the HHP Builder as described in Method 3.
hh.exe -decompile <target_directory> <path>\<filename>.chm
I have not tried this method but if Pete Lees says it works, it works.
Conditional Build Tags will be lost but any text that had a conditional build tag applied will, surprisingly, still be in the topics although not displayed. Use a multi file find and replace tool and search on condition: to find the names of the tags. Then create new tags with exactly the same names as those you find. Right click them and you will see the associated topics listed.
The ability to retrieve this information from a CHM was lost in RoboHelp 6 if you follow Methods 1 - 4 above. However, you should check with your developers as should have a copy of the file that they can give you. Willam van Weelden's scripts do recover this information from a CHM, as well as the other outputs covered above.
Any index words that were contained in the source html files and any Stop words will also be lost.
If you followed the instructions above but have still lost the index and table of contents, all is not lost. That is what I exactly what I found with a file that had been created using AuthorIt. Pete Lees identified the reason and recovering them is quite straightforward.
This section came about thanks to a brilliant suggestion from Pete Lees.
The previous section covers what most people will lose if they have to recover their source files from a CHM output. If you've been through that loss, then you may want to be better protected if the situation arises again.
I have listed below the various things that will be lost and the file that contains that information in a RoboHelp project. Pete's suggestion is that those files are added to baggage so that the procedures above will recover them.
Data |
How to protect yourself |
Stop List |
Add yourproject.stp to the baggage files. |
Map IDs / HHP file |
If you add the .h file(s) to the baggage files that may cause them to show up in the results of a full-text search. You could make copies of the .h files and change the file name extensions to something else (say, .xh), and then add these copies to the project baggage or you could zip up the files and add the .zip file to the baggage. However that is a manual task so it is prone to error. |
KLink and ALink keywords (that is, keywords embedded in the HTML source of topics) |
KLink and ALink keywords are keywords that you have embedded in the HTML source of topics, rather than in the hhk file. The way to protect yourself against losing these keywords is not to use them! It's a trade off between the reason for using these keywords (they are automatically included in any project to which you may copy these topics) and the downside if the source files are lost. That's a choice you have to make. |
If you find the information and tutorials on my site save you time figuring it out for yourself and help improve what you produce, please consider making a small donation.
Date |
Changes to this page |
10 Feb 2022 |
Frameless added and note on trying with a CHM output in the new UI versions, if available. |
16 Jul 2020 |
Topic revised. |
09 Apr 2020 |
Link to RoboWizard site changed to PDF file. HelpEssentials script clarified. |
17 Jun 2019 |
Amended to clarify the solutions are for WebHelp and CHMs only. |
18 Sep 2017 |
Methods 3 and 4 revised. |
20 Feb 2017 |
Topic reviewed. Changed to show new location of Willam van Weelden's scripts. |
14 Sep 2013 |
WebHelp section revised to cover Willam van Weelden's scripts. CSH section revised as not relevant from Rh6 onwards. |
12 Apr 2013 |
Context Senstive Help section revised. |
10 Jun 2011 |
Key Tools download added. See Method 2. |
02 Dec 2007 |
Reference to Convert to Source added to Method 3. |
09 Sep 2006 |
Topic extensively revised to cover how Glossary, Browse Sequences, Conditional Tags, and Map IDs can be recovered. |
12 Feb 2005 |
HHP file added to Map IDs row in table under Loss Prevention. |
04 Oct 2005 |
Method 4 added. What Will Be Lost? revised Loss Prevention added. |
03 Oct 2005 |
New topic. |