import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import com.mellon.jasper.reporting.properties.PropertiesManager;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRCsvDataSource;
import net.sf.jasperreports.engine.export.JRCsvExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
public class JasperCommand {
PropertiesManager pm = new PropertiesManager();
public void generateJasperReport(String reportOutputLocation, String templateName ,
String inputDataFile, String reportOutputFormat, Map parameterMap) throws Exception {
String jasperTemplate = abc.jasper;
String mergeDatafile = data.txt;
if(reportOutputFormat.equalsIgnoreCase("PDF")){
System.out.println("PDF format Execution - START");
generatePDFOutput(jasperTemplate, mergeDatafile, reportOutputLocation, parameterMap);
System.out.println("PDF format Execution - END");
}else if (reportOutputFormat.equalsIgnoreCase("NTV")){
System.out.println("NTV format Execution - START");
generateNativeOutput(jasperTemplate, mergeDatafile, parameterMap);
System.out.println("NTV format Execution - END");
}else if (reportOutputFormat.equalsIgnoreCase("XLS")){
generateXLSOutput(jasperTemplate, mergeDatafile, reportOutputLocation);
}else if (reportOutputFormat.equalsIgnoreCase("CSV")){
generateCSVOutput(jasperTemplate, mergeDatafile, reportOutputLocation);
}else if (reportOutputFormat.equalsIgnoreCase("XML")){
generateXMLOutput(jasperTemplate, mergeDatafile, reportOutputLocation);
}else if (reportOutputFormat.equalsIgnoreCase("HTML")){
generateHTMLOutput(jasperTemplate, mergeDatafile, reportOutputLocation);
}
}
protected JRCsvDataSource getDataSource(String inputDataFile) throws JRException, ClassNotFoundException {
JRCsvDataSource ds = new JRCsvDataSource(
JRLoader.getLocationInputStream(inputDataFile));
ds.setRecordDelimiter("\r\n");
ds.setUseFirstRowAsHeader(true);
//ds.setDatePattern("MM dd yyyy HH mm ss");
DateFormat dt = new SimpleDateFormat("MM dd yyyy hh mm ss");
ds.setDateFormat(dt);
return ds;
}
@SuppressWarnings("unchecked")
protected void generatePDFOutput(String jasperTemplate ,
String inputDataFile, String reportOutputLocation, Map parameterMap) throws Exception {
JRCsvDataSource datasource = new JRCsvDataSource(inputDataFile);
datasource.setDatePattern("MM dd yyyy HH mm ss");
String jasperPrint = JasperFillManager.fillReportToFile(jasperTemplate,
parameterMap, getDataSource(inputDataFile));
JasperExportManager.exportReportToPdfFile(jasperPrint,
reportOutputLocation);
}
@SuppressWarnings("unchecked")
protected void generateNativeOutput (String jasperTemplate , String inputDataFile,
Map parameterMap) throws Exception {
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperTemplate,
parameterMap, getDataSource(inputDataFile));
JasperViewer.viewReport(jasperPrint);
}
protected void generateXLSOutput(String jasperTemplate,
String inputDataFile, String reportOutputLocation) throws Exception {
Map<String, Object> parameters = new HashMap<String, Object>();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperTemplate,
parameters, getDataSource(inputDataFile));
ByteArrayOutputStream output = new ByteArrayOutputStream();
OutputStream outputfile= new FileOutputStream(new File(reportOutputLocation));
JRXlsExporter exporterXLS = new JRXlsExporter();
exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, output);
exporterXLS.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporterXLS.exportReport();
outputfile.write(output.toByteArray());
}
protected void generateHTMLOutput(String jasperTemplate,
String inputDataFile, String reportOutputLocation) throws Exception {
Map<String, Object> parameters = new HashMap<String, Object>();
String jasperPrint = JasperFillManager.fillReportToFile(jasperTemplate,
parameters, getDataSource(inputDataFile));
JasperExportManager.exportReportToHtmlFile(jasperPrint,
reportOutputLocation);
}
protected void generateCSVOutput(String jasperTemplate,
String inputDataFile, String reportOutputLocation) throws Exception {
Map<String, Object> parameters = new HashMap<String, Object>();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperTemplate,
parameters, getDataSource(inputDataFile));
ByteArrayOutputStream output = new ByteArrayOutputStream();
OutputStream outputfile= new FileOutputStream(new File(reportOutputLocation));
JRCsvExporter exporter = new JRCsvExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, output);
exporter.exportReport();
outputfile.write(output.toByteArray());
}
protected void generateXMLOutput(String jasperTemplate,
String inputDataFile, String reportOutputLocation) throws Exception{
Boolean isEmbeddingImages = false;
Map<String, Object> parameters = new HashMap<String, Object>();
String jasperPrint = JasperFillManager.fillReportToFile(jasperTemplate,
parameters, getDataSource(inputDataFile));
JasperExportManager.exportReportToXmlFile(jasperPrint, reportOutputLocation, isEmbeddingImages);
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import com.mellon.jasper.reporting.properties.PropertiesManager;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRCsvDataSource;
import net.sf.jasperreports.engine.export.JRCsvExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
public class JasperCommand {
PropertiesManager pm = new PropertiesManager();
public void generateJasperReport(String reportOutputLocation, String templateName ,
String inputDataFile, String reportOutputFormat, Map parameterMap) throws Exception {
String jasperTemplate = abc.jasper;
String mergeDatafile = data.txt;
if(reportOutputFormat.equalsIgnoreCase("PDF")){
System.out.println("PDF format Execution - START");
generatePDFOutput(jasperTemplate, mergeDatafile, reportOutputLocation, parameterMap);
System.out.println("PDF format Execution - END");
}else if (reportOutputFormat.equalsIgnoreCase("NTV")){
System.out.println("NTV format Execution - START");
generateNativeOutput(jasperTemplate, mergeDatafile, parameterMap);
System.out.println("NTV format Execution - END");
}else if (reportOutputFormat.equalsIgnoreCase("XLS")){
generateXLSOutput(jasperTemplate, mergeDatafile, reportOutputLocation);
}else if (reportOutputFormat.equalsIgnoreCase("CSV")){
generateCSVOutput(jasperTemplate, mergeDatafile, reportOutputLocation);
}else if (reportOutputFormat.equalsIgnoreCase("XML")){
generateXMLOutput(jasperTemplate, mergeDatafile, reportOutputLocation);
}else if (reportOutputFormat.equalsIgnoreCase("HTML")){
generateHTMLOutput(jasperTemplate, mergeDatafile, reportOutputLocation);
}
}
protected JRCsvDataSource getDataSource(String inputDataFile) throws JRException, ClassNotFoundException {
JRCsvDataSource ds = new JRCsvDataSource(
JRLoader.getLocationInputStream(inputDataFile));
ds.setRecordDelimiter("\r\n");
ds.setUseFirstRowAsHeader(true);
//ds.setDatePattern("MM dd yyyy HH mm ss");
DateFormat dt = new SimpleDateFormat("MM dd yyyy hh mm ss");
ds.setDateFormat(dt);
return ds;
}
@SuppressWarnings("unchecked")
protected void generatePDFOutput(String jasperTemplate ,
String inputDataFile, String reportOutputLocation, Map parameterMap) throws Exception {
JRCsvDataSource datasource = new JRCsvDataSource(inputDataFile);
datasource.setDatePattern("MM dd yyyy HH mm ss");
String jasperPrint = JasperFillManager.fillReportToFile(jasperTemplate,
parameterMap, getDataSource(inputDataFile));
JasperExportManager.exportReportToPdfFile(jasperPrint,
reportOutputLocation);
}
@SuppressWarnings("unchecked")
protected void generateNativeOutput (String jasperTemplate , String inputDataFile,
Map parameterMap) throws Exception {
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperTemplate,
parameterMap, getDataSource(inputDataFile));
JasperViewer.viewReport(jasperPrint);
}
protected void generateXLSOutput(String jasperTemplate,
String inputDataFile, String reportOutputLocation) throws Exception {
Map<String, Object> parameters = new HashMap<String, Object>();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperTemplate,
parameters, getDataSource(inputDataFile));
ByteArrayOutputStream output = new ByteArrayOutputStream();
OutputStream outputfile= new FileOutputStream(new File(reportOutputLocation));
JRXlsExporter exporterXLS = new JRXlsExporter();
exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, output);
exporterXLS.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporterXLS.exportReport();
outputfile.write(output.toByteArray());
}
protected void generateHTMLOutput(String jasperTemplate,
String inputDataFile, String reportOutputLocation) throws Exception {
Map<String, Object> parameters = new HashMap<String, Object>();
String jasperPrint = JasperFillManager.fillReportToFile(jasperTemplate,
parameters, getDataSource(inputDataFile));
JasperExportManager.exportReportToHtmlFile(jasperPrint,
reportOutputLocation);
}
protected void generateCSVOutput(String jasperTemplate,
String inputDataFile, String reportOutputLocation) throws Exception {
Map<String, Object> parameters = new HashMap<String, Object>();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperTemplate,
parameters, getDataSource(inputDataFile));
ByteArrayOutputStream output = new ByteArrayOutputStream();
OutputStream outputfile= new FileOutputStream(new File(reportOutputLocation));
JRCsvExporter exporter = new JRCsvExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, output);
exporter.exportReport();
outputfile.write(output.toByteArray());
}
protected void generateXMLOutput(String jasperTemplate,
String inputDataFile, String reportOutputLocation) throws Exception{
Boolean isEmbeddingImages = false;
Map<String, Object> parameters = new HashMap<String, Object>();
String jasperPrint = JasperFillManager.fillReportToFile(jasperTemplate,
parameters, getDataSource(inputDataFile));
JasperExportManager.exportReportToXmlFile(jasperPrint, reportOutputLocation, isEmbeddingImages);
}
}