JFreeReport is a free Java report library. It has the following features: full on-screen print preview; data obtained via Swing's TableModel interface (making it easy to print data directly from your application); XML-based report definitions; output to the screen, printer or various export formats (PDF, HTML, CSV, Excel, plain text); support for servlets (uses the JFreeReport extensions) complete source code included (subject to the GNU Lesser General Public Licence); extensive source code documentation.