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); } }
--该功能摘自 教务系统成绩单打印