zoukankan      html  css  js  c++  java
  • js 打印指定页面部分打印

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script>
            
                function do_print(id_str){
                    //id-str 打印区域的id
                    var el = document.getElementById(id_str);
                    var iframe = document.createElement('IFRAME');
                    var doc = null;
                    iframe.setAttribute('style','position:absolute;0px;height:0px;left:-500px;top:-500px;');
                    document.body.appendChild(iframe);
                    doc = iframe.contentWindow.document;
                    // 引入打印的专有CSS样式,根据实际修改       
                    //doc.write("<LINK rel="stylesheet" type="text/css" href="css/print.css">");
                    doc.write('<div>' + el.innerHTML + '</div>');
                    doc.close();       
                    iframe.contentWindow.focus();
                    iframe.contentWindow.print();
                    if (navigator.userAgent.indexOf("MSIE") > 0){
                        document.body.removeChild(iframe);      
                    }
                }
            </script>
        </head>
        <body>
            <!--打印区域: -->
            <div id="print_box">
                <div style=" 500px; height: 500px; border: 5px solid #6b3906;">
                    <h1>hello kitty!</h1>
                </div>
            </div>
            <!--// 调用打印 -->
            <button onclick="javascript:do_print('print_box');">打印</button>
            
        </body>
    </html>

    实战项目中的使用

       $scope.do_print = function (id_str) {
            //id-str 打印区域的id
            var el = document.getElementById(id_str);
            var iframe = document.createElement('IFRAME');
            var doc = null;
            iframe.setAttribute('style', 'position:absolute;0px;height:0px;left:-500px;top:-500px;');
            document.body.appendChild(iframe);
            doc = iframe.contentWindow.document;
            // 引入打印的专有CSS样式,根据实际修改       
            //doc.write("<LINK rel="stylesheet" type="text/css" href="css/print.css">");
            if ($scope.orderinfo.inv==null) {
                var txt = "table{border-collapse:collapse;border-spacing:0;border-left:1px solid #000000;border-top:1px solid #000000;} td{border: 1px solid #000000;}th{border: 1px solid #000000;}#changefapiao{visibility: hidden;} .change{border-right: 0px solid #000000;}.change1{border-left: 0px solid #000000;} .title{text-align:center;} #fapiao{display:none;}";
            }
            else {
                var txt = "table{border-collapse:collapse;border-spacing:0;border-left:1px solid #000000;border-top:1px solid #000000;} td{border: 1px solid #000000;}th{border: 1px solid #000000;}#changefapiao{visibility: hidden;} .change{border-right: 0px solid #000000;}.change1{border-left: 0px solid #000000;} .title{text-align:center;}";
            }
            doc.write('<style>' + txt + '</style>');
            doc.write('<body>' + el.innerHTML + '</body>');
            doc.close();
            iframe.contentWindow.focus();
            iframe.contentWindow.print();
            if (navigator.userAgent.indexOf("MSIE") > 0) {
                document.body.removeChild(iframe);
            }
        }

  • 相关阅读:
    基于kafka-net实现的可以长链接的消息生产者
    Windows服务安装、卸载、启动和关闭的管理器
    基于Confluent.Kafka实现的KafkaConsumer消费者类和KafkaProducer消息生产者类型
    [转]C#中HttpClient使用注意:预热与长连接
    基于Confluent.Kafka实现的Kafka客户端操作类使用详解
    [转载]RabbitMQ消息可靠性分析
    ASP.NET Core3.1 MVC 添加验证规则
    asp.net core 3.1 webapi接口参数有时间类型取不到值得问题
    asp.net core 3.1 引用的元包dll版本兼容性问题解决方案
    Python安装和环境配置
  • 原文地址:https://www.cnblogs.com/zhangxiaolei521/p/5145671.html
Copyright © 2011-2022 走看看