iif 2017-06-02 07:39
浏览 2881

关于针对IE浏览器打印解决弹窗的解决办法。

目前遇到一个项目需要IE浏览器打印功能,需要解决直接打印不弹出IE选择打印对话框的问题。
试了很多办法都没有解决到。

后来在网上找到PAZU浏览器打印控件,感觉不错,只需要按照下面方式设置即可解决直接打印不 弹出IE浏览器默认选择打印机的问题。

具体解决办法如下:
1.准备好原料PAZU 下载网址 http://www.4Fang.net/4ff/sc_setup.exe

2.准备好PAZU 开发包下载网址 http://www.4Fang.net/4ff/pazu.rar

下面即可开干:
js代码如下:

        //直接打印
        $(".print").click(function(){

            //预先选中的纸张
            var strDefaultPaper = 'A4';

            String.prototype.trim = function () {
                return this.replace(/(^\s*)|(\s*$)/g, "");
            }
            function isNum(n) {
                if (isNaN(n)) return false;
                return true;
            }


            /*跳过IE打印选择提示*/
            var isPromtUser = false;
            /*页面设置*/
            var sPaper = "A4";
            var sPrinter = pazu.TPrinter.getDefaultPrinter().DeviceName;
            //alert(sPrinter);
            pazu.TPrinter.marginTop = 0;                    //属性 上边距
            pazu.TPrinter.marginBottom =0;                 //属性 下边距
            pazu.TPrinter.marginLeft = 0;                   //属性  左边距
            pazu.TPrinter.marginRight = 0;                  //属性  右边距
            pazu.TPrinter.footer = "";                  //属性 页脚
            pazu.TPrinter.header = "";                  //属性  页眉
            pazu.TPrinter.orientation = 1;                   //属性 整型:纸张方向 1=纵向  2=横向
            pazu.TPrinter.paperName = sPaper;                //属性   纸张大小名称
            //pazu.TPrinter.printerName = sPrinter;            //属性   打印机名称
            pazu.TPrinter.isPrintBackground = false;    //属性  是否打印背景 true / false
            pazu.TPrinter.isZoomOutToFit = true;           //属性   是否缩放以适应大小打印 true / false
            //pazu.TPrinter.printTemplate = sPT;                 //属性   打印模板的URL
            pazu.TPrinter.copies = 1;               //属性   打印份数
            //pazu.TPrinter.range = range.value;                 //属性   页面范围
            pazu.TPrinter.isCopyByCopy = false; //属性    是否整份打印结束后再打印下一份 true / false
            //pazu.TPrinter.getDefaultPrinter          //方法    获得默认打印机的对象
            //pazu.TPrinter.printToDefaultPrinter();      //方法  把要打印的字符串输送到默认打印机(配合getDefaultPrinter 使用)
            //pazu.TPrinter.getPaperForms              //方法    返回所有纸张格式的列表,以vbCrlf 分割
            //pazu.TPrinter.getPrinters                //方法    返回一个打印机列表,以vbCrlf 分割
            //pazu.TPrinter.createPaper           //方法    按指定的宽度和高度创建自定义纸张 请看示例
            //pazu.TPrinter.doPrint                    //方法    执行打印
            //pazu.TPrinter.doPrint_                   //方法    执行打印但是不进行页面参数设置
            //pazu.TPrinter.doPreview                  //方法    打印预览
            //pazu.TPrinter.doPageSetup                //方法    执行页面参数的设置
            //pazu.TPrinter.showPageSetup              //方法    弹出页面设置窗口
            //pazu.TPrinter.writeHTMLtoOfficeFile  方法   把HTML导出为Office EXCEL或者 Word格式文件

            //要指定打印那个Frame只要用javascript 让那个Frame获得焦点就可以了
            //注意:这种方式下是不能预览的,只能立即打印。否则预览看到的是整个网页,而不是指定的frame
            window.frames['myifrm'].focus();

            //pazu.TPrinter.doPreview();//打印预览

            pazu.TPrinter.doPrint(isPromtUser);

        });
    });


            Html代码如下:
            <div class="print">打印小票</div>
             <!--打印小票内容-->
    <div style="display:none">
        <object classid="clsid:AF33188F-6656-4549-99A6-E394F0CE4EA4" codebase="http://localhost/Home/sc_setup.exe" id="pazu" name="pazu">
            <param name="License" value="2AE816BA3A24A9BA3F01162E7BF420F4" />
        </object>
    </div>
    <iframe frameborder="0" scrolling="0" height="0" width="0" src="Print_Info.html" name="myifrm" id="myifrm"></iframe>
    </div>


            打印内容Html如下:



<title>打印</title>
<meta http-equiv="Content-Language" content="utf-8">
<meta name="pragma" content="no-cache">
<meta name="cache-control" content="no-cache">
<meta http-equiv="EXPIRES" content="0">
<meta http-equiv="imagetoolbar" content="no">


<style type="text/css">
    html, body, form {
        padding: 0;
        margin: 0;
    }
    .printinfo {
        /*width: 721px;*/
        /*height: 360px;*/
        position: absolute;
        margin-top: 10px;
        margin-left: 10px;
    }

        .printinfo li {
            width: 300px;
            height: 24px;
            font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
            font-size: 14px;
            line-height: 24px;
            display: inline-block;
            list-style: none;
        }
</style>




    </div>
    <div class="printinfo">
        <li>&nbsp;&nbsp;<strong style="letter-spacing:3px;">超市购物清单</strong></li>
        <li>&nbsp;银联商户号:&nbsp;2017040100090001</li>
        <li>&nbsp;终端编号:&nbsp;989892293</li>
        <li>&nbsp;交易单号:&nbsp;CS2017080910298881</li>
        <li>&nbsp;交易日期:&nbsp;2017-05-10 10:20:22</li>
        <li>&nbsp;金&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;额:&nbsp;16.00</li>
        <li>&nbsp;支付方式:&nbsp;支付宝</li>
    </div>
</form>


这样即可解决直接打印屏蔽打印机选择对话框问题

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器