If you want to generate PDF documents on the fly, e.g. in web applications, this is the way to go. Make your script generate an HTML page and render it with HTMLDOC.
HTMLDOC works reasonably well and supports images, font colors, tables, etc.
And yes, it _is_ free software. You have to look at www.htmldoc.org to download the source, not at ESP's website.
it's fully written in perl. this should be included in the description.