• Jasper打印示例


    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import javax.servlet.ServletContext;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletResponse;

    import com.htf.ap.security.operatelog.annotation.OperateLog;
    import com.htf.common.businessconfig.invoice.InvoicePrintModel;
    import com.htf.framework.webutil.xwork.annotation.Action;
    import com.opensymphony.webwork.ServletActionContext;

    import net.sf.jasperreports.engine.JRDataSource;
    import net.sf.jasperreports.engine.JRException;
    import net.sf.jasperreports.engine.JRExporterParameter;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
    import net.sf.jasperreports.engine.export.JRPdfExporter;
    import net.sf.jasperreports.engine.util.JRLoader;

    public class JasperPrintUtil {

    /**
    * 生成JasperPrint
    *
    * @param list 数据源
    * @param pathMap报表
    * @return JasperPrint list
    */
    public static <T> List<JasperPrint> createJasperPrint(List<T> list,
    Map<String, String> pathMap, String path, Map<String, Object> paramMap) {
    List<JasperPrint> printList = new ArrayList<JasperPrint>();
    if (list != null && pathMap != null) {
    List<T> dataList = new ArrayList<T>();
    try {
    for (String kn : pathMap.keySet()) {
    dataList.addAll(list);
    ServletContext context = ServletActionContext.getRequest().getSession()
    .getServletContext();
    String file = context.getRealPath(pathMap.get(kn));
    JasperReport report = (JasperReport) JRLoader.loadObject(file);
    JRDataSource source = new JRBeanCollectionDataSource(dataList);
    Map<String, Object> imgMap = paramMap;
    JasperPrint print = JasperFillManager.fillReport(report, imgMap, source);
    if (print != null) printList.add(print);
    //imgMap.clear();
    dataList.clear();
    }
    } catch (JRException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    return printList;
    }

    /**
    * 打印JasperPrint 修改:打印有返回值,以方便调用时判断传递不同的打印参数
    *
    * @param JasperPrint list
    * @return
    */
    public static int print(List<JasperPrint> list) {
    int flag = -1;// 默认打印失败,1打印成功
    ServletOutputStream out = null;
    try {
    if (list == null) {
    return flag;
    }
    HttpServletResponse response = ServletActionContext.getResponse();
    out = response.getOutputStream();
    response.setContentType("application/pdf");
    JRPdfExporter exporter = new JRPdfExporter();
    exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, list);
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
    exporter.exportReport();
    out.flush();
    flag = 1;
    return flag;
    } catch (JRException e) {
    e.printStackTrace();
    return flag;
    } catch (IOException e) {
    e.printStackTrace();
    return flag;
    } /*finally {刘燕明注释:方便上层调用此方法时可以重新判断打印
    IOUtil.close(out);
    }*/
    }

    }

    /**
    * 打印贷款申请审批表

    * @date 2017-3-18
    */
    @SuppressWarnings("unchecked")
    @OperateLog(moduleName="打印贷款申请审批表", content = "打印贷款申请审批表")
    @Action(name="LoanApplyAction_goLoanApplyAppPrint")
    public String goLoanApplyAppPrint() {
    Long tempId = model.getTempId();
    Long stateId = model.getStateId();
    //stateId = 4310441L;
    // InvoicePrintModel invoicePrintModel = loanApplyBPO.findLoanApplyAppPrintContext(tempId, stateId);
    InvoicePrintModel invoicePrintModel = new InvoicePrintModel();
    List<String> list = new ArrayList<String>();
    list.add("aa");
    invoicePrintModel.setDataList(list);
    //定义Map集
    Map<String, String> pathMap = new HashMap<String, String>();
    pathMap.put("a1", "/gjj-pl/pages/g3/gjj/pl/jasper/LoanApplyAppReport1.jasper");
    pathMap.put("a2", "/gjj-pl/pages/g3/gjj/pl/jasper/LoanApprove.jasper");
    //调用打印方法
    JasperPrintUtil.print(JasperPrintUtil.createJasperPrint(
    invoicePrintModel.getDataList(), pathMap, null,
    invoicePrintModel.getContext()));
    //this.print(this.createJasperPrint(invoicePrintModel.getDataList(), pathMap, null,invoicePrintModel.getContext()));
    return NONE;
    }

    流程 创建jasper  然后调用export方法打印jasper对象。

  • 相关阅读:
    ASP.NET MVC 3 Internationalization
    Windows 8学习笔记(十)Notification
    Windows 8学习笔记(十二)集合控件
    Windows 8学习笔记(七)Input输入设备
    【配置与安装】解决类似umount target is busy挂载盘卸载不掉问题
    【coredump】coredump 使用
    【C++调试】"./xxx: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./xxx)" 执行报错
    【配置与安装】CentOS7 多磁盘合成卷组并创建LVM,挂载到同一目录
    Unix 知识
    3D创作概念入门
  • 原文地址:https://www.cnblogs.com/UUUz/p/9365716.html
Copyright © 2020-2023  润新知