Last week, Java Revisited published an article entitled Open source Java Libraries to Create PDF documents - iText vs Apache FOP by Javin Paul.
These are some of the highlights as far as iText is concerned:
One of the big advantages of using iText is documentation, in fact there is a book about it (iText in Action), which contains lot of examples using iText for generating PDF files in Java.
The good thing about iText is that it's available in both Java and C#.
It's the solution of all your PDF needs in Java.
iText is by far the most widely used and feature rich library.
We've also found the following comment on this article:
"There are a lot of pdf libraries out there like pdfsharp. I have used almost all of them and iTextSharp is unbeatable. It is also one of the oldest and has huge user added codes and hence has matured over the years. Would recommend iTextSharp any day."
The article states: The only thing which can stop someone from using iText is it's AGPL (Affero General Public License) licensing model. There's a reference to using the older version, but it's unclear if the latest outcome in the Oracle vs. Google case will have an impact on people using the old iText API. In any case: we've been recommending to upgrade to iText 5+ for a long time.
According to the author of the article, Apache FOP is next best open source PDF library for Java developers. There is good documentation and tutorials on using FOP available on Apache's site. The latest version of Apache FOP is FOP 1.1.
The downside of Apache FOP is its limited popularity. This is also made clear by the result of a Google Trends search for iText, iTextSharp and Apache FOP: