Class JasperReportsUtils


  • public abstract class JasperReportsUtils
    extends Object
    Utility methods for working with JasperReports. Provides a set of convenience methods for generating reports in a CSV, HTML, PDF and XLS formats.

    This class is compatible with classic JasperReports releases back until 2.x. As a consequence, it keeps using the JRExporter API which has been deprecated in early 2014.

    Since:
    1.1.3
    Author:
    Rob Harrop, Juergen Hoeller
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethodDescription
      static net.sf.jasperreports.engine.JRDataSourceconvertReportData​(Object value)
      Convert the given report data value to a JRDataSource.
      static voidrender​(net.sf.jasperreports.engine.JRExporter exporter, net.sf.jasperreports.engine.JasperPrint print, OutputStream outputStream)
      Render the supplied JasperPrint instance using the supplied JRAbstractExporter instance and write the results to the supplied OutputStream.
      static voidrender​(net.sf.jasperreports.engine.JRExporter exporter, net.sf.jasperreports.engine.JasperPrint print, Writer writer)
      Render the supplied JasperPrint instance using the supplied JRAbstractExporter instance and write the results to the supplied Writer.
      static voidrenderAsCsv​(net.sf.jasperreports.engine.JasperReport report, Map<String,​Object> parameters, Object reportData, Writer writer)
      Render a report in CSV format using the supplied report data.
      static voidrenderAsCsv​(net.sf.jasperreports.engine.JasperReport report, Map<String,​Object> parameters, Object reportData, Writer writer, Map<net.sf.jasperreports.engine.JRExporterParameter,​Object> exporterParameters)
      Render a report in CSV format using the supplied report data.
      static voidrenderAsHtml​(net.sf.jasperreports.engine.JasperReport report, Map<String,​Object> parameters, Object reportData, Writer writer)
      Render a report in HTML format using the supplied report data.
      static voidrenderAsHtml​(net.sf.jasperreports.engine.JasperReport report, Map<String,​Object> parameters, Object reportData, Writer writer, Map<net.sf.jasperreports.engine.JRExporterParameter,​Object> exporterParameters)
      Render a report in HTML format using the supplied report data.
      static voidrenderAsPdf​(net.sf.jasperreports.engine.JasperReport report, Map<String,​Object> parameters, Object reportData, OutputStream stream)
      Render a report in PDF format using the supplied report data.
      static voidrenderAsPdf​(net.sf.jasperreports.engine.JasperReport report, Map<String,​Object> parameters, Object reportData, OutputStream stream, Map<net.sf.jasperreports.engine.JRExporterParameter,​Object> exporterParameters)
      Render a report in PDF format using the supplied report data.
      static voidrenderAsXls​(net.sf.jasperreports.engine.JasperReport report, Map<String,​Object> parameters, Object reportData, OutputStream stream)
      Render a report in XLS format using the supplied report data.
      static voidrenderAsXls​(net.sf.jasperreports.engine.JasperReport report, Map<String,​Object> parameters, Object reportData, OutputStream stream, Map<net.sf.jasperreports.engine.JRExporterParameter,​Object> exporterParameters)
      Render a report in XLS format using the supplied report data.
    • Method Detail

      • convertReportData

        public static net.sf.jasperreports.engine.JRDataSource convertReportData​(Object value)
                                                                          throws IllegalArgumentException
        Convert the given report data value to a JRDataSource.

        In the default implementation, a JRDataSource, java.util.Collection or object array is detected. The latter are converted to JRBeanCollectionDataSource or JRBeanArrayDataSource, respectively.

        Parameters:
        value - the report data value to convert
        Returns:
        the JRDataSource (never null)
        Throws:
        IllegalArgumentException - if the value could not be converted
        See Also:
        JRDataSource, JRBeanCollectionDataSource, JRBeanArrayDataSource
      • render

        public static void render​(net.sf.jasperreports.engine.JRExporter exporter,
                                  net.sf.jasperreports.engine.JasperPrint print,
                                  Writer writer)
                           throws net.sf.jasperreports.engine.JRException
        Render the supplied JasperPrint instance using the supplied JRAbstractExporter instance and write the results to the supplied Writer.

        Make sure that the JRAbstractExporter implementation you supply is capable of writing to a Writer.

        Parameters:
        exporter - the JRAbstractExporter to use to render the report
        print - the JasperPrint instance to render
        writer - the Writer to write the result to
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
      • render

        public static void render​(net.sf.jasperreports.engine.JRExporter exporter,
                                  net.sf.jasperreports.engine.JasperPrint print,
                                  OutputStream outputStream)
                           throws net.sf.jasperreports.engine.JRException
        Render the supplied JasperPrint instance using the supplied JRAbstractExporter instance and write the results to the supplied OutputStream.

        Make sure that the JRAbstractExporter implementation you supply is capable of writing to a OutputStream.

        Parameters:
        exporter - the JRAbstractExporter to use to render the report
        print - the JasperPrint instance to render
        outputStream - the OutputStream to write the result to
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
      • renderAsCsv

        public static void renderAsCsv​(net.sf.jasperreports.engine.JasperReport report,
                                       Map<String,​Object> parameters,
                                       Object reportData,
                                       Writer writer)
                                throws net.sf.jasperreports.engine.JRException
        Render a report in CSV format using the supplied report data. Writes the results to the supplied Writer.
        Parameters:
        report - the JasperReport instance to render
        parameters - the parameters to use for rendering
        writer - the Writer to write the rendered report to
        reportData - a JRDataSource, java.util.Collection or object array (converted accordingly), representing the report data to read fields from
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
        See Also:
        convertReportData(java.lang.Object)
      • renderAsCsv

        public static void renderAsCsv​(net.sf.jasperreports.engine.JasperReport report,
                                       Map<String,​Object> parameters,
                                       Object reportData,
                                       Writer writer,
                                       Map<net.sf.jasperreports.engine.JRExporterParameter,​Object> exporterParameters)
                                throws net.sf.jasperreports.engine.JRException
        Render a report in CSV format using the supplied report data. Writes the results to the supplied Writer.
        Parameters:
        report - the JasperReport instance to render
        parameters - the parameters to use for rendering
        writer - the Writer to write the rendered report to
        reportData - a JRDataSource, java.util.Collection or object array (converted accordingly), representing the report data to read fields from
        exporterParameters - a Map of JRExporterParameter exporter parameters
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
        See Also:
        convertReportData(java.lang.Object)
      • renderAsHtml

        public static void renderAsHtml​(net.sf.jasperreports.engine.JasperReport report,
                                        Map<String,​Object> parameters,
                                        Object reportData,
                                        Writer writer)
                                 throws net.sf.jasperreports.engine.JRException
        Render a report in HTML format using the supplied report data. Writes the results to the supplied Writer.
        Parameters:
        report - the JasperReport instance to render
        parameters - the parameters to use for rendering
        writer - the Writer to write the rendered report to
        reportData - a JRDataSource, java.util.Collection or object array (converted accordingly), representing the report data to read fields from
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
        See Also:
        convertReportData(java.lang.Object)
      • renderAsHtml

        public static void renderAsHtml​(net.sf.jasperreports.engine.JasperReport report,
                                        Map<String,​Object> parameters,
                                        Object reportData,
                                        Writer writer,
                                        Map<net.sf.jasperreports.engine.JRExporterParameter,​Object> exporterParameters)
                                 throws net.sf.jasperreports.engine.JRException
        Render a report in HTML format using the supplied report data. Writes the results to the supplied Writer.
        Parameters:
        report - the JasperReport instance to render
        parameters - the parameters to use for rendering
        writer - the Writer to write the rendered report to
        reportData - a JRDataSource, java.util.Collection or object array (converted accordingly), representing the report data to read fields from
        exporterParameters - a Map of JRExporterParameter exporter parameters
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
        See Also:
        convertReportData(java.lang.Object)
      • renderAsPdf

        public static void renderAsPdf​(net.sf.jasperreports.engine.JasperReport report,
                                       Map<String,​Object> parameters,
                                       Object reportData,
                                       OutputStream stream)
                                throws net.sf.jasperreports.engine.JRException
        Render a report in PDF format using the supplied report data. Writes the results to the supplied OutputStream.
        Parameters:
        report - the JasperReport instance to render
        parameters - the parameters to use for rendering
        stream - the OutputStream to write the rendered report to
        reportData - a JRDataSource, java.util.Collection or object array (converted accordingly), representing the report data to read fields from
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
        See Also:
        convertReportData(java.lang.Object)
      • renderAsPdf

        public static void renderAsPdf​(net.sf.jasperreports.engine.JasperReport report,
                                       Map<String,​Object> parameters,
                                       Object reportData,
                                       OutputStream stream,
                                       Map<net.sf.jasperreports.engine.JRExporterParameter,​Object> exporterParameters)
                                throws net.sf.jasperreports.engine.JRException
        Render a report in PDF format using the supplied report data. Writes the results to the supplied OutputStream.
        Parameters:
        report - the JasperReport instance to render
        parameters - the parameters to use for rendering
        stream - the OutputStream to write the rendered report to
        reportData - a JRDataSource, java.util.Collection or object array (converted accordingly), representing the report data to read fields from
        exporterParameters - a Map of JRExporterParameter exporter parameters
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
        See Also:
        convertReportData(java.lang.Object)
      • renderAsXls

        public static void renderAsXls​(net.sf.jasperreports.engine.JasperReport report,
                                       Map<String,​Object> parameters,
                                       Object reportData,
                                       OutputStream stream)
                                throws net.sf.jasperreports.engine.JRException
        Render a report in XLS format using the supplied report data. Writes the results to the supplied OutputStream.
        Parameters:
        report - the JasperReport instance to render
        parameters - the parameters to use for rendering
        stream - the OutputStream to write the rendered report to
        reportData - a JRDataSource, java.util.Collection or object array (converted accordingly), representing the report data to read fields from
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
        See Also:
        convertReportData(java.lang.Object)
      • renderAsXls

        public static void renderAsXls​(net.sf.jasperreports.engine.JasperReport report,
                                       Map<String,​Object> parameters,
                                       Object reportData,
                                       OutputStream stream,
                                       Map<net.sf.jasperreports.engine.JRExporterParameter,​Object> exporterParameters)
                                throws net.sf.jasperreports.engine.JRException
        Render a report in XLS format using the supplied report data. Writes the results to the supplied OutputStream.
        Parameters:
        report - the JasperReport instance to render
        parameters - the parameters to use for rendering
        stream - the OutputStream to write the rendered report to
        reportData - a JRDataSource, java.util.Collection or object array (converted accordingly), representing the report data to read fields from
        exporterParameters - a Map of JRExporterParameter exporter parameters
        Throws:
        net.sf.jasperreports.engine.JRException - if rendering failed
        See Also:
        convertReportData(java.lang.Object)