Jan 192010

How to convert CHM to PDF in Linux

1. Install dependencies by running the following command in the terminal:

sudo apt-get install htmldoc libchm-bin python-chm

2. Next, download chm2pdf by clicking here or using wget

wget http://chm2pdf.googlecode.com/files/chm2pdf-0.9.1.tar.gz

3. Now extract the downloaded file.

tar -xzvf chm2pdf-0.9.1.tar.gz

4. Browse to the folder you extracted and run:

cd pdf-0.9.1
sudo python setup.py install

Now on the command line, type:

chm2pdf [options] input_filename [output_filename]

chm2pdf examples

Unstructured HTML files inside the CHM file, use of –webpage option – produces my-file.pdf:

chm2pdf --webpage my-file.chm

Structured HTML files:

chm2pdf --book my-file.chm

Structured HTML files, produce a table of contents page automatically (–title option):

chm2pdf --book --title my-file.chm

Structured HTML files, produce a table of contents page automatically (–title option), add a “titlepage” as found in the toc.html file inside the CHM:

chm2pdf --book --title --titlefile toc.html my-file.chm

If the file “toc.html” is not found, a warning will be issued and the option will be ignored – just browse the (very verbose) output of chm2pdf to see that warning if you suspect you mispelled the titlefile name.

Like above, now with an explicitly set page size and maximum compression level for the resulting PDF:

chm2pdf --book --title --titlefile toc.html --size 177.8×233.3mm --compression 9 my-file.chm

Like above, but name the PDF “your-file.pdf”:

chm2pdf --book --title --titlefile toc.html --size 177.8×233.3mm --compression 9 my-file.chm your-file.pdf

A very interesting option (and one that is not htmldoc-specific, but is pure chm2pdf-specific) is the –extract-only option:

chm2pdf --extract-only my-file.chm

will extract the contents of my-file.chm (all the HTML and other, “special”, files inside the CHM) into the directory CHM2PDF_TEMP_ORIG_DIR/my-file. Thus, if CHM2PDF_TEMP_ORIG_DIR has its default value “/tmp/chm2pdf/orig”, chm2pdf will extract the file into /tmp/chm2pdf/orig/my-file and stop.

You can then examine the extracted files at your pace. They will be overwritten next time you call chm2pdf with the same file(name).

If you want to know more available options use the following command from your terminal

chm2pdf --help

 Posted by at 10:21 am