Actually, this can be done. The problem is that it involves exploiting security vulnerabilities, which are subject to radical change from browser to browser, version to version. It also raises some legal concerns.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com