From Documentation



The JasperReport component is based on a 3rd party JasperReports Library, a report generator (e.g. XML generator, PDF generator etc.). This component is used to generate a Jasper report into an inline frame.

Including Dependency

Since 9.6.0 ZK doesn't include jasperreports by default. If you need to use this component, you have to include the dependency manually like:


3rd Party Vulnerability Notice

Jasperreport uses another external library called itext 2, and there are some vulnerabilities reported on org.bouncycastle:bcprov-jdk15on, which is a dependency of itext 2. If you are concerned, you can exclude that dependency, it does not affect the use or the PDF exporting of this component. Alternatively, Jasperreport does provide a separate PDF Exporter with a newer version of itext which does not contain the affected bouncycastle lib. For more information, please check JasperReports PDF Exporter Lib Seven.


ZKComRef Jasperreport Examples.PNG

	<jasperreport id="report" height="360px" />
		import org.zkoss.zkdemo.userguide.CustomDataSource;
			//Preparing parameters
			Map parameters = new HashMap();
			parameters.put("ReportTitle", "Address Report");
			parameters.put("DataFile", "CustomDataSource from java");
			report.setDatasource(new CustomDataSource());

Provide Export Parameters

The Jasperreport component API provides a way to specify export parameters. To do so, you should put a Map containing export parameters within the parameters Map, with key "exportParameter". For example:

	Map parameters = new HashMap();
	Map exportParams = new HashMap();
	exportParams.put("net.sf.jasperreports.export.mypropertyname", true);
	parameters.put("exportParameter", exportParams);
	report.setParameters(parameters); // report is the Jasperreport component

One-Page-Per-Sheet Property

In Jasperreport engine, this property is default to be false. However, the default behavior is turned on in the Jasperreport component, in which case when the report is exported as Excel format there will be one sheet generated for each page. To override this setting, set it as an export parameter as the following:

	Map parameters = new HashMap();
	Map exportParams = new HashMap();
	exportParams.put(JRXlsAbstractExporterParameter.PROPERTY_ONE_PAGE_PER_SHEET.toString(), false);
	parameters.put("exportParameter", exportParams);
	report.setParameters(parameters); // report is the Jasperreport component


Since 8.6.1

You can specify the export file name for the download if any, the full file name will be exportName + "." + format.

Note: exportName can not be empty or null.

Default: "report"

<jasperreport exportName="test"/>

Supported Events

Event Type
None None

Supported Children


Supported Type


Java Code

//Jasperreport report;
report.setType("pdf"); // report is the Jasperreport component

Zul Code

<jasperreport id="report" type="pdf" />

Type List

Type Version
xlsx Since 5.0.8
docx Since 5.0.8
graphic2d Since 5.0.8
ods Since 5.0.8
pptx Since 5.0.8
txt Since 5.0.8
xhtml Since 5.0.8

Supported JasperReport Version

ZK JasperReport Transitive Dependency
9.6.0 6.14.0 optional (net.sf.jasperreports:jasperreports needs to be added manually on demand)
9.5.0 6.14.0 added by default
9.0.0 6.6.0 added by default
8.6.0 6.5.1 added by default
7.0.0 4.5.1 added by default
6.0.0 4.0.1 added by default

Use Cases

Version Description
5.0.2 How to use Dynamic Jasper Reports
6/5.0.8 Create a Report with ZK using iReport and JasperReports



Jasperreport depends on the fonts you use in the report. For more information, please refer to ZK Installation Guide: Linux.

Version History

Version Date Content
5.0.1 March 2010 Support Hibernate and SQL connections
5.0.8 Upgrade JaserReport version to 4.0 and support new JasperReport exporter

Last Update : 2023/01/13

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.