I think this is a common mistake many people make. They ask a question along the lines of "How do I use X to do Y?".
The better question would be "What is the correct way to do Y?". By already deciding what technology to use before you think about what the problem you are trying to solve is, you box yourself into a corner.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
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