If you don't want to pay, then do it with FOP :http://xml.apache.org/fop/ It's FREE. 1.Put all your data in a XML file with your tags. 2.Create a FO file with your XSL tag. (You can use XMLSPY , it's easy to use) 3. send both(XSL+XML) in a JAVA class to FopServlet, you will get a PDF file generated.
If you wish have more information. Let me know(firstname.lastname@example.org) send me an email i will send the code that i did for me.