Java tutorial
/* * 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); } } }