zoukankan      html  css  js  c++  java
  • 执法文书打印的实现(四):调用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安全设置");

             };

    }

  • 相关阅读:
    Visual Studio调试器项目设置
    Debug.Assert Everyone!
    WinDbg中的.natvis文件和类型模板
    已安装的.NET CLR版本之间的w3wp.exe崩溃WinDbg后期调试
    用于DLL注入的WinDbg扩展---!injectdll
    Wireshark中PIDs与网络包的关联
    又又一款抓dmp工具---ProcDump
    基于.NET框架版本在Windbg中加载sos的脚本
    未记录的WinDBG扩展命令---itoldyouso
    合并符号服务器
  • 原文地址:https://www.cnblogs.com/chonghua/p/4264293.html
Copyright © 2011-2022 走看看