From Pieter Roskam:
Xporter is an export library creates export files based on the layout of a freemarker template. It is based on the MVC model. The model is the template and the view is an annotation driven bean which both lives in the application that uses this library. The controller is living inside the library and takes the template and the bean as parameters. The benefit of this approach is that the maintainability of your export functionality increases without loosing any functionality. Features include all the normal exports should be formatted in the template, PDF is done through a generator, and by downloading the sources you can create your own generators.