执法文书打印的实现(四):调用ie打印预览

执法文书打印的实现(四):调用ie打印预览

上篇博客被移出首页了,有点灰心。这几篇博客可能没用心,只当做一个任务了。以后质量不高的都发候选了,咱要有自觉啊。这篇写完终于完结了,好开心。

文书页面是通过渲染静态html到本页面div实现的,直接在本页调用ie打印预览会无法自动分页也不好控制打印样式。

页面div:<div id="htmlContainer" align="center"></div>

Html渲染:

function renderHtml() {

    var htmlCfg = {

        url : htmlUrl,//静态html地址

        success : loadHtml,//请求html成功执行的操作

        async : true

    };

    $.ajax(htmlCfg);

}

//渲染表单内容和数据到div中

function loadHtml(data, textStatus) {

    // 添加云表单

    //alert(data);

    $("#htmlContainer").append(data);

    

    // 云表单加载完毕后需要执行的初始化操作

    CForm.init();

    

    // 渲单表单

    renderForm();

}

为了实现更好的打印预览效果,在opener页面调用打印预览方法:

本页面打印预览按钮方法:

function pre_print(){

        //tabPanel.activeTab.id.split("_")[0] 获得当前活动的divID并作为参数传递到pre-print.jsp

        var url=L5.webPath+"/jsp/aaepcform/cfaaepformapply/render/pre-print-s.jsp?currentWId=htmlContainer&formId="+formId;

        ow=window.open(url,'打印文书','height=1100,width=800,toolbar=no,menubar=no,scrollbars=2, resizable=no,location=no, status=no,alwaysRaised=yes,z-look=yes,depended=yes');

    }

}

在opener窗口读取本页div中表单的内容:

//需要打印的div元素

    var el=window.opener.document.getElementById(currentWId);

    //复制打印内容到本页div中

    $("body").append(el.innerHTML);

调用打印预览:

var HKEY_Root,HKEY_Path,HKEY_Key;

HKEY_Root="HKEY_CURRENT_USER";

HKEY_Path="\Software\Microsoft\Internet Explorer\PageSetup\";

//打印设置:通过修改注册表实现

function doPrintPreview(){

    try{

         //注册表操作对象

         var RegWsh = new ActiveXObject("WScript.Shell");

        

         //设置页眉为空

         HKEY_Key="header";

         RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");

        

         //设置页脚为空

         HKEY_Key="footer";

         RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");

        

         //设置下边距为0

         HKEY_Key="margin_bottom";

         RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");

         //设置左页边距(0)

         HKEY_Key="margin_left";

         RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");

        

         //设置右页边距(0)

         HKEY_Key="margin_right";

         RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");

         //设置上页边距为0

         HKEY_Key="margin_top";

         RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");

         //设置 不收缩到纸张大小,默认100%

         HKEY_Key="Shrink_To_Fit";

         RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"no");

        

         //设置 打印页面背景

         HKEY_Key="Print_Background";

         RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"yes");

         //调用ie组件打印预览

         printWB.ExecWB(7,1);         

            

         }catch(e){

             alert("打印失败,请修改IE安全设置");

         };

}

原文地址:https://www.cnblogs.com/chonghua/p/4264293.html