Jasper Java POC

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

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 JasperV2Command {

protected JRCsvDataSource getDataSource(String inputDataFile) throws JRException {

JRCsvDataSource ds = new JRCsvDataSource(
JRLoader.getLocationInputStream(inputDataFile));

ds.setRecordDelimiter("\r\n");
ds.setUseFirstRowAsHeader(true);
return ds;
}

protected void generateNativeOutput (String jasperTemplate , String inputDataFile) throws Exception {
Map<String, Object> parameters = new HashMap<String, Object>();
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperTemplate,
parameters, getDataSource(inputDataFile));
JasperViewer.viewReport(jasperPrint);
}

protected void generatePDFOutput(String jasperTemplate , String inputDataFile) throws Exception {
String reportOutputLocation = "xxx.pdf";
Map<String, Object> parameters = new HashMap<String, Object>();
String jasperPrint = JasperFillManager.fillReportToFile(jasperTemplate,
parameters, getDataSource(inputDataFile));

JasperExportManager.exportReportToPdfFile(jasperPrint,
reportOutputLocation);
}

protected void generateXLSOutput(String jasperTemplate , String inputDataFile) throws Exception {
String reportOutputLocation = "xxx.xls";
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) throws Exception {
String reportOutputLocation = "xxx.html";
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) throws Exception {
String reportOutputLocation = "xxx.csv";
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());
}

public static void main(String[] args) throws JRException, IOException {



String inputFileLocation = "C:\\data.txt";
String sourceFileName = "C:\\data.jrxml";
String destFileName = "C:\\data.jasper";

JasperCompileManager.compileReportToFile(
sourceFileName,
                destFileName);



JasperV2Command cmd = new JasperV2Command();
try {
System.out.println("Invoking PDF report output.....");
cmd.generatePDFOutput(destFileName , inputFileLocation);
System.out.println("Generated PDF report output.....\n");

System.out.println("Invoking XLS report output.....");
cmd.generateXLSOutput(destFileName , inputFileLocation);
System.out.println("Generated XLS report output.....\n");

System.out.println("Invoking HTML report output.....");
cmd.generateHTMLOutput(destFileName , inputFileLocation);
System.out.println("Generated HTML report output.....\n");

System.out.println("Invoking CSV report output.....");
cmd.generateCSVOutput(destFileName , inputFileLocation);
System.out.println("Generated CSV report output.....\n");
*/
/*System.out.println("Invoking Native report output.....");
cmd.generateNativeOutput(destFileName , inputFileLocation);
System.out.println("Generated Native report output.....\n");

System.out.println("Done !!");

} catch (Exception e) {
e.printStackTrace();
}

}
}