package com.report.common; import java.io.IOException; import java.io.InputStream; import java.util.Map; import net.sf.jasperreports.engine.JRDataSource; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public abstract class AbstractPDFReport { protected abstract String getJrxmlPath(); protected JasperPrint createReport(Map<String, Object> params, JRDataSource ds) throws IOException, JRException { InputStream is = null; try { is = getClass().getResourceAsStream(getJrxmlPath()); JasperReport jasperReport = JasperCompileManager.compileReport(is); return JasperFillManager.fillReport(jasperReport, params, ds); } catch (JRException e) { throw e; } finally { if (is != null) { try { is.close(); } catch (IOException e) { throw e; } } } } }
