WindwardReports.jar Utilities

The WindwardReports.jar file that is part of the Java Report Engine installation and includes some useful utilities.

CheckJdbc checks what JDBC parameters to use when connecting to a database. Parameters are:

  • jdbc_classpath - the classpath for the JDBC driver. Examples are:
    • SQL Server:
    • Oracle: oracle.jdbc.driver.OracleDriver
  • database_name - the connection string used to connect to a specific database. Examples are:
    • SQL Server:
    • Oracle: jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=database_name
  • username [optional] - The username used when connecting to the database
  • password [optional] - The password used when connecting to the database


JoinReports.joinPdf() combines output from multiple Report Templates into a single PDF document.

This operates differently from importing multiple templates into a master DOCX or XLSX template. 

When you use the Import Tag, the imported template is converted into an element in the master template. For example, importing an XLSX file into a DOCX file converts the worksheets into Word tables. A Word table does not have the concept of hidden rows/columns, etc. and so that meta information is lost.

JoinReports keeps each document in its native template format. Each is then output to PDF and the PDF pages are then joined together in a single PDF document. This way you can combine DOCX and XLSX templates and both render their PDF pages as they would directly.

The API is passed an array of ProcessReport objects (and an OutputStream for the generated PDF report). If you are combining a number of static documents this is overkill and requires a couple of additional lines of code. However, if you want to build up distinct reports, applying data to templates, then combine those generated reports, this supports that use case.

ListServers (no parameters) will list out all Windward servers running on the network listing their version number, IP address, and server name (repeating the IP address if it has no name).

OutTagFormat is a quick way to find what format a <wr:out …/> tag will generate for a given string, type and pattern attributes. It also displays the output generated both by Windward Reports and the underlying Java classes. Both are displayed because some Java implementations differ in their formatted output, and this is something Windward Reports cannot control.


Generate output from a Report Template. This is a sample program that generates output from the command line. An example is:

>java net.windward.xmlreport.RunReport InternetMarketingReport.docx testreport.pdf -xml:INTMARKETING InternetMarketingData.xml

usage: RunReport template_file output_file [-basedir path] [-xml xml_file | -sql connection_string | -oracle connection_string | -ole oledb_connection_string] [licenseKey=value | ...]

       The template file can be a docx, pptx, or xlsx file.

       The output file extension determines the report type created:

           output.csv - SpreadSheet CSV file

           output.docx - Word 2007+ DOCX file

           output.htm - HTML file with no CSS

           output.html - HTML file with CSS

           output.pdf - Acrobat PDF file

           output.pptx - PowerPoint 2007+ PPTX file

           output.prn - Printer where "output" is the printer name

           output.rtf - Rich Text Format file

           output.txt - Ascii text file

           output.xhtml - XHTML file with CSS

           output.xlsx - Excel 2007+ XLSX file

           output.xlsm - Excel 2007+ macro enabled XLSM file

       -basedir c:\test - sets the datasource base directory to the specified folder (c:\test in this example)

       -data filename.xml - will write data.xml to this filename.

       -embed - will embed data.xml in the generated report. DOCX, PDF, PPTX, & XLSX only.

       -launch - will launch the report when complete.

       -performance:123 - will run the report 123 times.

            output file is used for directory and extension for reports

       -cache - will cache template & datasources, will write output to memory stream. Only used with -performance

       -threads:4 - will create 4 threads when running -performance.

       -verify:N - turn on the error handling and verify feature where N is a number: 0 (none) , 1 (track errors), 2 (verify), 3 (all).  The list of issues is printed to the standard error.

       -version=9 - sets the template to the passed version (9 in this example)

       encoding=UTF-8 (or other) - set BEFORE datasource to specify an encoding

       locale=en_US - set the locale passed to the engine.

       pod=pod_filename - set a POD file (datasets)

       username=user password=pass - set BEFORE datasource for database connections

       The datasource is identified with a pair of parameters

           -cache connection_string - ex: //SERVER:PORT/DbName

           -db2 connection_string - ex: //localhost:50000/SAMPLE

           -excel connection_string - ex: Driver={Microsoft Excel Driver (*.xls)};DBQ=c:\testData.xls

           -oracle connection_string - ex: @//localhost:1521/ORCL

           -mysql connection_string - ex: //localhost/sakila

           -sql connection_string - ex: //localhost:1433;DatabaseName=Northwind

           -postgresql connection_string - ex: //localhost/pagila

           -json filename - passes a JSON file as the datasource

                filename can be a url/filename or a connection string

           -odata url - passes a url as the datasource accessing it using the OData protocol

           -sforce - password should be password+securitytoken

           -xml filename - passes an xml file as the datasource

                -xml xmlFilename=schema:schemaFilename - passes an xml file and a schema file as the datasource

                filename can be a filename or a connection string

           -dom4j filename - passes an xml file as the datasource. Uses XPath 1.0 (dom4J)

                -dom4j xmlFilename=schema:schemaFilename - passes an xml file and a schema file as the datasource

                filename can be a filename or a connection string

           -[xml|sql|...]:name names this datasource with name

                     must come BEFORE each -xml, -sql, ... part

       You can have 0-N key=value pairs that are passed to the datasource Map property

            If the value starts with I', F', or D' it parses it as an integer, float, or date(yyyy-MM-ddThh:mm:ss)

                example  date="D'1996-08-29"

            If the value is * it will set a filter of all

            If the value is \"text,text,...\" it will set a filter of all

ShowFonts will display all fonts Java is aware of on your system. Run this and if it throws an exception, then there is a bug in the Java font layout code and there is no way Windward can do a work around. The source code to this class is in WindwardReports.jar.

This class makes no calls to Windward. If this program cannot run, then it is a Java bug, not a Windward bug.


net.windward.util.UUEncode will uuencode a file. This is useful for uuencoding bitmap files that will be placed directly in an XML file. To create a uuencoded file, run the program as “java net.windward.util.UUEncode image.jpg image.uue”

  • image.jpg - the binary file to uuencode.

  • image.uue - the created file that is a uuencode of the binary file.  

XMLPerf will read in an XML file and evaluate an XPath search. It lists the time and memory footprint both before and after to give a measure of how fast dom4j can handle files of a given size and complexity.


Add your comment

E-Mail me when someone replies to this comment

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.