BIRT vs Jasper
Over the past couple of weeks I was trying to explore the features supported in BIRT and Jasper. To a beginner, both the tools seem to be difficult. I mean, to get a working sample on them, it takes some time. I went through numerous blogs, tutorials and my firefox bookmarks started becoming unmanageable. So I thought of publishing my experiences so that it will help someone.
The basic principle behind both reporting tools is the same.
1. Design a report using a report designer (Save it in a xml file)
2. Use the report engine to parse the xml file and fill the data in the report
3. Render the report in a format of your choice (pdf, html, csv, etc..)
BIRT seems to be 10-25% slower than Jasper for as long as the caching mechanism is used. Once the caching (virtualizer) is used, BIRT gives better performance (around 50% more) when compared to Jasper.
· Always sorts the records once a group is created. BIRT 2.3 talks about a field for turning off the sort, there is no difference on the turn-around time.
· Using BIRT in a web application requires you to add 30MB of libraries to your deployable (ear or war).
· The pdf rendering mechanism generated huge (really hhhhhuuuuggggeeee) pdf documents.
· Integration with java does not seem to be straightforward. For instance, passing a collection of objects to a BIRT report requires you to browse through numerous blogs and tutorials on birt-exchange and then apply your brain.
· Report rendering in xml format does not yield a good quality xml.
· iReport. The report designer does not seem to be intuitive.
· Localization of database resources does not seem to be possible
· Csv export gives extra blank columns (extra commas) in the output file
· Excel output does not include the graphic images (logos etc..)
· Does not provide a good facility for component based model, object libraries.
· Lacks concept of theme in the report elements except charts.
· Does not have a default style per element (one style for table, another one for textfield etc..). It has a default style for the report.
· Once virtualizer is used to overcome outofmemory error, the performance degrades drastically