Skip to Content
Author's profile photo Former Member

Part-I: Print Web Dynpro Java applications using JasperReports

Printing Web Dynpro Java (WDJ) applications is one of the missing functionalities that everyone wants to have in their application. I have used third party open source reporting tool, JasperReports, to solve this issue. I would like to share how we have achieved this so other can get benefits from it. It also provides an alternative to read/print only Adobe Interactive forms.


Complexity of the solution doesn’t allow me to abridge the discussion, especially for those who haven’t worked on Jasper Reports before. Based on the scope, I have break down this topic into Three parts:


Part I: In Part-I we will be discussing; what JasperReports is and how to use it?


Part-II: Print Web Dynpro Java applications using JasperReports

Part-III: Print Web Dynpro Java applications using JasperReports

Part-III: Print Web Dynpro Java applications using JasperReports


Now let’s start our discussion on JasperReports.



JasperReports was started by Teodor Danciu, in 2001, to provide reporting capabilities to the project he was working on. Later that project got canceled; but he continued working on JasperReports in his spare time. Since its first release back in November 2001, JasperReports has become immensely popular, and is currently one of the most popular Java reporting tools available.


The JasperReports library is a very powerful and flexible report-generating tool that delivers rich content to the screen, printer, or file in PDF, HTML, RTF, XLS, ODT, CSV, or XML format. The library is written entirely in Java and can be used in a variety of Java-enabled applications, including J2EE or web applications, to generate dynamic content. Its main purpose is to help to create page-oriented, ready-to-print documents in a simple and flexible manner.


How Jasper Report works:

JasperReports, like most reporting applications, uses report templates structured in multiple sections, such as title, summary, detail, and page and group headers and footers. Each section has a free-form layout in which you can place various types of elements, including images, static and dynamic text fields, lines, and rectangles. The reporting engine uses this template to organize data in an XML file (JRXML) or to create it programmatically using the library’s API. This data may come from various data sources, including relational databases, collections, or arrays of Java objects or XML data. Users can plug the reporting library into custom-made data sources by implementing a simple interface. A typical workflow while creating reports with JasperReports:


JasperReports Process Flow

What you need:

JasperReports can be downloaded from  As Jasper Reports are java based so you need JDK version as required by the version of Jasper Reports. Other Dependencies are listed below:

































Download URL






Commons Logging





Used for sending output to a log.



Commons Collections





Used to manage collections of data.



Commons BeanUtils





Used for JavaBeans introspection.



Commons Digester





Used for XML parsing.








Only required when the report contains charts.








Only required when exporting reports to PDF or RTF.



Jakarta   POI





Only required when exporting reports to Excel format.








Only required when exporting reports to Excel format.



iReport is another open source project that provides graphical editor to design jasper reports. iReport can be downloaded from:



In this blog we reviewed what are jasper reports and how it works. In next tutorial of this series we will be developing some Java code that generate reports using Jasper Reports.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Emmanuel Fuentes
      Emmanuel Fuentes
      Hi Ali! I'm very interested in your post. Do you have any update? Regards.
      Author's profile photo Former Member
      Former Member
      Where are the other parts of your blog? Do you have any updates?