com.company.regis.utils.PrintUtil.java Source code

Java tutorial

Introduction

Here is the source code for com.company.regis.utils.PrintUtil.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.company.regis.utils;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRParameter;

import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jxls.transformer.XLSTransformer;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 *
 * @author Boy
 */
public class PrintUtil implements Serializable {

    private static final long serialVersionUID = 8881961063432067357L;

    //    static String report_path = "/reports/";
    static String report_path = "E:\\KEIIP\\reports\\chilli\\";
    static JasperPrint jasperPrint;
    static Connection connection = null;

    public static void PDFByBean(String name, JRBeanCollectionDataSource bean, Map params) {

        try {

            //            DefaultJasperReportsContext context = DefaultJasperReportsContext.getInstance();
            //            JRPropertiesUtil.getInstance(context).setProperty("net.sf.jasperreports.default.font.name", "DejaVu Sans");
            //            JRPropertiesUtil.getInstance(context).setProperty("net.sf.jasperreports.default.pdf.embedded", "true");
            //            JRPropertiesUtil.getInstance(context).setProperty("net.sf.jasperreports.default.pdf.font.name", "DejaVu Sans");

            params.put(JRParameter.REPORT_LOCALE, Locale.US);

            String reportPath = report_path + name + ".jasper";

            //            jasperPrint = JasperFillManager.getInstance(context).fillReport(reportPath, params, bean);
            jasperPrint = JasperFillManager.fillReport(reportPath, params, bean);
            // render PDF
            createPDF(name);

        } catch (Exception ex) {
            System.out.println(ex);
        }

    }

    public static void PDFBySQL(String name, String outName, Map params) {

        try {
            // connect database
            connection();

            params.put(JRParameter.REPORT_LOCALE, Locale.US);

            String reportPath = report_path + name + ".jasper";

            jasperPrint = JasperFillManager.fillReport(reportPath, params, connection);
            // render PDF
            createPDF(outName);

        } catch (Exception ex) {
            System.out.println(ex);
        }

    }

    public static void ExcelBean(String reportTag, Map<String, Object> beans) {
        String reportName = reportTag + ".xls";

        HSSFWorkbook wb = null;
        InputStream is = FacesContext.getCurrentInstance().getExternalContext()
                .getResourceAsStream("/excels/" + reportName);
        XLSTransformer transformer = new XLSTransformer();

        try {

            wb = transformer.transformXLS(is, beans);
            FacesContext ctx = FacesContext.getCurrentInstance();
            ExternalContext ectx = ctx.getExternalContext();

            HttpServletResponse response = (HttpServletResponse) ectx.getResponse();
            response.setContentType("application/vnd.ms-excel");
            response.setHeader("Content-Disposition", "attachment; filename=\"" + reportTag + ".xls\"");

            ServletOutputStream out = response.getOutputStream();
            wb.write(out);
            out.flush();
            out.close();

            ctx.responseComplete();

        } catch (Exception ex) {
            System.out.println(ex);
        }
    }

    private static void connection() throws ClassNotFoundException, SQLException, FileNotFoundException {

        String className = "com.mysql.jdbc.Driver";
        String database = "jdbc:mysql://localhost:3306/keiip_chilli?characterEncoding=utf-8";
        String userName = "root";
        String password = "1234";

        Class.forName(className);
        connection = DriverManager.getConnection(database, userName, password);
    }

    private static void createPDF(String outName) {

        try {
            HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance()
                    .getExternalContext().getResponse();
            httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + outName + ".pdf");

            FacesContext.getCurrentInstance().responseComplete();

            ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();

            JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);
            servletOutputStream.flush();
            servletOutputStream.close();
            FacesContext.getCurrentInstance().responseComplete();

            connection.close();

        } catch (JRException ex) {
            System.out.println(ex);
        } catch (IOException ex) {
            System.out.println(ex);
        } catch (SQLException ex) {
            System.out.println(ex);
        }

    }

}