I also recommend that when feeling the urge to ask "what is a...?" that your first response should be to use a suitable search engine. Chances are good that someone has already published a very good definition of the term in question. You will save yourself the time of waiting for a response, and the time of others from repeating information that already exists elsewhere.
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