I think your criteria can be met with both iText and Apahce FOp but here you have some additional criteria:
- licensing: FOP is based on Apache license and therefore "friendly" also for commercial use
- flexbility: a low level API like iText is more flexible than high level FOP
- Visual tools: there is one designer for FOP here.
- Programing Model: iText is based on programming API while FOP requires a XSLFO template and less programming.
- Proprietary vs standard. Apache FOP is based on a standard and therefore vendor independent, while iText is a proprietaRy API
- Performace: It is said FOP is more computing intensive. it depends of course of what your target PDF files are. It was a never issue for me using FOP.
I would not use PDFBox, it is good for reading and modifying an existing PDF file but createing a file from scratch using PDFBox can be a lot of work.