This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
The major difference is the IBM portlet API lets you define an abstract portlet application and using this via concrete portlet applications. In JSR 168 API, there is no concept for concrete portlet application. But JSR 168 API is independent across platforms.
You can choose any of the API as per your requirements.
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