Based on my experience, I would suggest you to consider following Java PDF Libraries for creating PDF reports,
- DynamicReports
- Apache PDF Box
- iText PDF
- PDF Clown
For your requirement, I think DynamicReports would be the right choice. I have been using Dynamic Reports from last 3 years for all my PDF Reporting requirements. With a very less amount of code, you can easily create a truly dynamic PDF. Dynamicreports is a wrapper around Jasper Report. So, it internally makes use of Jasper report.