LODOP有选择性显示页眉页脚

LODOP.ADD_PRINT_HTM("95%", "20px", "95%", "100%",arrays[1]["foot"]);
LODOP.SET_PRINT_STYLEA(0,"ItemType",1);  //1表示页眉页脚
 LODOP.SET_PRINT_STYLEA(0,"PageIndex","Last-1");  //新加的内容项显示在倒数第二页

LODOP.NewPageA();  //在前面内容尾页新加分页;区别于LODOP.NewPage(),这是在前面内容首页后新增分页。

LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW",1);//打印后自动关闭预览窗口

LODOP.SET_SHOW_MODE("LANDSCAPE_DEFROTATED",1);//横向时的正向显示

MB中代码:

    /**
     * 打印
     * @param actionEvent
     */
    public void printActionListener(ActionEvent actionEvent) {
        try {
            JsonArray array = new JsonArray();
            Map<String, Object> dataMap = new HashMap<String, Object>();
            getData(dataMap);
            JsonObject nrObj = new JsonObject();
            nrObj.addProperty("nr", getNrHtml(dataMap));
            array.add(nrObj);
            JsonObject footObj = new JsonObject();
            footObj.addProperty("foot", getFootHtml(dataMap));
            array.add(footObj);
            JsonObject tableObj = new JsonObject();
            tableObj.addProperty("table", printTableHtml(dataMap));
            array.add(tableObj);
            ADFUtils.addScriptOnPartialRequest("print(" + array.toString() + ");");
        } catch (Exception e) {
            // TODO: Add catch code
            e.printStackTrace();
        }
    }

    /**
     * 获取内容html
     * @param dataMap
     * @return
     */
    private String getNrHtml(Map<String, Object> dataMap) {
        String html = "<html>" +
        "<body style=\"margin:auto;\">" + 
        "<div style=\"height:200px;\"></div>" + 
        "<div style=\"text-align:center;font-family:仿宋_GB2312;font-size:16.0000pt;line-height:1.5;margin-bottom:15px;\"><p>穗民航学院学字"+dataMap.get("cfwjh")+"号</p><p></p></div>" + 
        "<div style=\"font-family:仿宋_GB2312;font-size:16.0000pt;line-height:1.5;\">"+dataMap.get("wjss")+"</div>" + 
        "</body>" + 
        "</html>";
        return html;
    }



    /**
     * 表格html
     * @param dataMap
     * @return
     */
    private String printTableHtml(Map<String, Object> dataMap) {
        String html = " <body>" + 
        " <div align='center'>" + 
        "<p style='font-size:30px;font-weight:bold;'>广州民航职业技术学院发文稿纸</p>" + 
        "<table border='1' height='88%' width='90%' cellpadding='5' cellspacing='0'>" + 
        "  <tr>" + 
        "    <td colspan='5' valign='top'>" + 
        "		签 发<br/><br/>" + 
        "		"+dataMap.get("qf")+"<br/>" + 
        "		<div align='right'>"+dataMap.get("qfr")+"<span style='margin-left:8px;'>"+dataMap.get("qfrq")+"</span></div><br/>" + 
        "	</td>" + 
        "    <td colspan='3' valign='top'>" + 
        "		拟稿单位领导意见<br/><br/>" + 
        "		"+dataMap.get("ld")+"<br/><br/>" + 
        "		<div align='right'>"+dataMap.get("ldr")+"<span style='margin-left:8px;'>"+dataMap.get("ldrq")+"</span></div><br/>" + 
        "	</td>" + 
        "  </tr>" + 
        "  <tr>" + 
        "    <td colspan='5' rowspan='3' valign='top'>" + 
        "		会 签<br/><br/>" + 
        "               "+getHqList(dataMap) +            
        "	</td>" + 
        "	<td><div align='center'>拟稿单位</div></td>" + 
        "    <td colspan='2'><div align='center'>"+dataMap.get("ngdw")+"</div></td>" + 
        "  </tr>" + 
        "  <tr>" + 
        "    <td><div align='center'>拟稿人</div></td>" + 
        "    <td colspan='2'><div align='center'>"+dataMap.get("ngr")+"</div></td>" + 
        "  </tr>" + 
        "  <tr>" + 
        "   <td><div align='center'>联系方式</div></td>" + 
        "   <td colspan='2'><div align='center'>"+dataMap.get("lxfs")+"</div></td>" + 
        "  </tr>" + 
        "  <tr>" + 
        "    <td width='12.5%'><div align='center'>核稿</div></td>" + 
        "    <td width='12.5%'></td>" + 
        "    <td width='12.5%'><div align='center'>核稿时间</div></td>" + 
        "    <td width='12.5%'></td>" + 
        "	<td width='12.5%'><div align='center'>复核</div></td>" + 
        "    <td width='12.5%'></td>" + 
        "    <td width='12.5%'><div align='center'>复核时间</div></td>" + 
        "    <td width='12.5%'></td>" + 
        "  </tr>" + 
        "  <tr>" + 
        "    <td><div align='center'>打字</div></td>" + 
        "    <td colspan='2'></td>" + 
        "    <td><div align='center'>校对</div></td>" + 
        "	<td colspan='2'></td>" + 
        "    <td><div align='center'>份数</div></td>" + 
        "    <td></td>" + 
        "  </tr>" + 
        "  <tr>" + 
        "    <td colspan='8' valign='top'>" + 
        "		<div align='left'>文件标题</div><br/>" + 
        "		<div align='center'>关于给予"+dataMap.get("xm")+"同学"+dataMap.get("cfjd")+"处分的决定</div>" + 
        "	</td>" + 
        "  </tr>" + 
        "  <tr>" + 
        "    <td><div align='center'>文件编号</div></td>" + 
        "    <td colspan='3'></td>" + 
        "	<td><div align='center'>密级</div></td>" + 
        "    <td></td>" + 
        "    <td><div align='center'>紧急程度</div></td>" + 
        "    <td></td>" + 
        "  </tr>" + 
        "  <tr>" + 
        "    <td><div align='center'>附件</div></td>" + 
        "    <td colspan='7'></td>" + 
        "  </tr>" + 
        "  <tr>" + 
        "    <td><div align='center'>主题词</div></td>" + 
        "    <td colspan='7'></td>" + 
        "  </tr>" + 
        "   <tr>" + 
        "    <td><div align='center'>主送</div></td>" + 
        "    <td colspan='7'></td>" + 
        "  </tr>" + 
        " <tr>" + 
        "    <td><div align='center'>抄送</div></td>" + 
        "    <td colspan='7'></td>" + 
        "  </tr>" + 
        "</table>" + 
        " </div>" + 
        "  " + 
        " </body>" + 
        "</html>";
        return html;
    }

    /**
     * 底部html
     * @param dataMap
     * @return
     */
    private String getFootHtml(Map<String, Object> dataMap) {
        String html =
            "  <body>" + 
            " <div align='center'>" + 
            "	<div id='foot'>" + 
            "	 <div style='width:98%;'><hr style='height:1px;border:none;border-top:1px solid #555555;'/></div>" + 
            "	 广州民航职业技术学院学生工作处<span style='margin-left:50px;'>"+dataMap.get("date")+"印发</span>" + 
            "	 <div style='width:98%;'><hr style='height:1px;border:none;border-top:1px solid #555555;'/></div>" + 
            "	</div>" + 
            " </div>" +
            " </body>";
        return html;
    }

    /**
     * 遍历获取会签数据
     * @param dataMap
     */
    private String getHqList(Map<String, Object> dataMap) {
        String html = "";
        List<HqyjBean> list = (ArrayList<HqyjBean>)dataMap.get("hqyjs");
        for (HqyjBean hqyjBean : list) {
           html += hqyjBean.getYj()+"<br/>";
           html += "<div align='right'>"+hqyjBean.getXm()+"<span style='margin-left:8px;'>"+hqyjBean.getRq()+"</span></div><br/>";
       }
        return html;
    }

 JS代码:

    <af:resource type="javascript">
       var LODOP; //声明为全局变量
        function print(arrays) {
              LODOP=getLodop();  
              LODOP.PRINT_INIT("违纪处分");
              LODOP.SET_PRINT_PAGESIZE(1,"210mm","297mm","");
              var printline = '';
              var nrhtml = '<![CDATA[  <style type="text/css">*{margin:0; padding:0; line-height:26px;}</style>]]>';
              
              nrhtml = nrhtml + arrays[0]["nr"];
              LODOP.ADD_PRINT_HTM("15px", "20px", "95%", "93%", nrhtml);
              LODOP.ADD_PRINT_HTM("95%", "20px", "95%", "100%",arrays[1]["foot"]);
              LODOP.SET_PRINT_STYLEA(0,"ItemType",1);  //1表示页眉页脚
              LODOP.SET_PRINT_STYLEA(0,"PageIndex","Last-1");  //新加的内容项显示在倒数第二页
            
              LODOP.NewPageA();
              LODOP.ADD_PRINT_HTM("15px", "10px", "100%", "100%",arrays[2]["table"]);
              LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW",1);//打印后自动关闭预览窗口
              LODOP.PREVIEW();
          }
      </af:resource>

 --该功能摘自违纪处分结果查询 打印

或者直接获取在MB中拼接html然后调用ADFUtils的方法执行js,如下

    /**
     * 批量打印
     * @param actionEvent
     */
    public void printListener(ActionEvent actionEvent) {
        try {
            int zt = ((BigDecimal) JSFUtils.getElExpression("#{pageFlowScope.zt}")).intValue(); //字体大小
            StringBuffer sb = new StringBuffer();
            sb.append("var LODOP = getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));");
            sb.append("LODOP.PRINT_INIT('打印成绩单');");
            sb.append("LODOP.SET_SHOW_MODE('NP_NO_RESULT', true);");

            //-----循环拼接每个学生的成绩表--
            ViewObject xsVo = ADFUtils.findIterator("XsxxglXsjbxxVo1Iterator").getViewObject();
            xsVo.executeQuery();
            JwxtCjglAMImpl am = (JwxtCjglAMImpl) xsVo.getApplicationModule();
            String hasPm = (String) JSFUtils.getElExpression("#{pageFlowScope.pm}"); //是否需要排名
            RowSetIterator rowIter = xsVo.createRowSetIterator(null);
            while (rowIter.hasNext()) {
                Row xsRow = rowIter.next();
                XsCjBean bean = new XsCjBean();
                bean = getData(am, xsRow, hasPm, zt); //获取学生所有成绩

                //ADD_PRINT_HTM 四个数值分别表示Top,Left,Width,Height
                sb.append("LODOP.ADD_PRINT_HTM('10px','35px','90%','100%',\"" + getPrintHtml(bean) + "\");");
                sb.append("LODOP.NewPage();");

            }
            rowIter.closeRowSetIterator();

            sb.append("LODOP.PREVIEW();"); //打印预览
            //sb.append("LODOP.PRINT();");  //直接打印
            ADFUtils.addScriptOnPartialRequest(sb.toString());
        } catch (Exception e) {
            log.severe(e);
        } 

    }

--该功能摘自 教务系统成绩单打印

猜你喜欢

转载自563432906.iteye.com/blog/2309738