As others have mentioned, there are MANY tools available that can do this, from open source & free to commercial. However, the first question you need to answer is WHY are you doing this - what are you looking to do with the HTML? Do you simply want the (styled) content? Do you need a "pixel perfect" rendering or would you rather have something that reflows? Do you plan to process the output in a secondary application or is it strictly for viewing. Each of those answers will help you select what tool(s) are accepted for the purpose.