Finding libraries for generating PDFs in Java isn’t that difficult. There are good frameworks out there. Ease of use for the programmers varies a lot though. At work we have been using the Big Faceless Java PDF Library. It’s payware, but the price is decent. It seems though that there might be a different open source contender available (Flying Saucer). Check out a comprehensive article on it here.