Simple problem really, ... what would be the best way to print some chm files so it looks like something on paper?

I have some manuals which I'd like to have also in paper form, and printing chm page by page is a pain.

So, all ideas welcomed.

  • Not as simple as you might think. I have yet to find a 'silver bullet' that makes well-formatted, good looking documents. – DaveParillo Dec 7 '09 at 14:56
  • Yeah, tell me about it. I'm looking at the solutions below, and although they are workable, they still don't offer that. I mean, they are all workarounds, one way or another. – Rook Dec 8 '09 at 13:30

if you're using Windows:

1. extract the HTML files from the CHM container from the command prompt with HH.EXE


HH.EXE -decompile C:\Temp\decompile-folder C:\Temp\yourCHM.chm

2. merge the HTML files into a single file (e.g. with SoftSnow Merger)

3. print the HTML file.

or, if you don't mind spending $19.95, you can use ABC Amber CHM Converter:

reads CHM files and converts them to PDF (doesn't require Adobe Acrobat to be installed), HTML (single file and web-site), RTF (MS Word doesn't need to be installed), HLP, TXT (ANSI and Unicode), DOC (MS Word), DBF, MDB (MS Access), CSV, XML, XLS (MS Excel), Clipboard


alternatively, you could try converting the chm to a pdf? There are quite a lot of free programs to help you do this.

  • 1
    I would decompile the chm as Molly described, then convert the html to PDF. – DaveParillo Dec 7 '09 at 14:55

In case you want to print a single topic from chm document. Right click on topic, a popup will appear, in that select option "Print the selected heading and all subtopics.".

Hope this helps you.


your comment

How to convert chm files to one xhtml file

After looking at above discussion, may be converting chm in single html doc and then printing it be a solution. But it's time consuming.

  • Actually, I wish to print some 7 documents whole. – Rook Dec 7 '09 at 12:14

What about using Calibre? You can convert to multiple formats & print it there.


without external tools:

@echo off

if "%~1" equ "" (
    echo usage:
    echo   %~n0 file.chm
    exit /b 1

if "%~x1" neq ".chm" (
    echo you need a file with .chm etension
    exit /b 2

start ""  /b /wait hh -decompile ~~ %~sf1 
::w32tm /stripchart /computer:localhost /period:1 /dataonly /samples:8  >nul 2>&1

for /r "~~" %%h in (*.htm) do (
  rundll32.exe "%systemroot%\system32\mshtml.dll",PrintHTML "%%~fh"

rd "~~" /s /q >nul 2>nul

The only working solution for me was:

  1. Open the chm file with default windows application (path: C:\Windows\hh.exe)

  2. select the header in the table of contents. Right-click and Print. Select Print the selected heading and all subtopics.

  3. Without closing the printing dialog, go to the following path and copy the latest generated file (C:\Users\ [Username] \AppData\Local\Temp). I am using Win 10 so maybe the path on the other versions is different.

  4. Copy the content of HTML in your favorite editor such as MS Word document

  5. Do step 2 to 4 until you have done.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.