Harsh J

Memoirs of a QWERTY Keyboard

Convert CHM files to PDF in Linux

with 20 comments

I’ve tried a lot of ways to do this thing in Linux (Ubuntu) and finally I found the easiest one to use.

Called simply as ‘chm2pdf‘, this is a small script written in Python and it uses a few dependencies you might have to install first.

Now to install it, simply follow this guide:

1. Install dependencies by running in the Terminal:

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

2. Download chm2pdf by clicking this.

3. Now extract the downloaded file.

4. Open your Terminal and browse to the folder you extracted and run:

sudo python setup.py install

5. You’re done!

Now to use it is very simple:

In Terminal, type:
chm2pdf -book filename.chm
(Where filename is obviously your required file to be converted.)

And surprise surprise, a PDF copy will be waiting for you just next to your CHM file!

Written by Harsh

December 6th, 2007 at 12:08 pm

Posted in Linux, Software

Tagged with , , , , , ,

20 Responses to 'Convert CHM files to PDF in Linux'

Subscribe to comments with RSS or TrackBack to 'Convert CHM files to PDF in Linux'.

  1. I tried chm2pdf, but it simply refused to work. Threw out an extended list of options …but no output at all.
    Did this really work for you?

    Orthodoc

    7 Dec 07 at 10:27 am

  2. Its worked for 5 out of 6 CHM files I had. The PDFs came out quite nice as well.

    You can perhaps try this: http://www.karakas-online.de/forum/viewtopic.php?t=10275

    Its a slightly more advanced script than the original.

    Also, what error specifically? The vanilla one has no option list actually, or does it?

    Harsh

    7 Dec 07 at 10:31 am

  3. you might want to include the fact that you need to either use the –book or –webpage options…..just successfully converted a chm file for the first time wiht this program and I needed to use the –webpage option

    chronniff

    8 Dec 07 at 1:41 am

  4. chronniff - Thanks for the correction. I realized I was using version 0.7! Now got the 0.9 one (I thought it was 0.9 itself, before).

    Harsh

    8 Dec 07 at 8:19 am

  5. [...] Convert CHM files to PDF in Linux sudo apt-get install htmldoc libchm-bin python-chm (tags: howto linux tools chm pdf ubuntu tips htmldoc libchm python apt-get) [...]

  6. just to be clear, the options you pass to chm2pdf need to be preceded by “–” (i.e. two dashes). The code snippet in the blog post uses only one dash, hence the list of options reported above. anyhow, thanks for the tips.

    bviking

    5 Mar 08 at 4:42 pm

  7. Happened it:

    Removing any previous temporary files
    sh: Syntax error: “(” unexpected
    sh: Syntax error: “(” unexpected
    sh: Syntax error: “(” unexpected
    sh: Syntax error: “(” unexpected
    Traceback (most recent call last):
    File “/usr/bin/chm2pdf”, line 887, in
    main(sys.argv)
    File “/usr/bin/chm2pdf”, line 883, in main
    convert_to_pdf(cfile, filename, outputfilename, options)
    File “/usr/bin/chm2pdf”, line 180, in convert_to_pdf
    objective_urls=get_objective_urls_list(filename)
    File “/usr/bin/chm2pdf”, line 98, in get_objective_urls_list
    flist=open(CHM2PDF_WORK_DIR+’/urlslist.txt’,'r’)
    IOError: [Errno 2] No such file or directory: ‘/tmp/chm2pdf/work/McGraw-Hill - SCJP Sun Certified Programmer for Java 5 Study Guide (Exam 310-055) - 2006/urlslist.txt’

    Marcus

    11 Mar 08 at 3:33 am

  8. there is a typo. should be –book

    kindofabuzz

    26 Mar 08 at 7:02 am

  9. Markus
    A trick can be to rename the source chm to something short, seems that chm2pdf does not handle all types of symbols in filename very well.

    ie
    McGraw-Hill - SCJP Sun Certified Programmer for Java 5 Study Guide (Exam 310-055) - 2006.chm

    to
    mcGraw.chm

    Frode

    11 Apr 08 at 1:46 am

  10. Thank you so much. You saved me hours of work. Kyle

    Kyle Janz

    29 May 08 at 10:56 pm

  11. I’m having a problem converting some O’Reily CHM files .

    I’m using CHM2PDF 0.9.1 and getting this. I’ve tried it with several differnt CHM files. Any suggestions ? This is on a Fedora 8 box with 1GB of RAM.

    Traceback (most recent call last):
    File “/usr/bin/chm2pdf”, line 1111, in
    main(sys.argv)
    File “/usr/bin/chm2pdf”, line 1107, in main
    convert_to_pdf(cfile, filename, outputfilename, options)
    File “/usr/bin/chm2pdf”, line 326, in convert_to_pdf
    objective_urls=get_objective_urls_list(filename)
    File “/usr/bin/chm2pdf”, line 119, in get_objective_urls_list
    urls_list.append(spline[5])
    IndexError: list index out of range

    Sir Geek

    11 Jul 08 at 10:11 pm

  12. Thank you very much :) :D

    Layla & Zahra

    13 Jul 08 at 11:11 am

  13. @Marcus,@SirGeek, the problem its the long name of the file. Rename this to short-name.chm and try it again. it works for me.

    There is another error, the parameter it’s not single ‘-’ it’s double.

    its ‘–book’ not ‘-book’, see chm2pdf -h for more options.

    Mort

    2 Oct 08 at 9:28 pm

  14. High All, I just tried this again, and now I am getting a different error

    ERR002: Error: no pages generated! (did you remember to use webpage mode?

    The command I used was
    chm2pdf –book SHORTBOOK.chm

    Any ideas ?

    sirgeek

    5 Oct 08 at 11:26 am

  15. Hi to all first, second i convert tomorrow 1 .chm to .pdf with success so the correct command is:

    chm2pdf –webpage nameofbook.chm

    TomPapas

    11 Oct 08 at 2:53 am

  16. ok we have problem with the post program in this site. at webpage command need to put 2 - not only 1 like the linux help with 2 -. try it

    TomPapas

    11 Oct 08 at 2:55 am

  17. I think TomPapas is trying to say this: as of the chm2pdf-0.9.1, you are now required to use two hyphens in the syntax. ex:

    chm2pdf –book mychmdoc.chm
    chm2pdf –webpage mychmdoc.chm

    instead of the single:

    chm2pdf -book mychmdoc.chm
    which return the extended options list due to the syntax error.

    uxp

    21 Oct 08 at 1:07 am

  18. O.o Wordpress really has some interesting format issues with comments.

    uxp

    21 Oct 08 at 7:31 am

  19. OK. I have found a solution. I did it as –webpage instead of –book and it created the PDF file properly.

    At some point, the long filenames should be handled/escaped but that is a minor inconvenience to me.

    Thanks !

    Sir Geek

    25 Oct 08 at 12:44 am

  20. install this package and try

    1> sudo apt-get install chm2pdf
    then
    2> chm2pdf else read man chm2pdf

    Thanks,
    Amaresh

    Amaresh Das

    3 Nov 08 at 4:55 pm

Leave a Reply