Introduction to JFreeReport. Introduction to JFreeReport

Introduction to JFreeReport.1. What is JFreeReport

JFreeReport is a free java report library aimed at developers, who seek an easy to integrate reporting and printing solution.

The JFreeReport is basicly a data oriented template engine. The report definition describes, how the given data should be processed, layouted and finally be printed. Report definitions can either be written in XML or can be composed using the Java API. With the help of JFreeReport, developers can concentrate on the data instead of having to worry about the printing and document creation details. All output targets fully support Unicode, so JFreeReport is also well suited for printing internationalized, i.e. japanese or chinese content.

A single carefully crafted report definition allows to print or export the same data into PDF documents, Excel workbooks, HTML pages, plain text-, RTF or CSV files.

The report configuration interface allows a very high level of customization and easy deployment. Almost every aspect of JFreeReport is configurable. The hierachical structure of the configuration allows the administrator of the deployment system to define a global system specific configuration, while the developer is able to provide usefull defaults up to the user level on a per report basis.

Using JFreeReport, the developer has almost full control over the reporting process. The functions and expressions API allows fine grained control over the report generation process. Elements can be formated and all data can be generated on the fly during the report processing, if needed. JFreeReport does not generate any temporary files while retaining a low memory footprint.

Introduction to JFreeReport.2. What is it not

JFreeReport is no stand-alone utility. JFreeReport is a component library and provides no code to read or prepare data and does not generate report definitions on the fly. Report definitions must be created before JFreeReport can be used to generate reports. The data given for reporting must fit the report definition and it should be sorted according to the group definitions in the report description.

JFreeReport is still in its active development phase, therefore not all features have been implemented yet.

Introduction to JFreeReport.3. Technical Requirements

JFreeReport uses the Java2D API and therefore needs at least JDK 1.2.2. It will not work with older versions of the Java Development Kit. Some optional modules provide support for features found in newer versions of Java, for instance the logging framework or extended printing of JDK 1.4.

At the time of this writing, JFreeReport cannot be used with one of the opensource implementations of the JDK. The 'ClassPath' library does not fully implement the AWT and Graphics2D support needed for running JFreeReport. Therefore it will not run with Kaffe, GCJ or any other JVM using the ClassPath library.

Depending on the contents and complexity of the generated reports, JFreeReport might need more than the default 64MB heap size. The library itself is 100% pure Java and does not rely on native libraries. JFreeReport is able to run in headless mode on servers.