02 - The different libraries

Unknown macro: {scrollbar}


In this section you will discover the libraries JFreeReport is based on many free and open source libraries for its core and for extending its functionnalities. JFree, from JFreeChart and JFreeReport, also released some opensource libraries out of their projets : JCommon, Pixie, LibFont and LibLoader.

TODO

continue me


  • JCommon [~302KB plus ~180KB]
    JCommon is a collection of useful classes used by JFreeChart, JFreeReport and other projects. This library contains common classes which provide some global utility functionality for both GUI and non-GUI applications.
    You must include in any case its library, jcommon-1.0.6.jar, because it is part of JFreeReport core. If you planned to use the XML report definitions or XML export facilities you also have to include jcommon-xml-1.0.6.jar.
  • Pixie [~170KB]
    Pixie is a free Java library for loading WMF images.
    You must include its library, pixie-0.8.6.jar, if you planned to use Microsoft WMF Image files.
  • LibFonts [~130KB]
    LibFonts is a font reading library, which grants easy to use access to font raw data. It creates a generic wrapper around the various font systems (AWT, TrueType, Type1, iText) to allow high-performance access to the glyph and font-metrics information.
    You must include in any case its library, libfonts-0.2.1.jar, because it is part of JFreeReport core.
  • LibLoader [~70KB]
    LibLoader is a Java resource loading and caching framework.
    You must in any case include its library, libloader-0.1.5.jar, because it is part of JFreeReport core.
  • LibFormula [~123KB]
    LibFormula provides sheet formula support to simplify condition and computation writting within XML report definition.
    You must in any case include its library, libformula-0.1.2.jar, because it is part of JFreeReport core.
  • GnuJAXP [~230KB]
    GNU JAXP is a free implementation of the standard XML processing APIs for Java.
    You have to use this library for old JDK, prior to 1.4, to allow the XML parsing and writing. Once it is included in your path it will replace your JDK XML implementations and may produce problems in some existing project.
    Do not include it if you do not need it, it will save you precious time, else include its library gnujaxp.jar.
  • iText [~1250KB]
    iText is a library that allows you to generate PDF files on the fly.
    You must include its library, itext-1.4.jar, if you planned to use Adobe PDF export facility. You will also need the following modules :
    • org.jfree.report.modules.output.pageable.pdf.PDFPageableModule, the PDF output support module: jfreereport-output-pageable-pdf-<version>.jar [~23KB].
    • org.jfree.report.modules.output.pageable.base.PageableBaseModule, the pageable output support module: jfreereport-output-pageable-base-<version>.jar [~48KB].
    • org.jfree.report.modules.output.support.itext.BaseFontModule, the itext font processing module: jfreereport-output-support-itext-<version>.jar [~24KB].
    • org.jfree.report.modules.output.support.pagelayout.PageLayoutModule, the pagelayout module: jfreereport-output-support-pagelayout-<version>.jar [~8KB].
    • org.jfree.report.modules.misc.configstore.base.ConfigStoreBaseModule, the configuration storage module: jfreereport-misc-configstore-base-<version>.jar [~5KB].
    • org.jfree.report.JFreeReportCoreModule, the core module needed by every other module: jfreereport-core-<version>.jar [~580KB].
  • POI [~840KB]
    POI project consists of APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format using pure Java.
    You must include its library, poi-3.0-alpha1-20050704.jar, if you planned to use the Microsoft Excel and Microsoft Word export facilities. You will also need the following modules:
  •  

    TODO

    continue me


  • Bean Scripting Framework[~170KB]
    Bean Scripting Framework is a set of Java classes which provides scripting language support within Java applications, and access to Java objects and methods from scripting languages. The scipting languages supported are Javascript, Python, Groovy, Ruby, ObjectScript, Java, NetRexx, ...
    You must include it library, bsf-2.3.0.jar, if you planned to use scripting expressions directly written in the XML report definitions or from script files. You will also need the following modules:

    TODO

    continue me


  • BeanShell [~240KB]
    BeanShell is a small embeddable Java source interpreter with object scripting language features, written in Java.
    You must include its library, bsh-1.3.0.jar, if you planned to use Java expressions directly written in the XML report definitions. You will also need the following modules:

TODO

continue me


Each BeanShell expression have to extend the class org.jfree.report.modules.misc.beanshell.BSHExpression or ... and redefine the getObject method:

<expression name="rawDate" class="org.jfree.report.modules.misc.beanshell.BSHExpression">
  <properties>
    <property name="expression">
      // This declaration is important. The script-method getValue is called by the
      // BSHExpression to evaluate the expression. We override the default implementation
      // and perform own calculations here ...
      Object getValue()
      {
        java.util.Date date = dataRow.get("group-date");
        return new Long (date.getTime());
      }
    </property>
  </properties>
</expression>



As you could see in the above example the object nammed dataRow as been implicitly declared to reference the current row of data. It allows you to access all the other data by column name or column number whithin the current raw of data.
That is all the informations you will get about how to define BeanShell expressions in this article. It will certainly be part of a further one.

From the previous list we can extract the following informations:
The minimum size of JFreeReport is ...
The full featured size of JFreeReport is ...