js实现页面的打印

利用浏览器中自带的 window.print() 方法

(1) 实现整个页面的打印直接点击调用这个方法即可
(2)实现局部页面的打印时,首先要加开始打印位置以及打印结束位置的标注,我们只需截取两者中间的部分进行打印即可

<div class="modal-body">
    <div class="bootbox-body">
        <div class="row">
            <div class="col-md-12" style="display: flex;justify-content: center;">
                <!--startprint-->   //开始打印标记
                 <img src="" alt="">
                <!--endprint-->  //打印结束标记
            </div>
        </div>
    </div>
</div>
<div class="modal-footer">
    <button data-bb-handler="success" type="button" class="btn" id="scan_print">
        <font>
            <font>打印</font>
        </font>
    </button>
</div>
//相当于将截取的内容渲染到页面中,进行整个页面的打印,打印之后在将原页面内容重新渲染
function print_qr(){
   var startStr = "<!--startprint-->";
   var endStr = "<!--endprint-->";

   var printHtml = bdhtml.substring(bdhtml.indexOf(startStr) + startStr.length, bdhtml.indexOf(endStr));

   //将截取的字符串进行打印
   window.document.body.innerHTML = printHtml;
   window.print();

   //打印结束后重新加载页面,否则打印页面点击取消时原页面被修改
   window.document.body.innerHTML = bdhtml;
   location.reload();
}

$('#scan_print').on('click',function(){
  print_qr();
})

如果去掉打印时的页眉和页脚

@page{margin:0;}

设置js浏览器中分页打印

  1. 在css中加入此段代码
@media print {
   .page{
        page-break-before: auto;
        page-break-after: always; //始终在.page之后进行分页的分页行为
    }
}

page-break-before和page-break-after CSS属性并不会修改网页在屏幕上的显示,这两个属性是用来控制文件的打印方式

page-break-after属性会将分页符号加在指定组件后
page-break-after属性会将分页符号加在指定组件前

每个打印属性都可以设定5种设定值:auto、always、left、right和avoid。
auto是默认值,只有在有需要时,才需设定分页符号 (Page breaks)。
always,在遇到特定的组件时,重新开始一个新的打印页。
left,插入分页符号,直到指定的组件出现在一个左边的空白页上。
right,插入分页符号,直到指定的组件出现在一个右边的空白页上。
avoid,禁止插入分页符号

2.html文件(将想要在一页显示的放在一个.page容器中,但最好一个.page容器中不要放太多内容避免显示不下继续分页)

<div class="page">  
    <div>
        <img src="img/modify.png" alt="">
        <p>图片1</p>
    </div>
    <div>
        <img src="img/modify.png" alt="">
        <p>图片2</p>
    </div>
</div>
<div class="page">
    <div>
        <img src="img/modify.png" alt="">
        <p>图片1</p>
    </div>
    <div>
        <img src="img/modify.png" alt="">
        <p>图片2</p>
    </div>
</div>

效果如下图:
这里写图片描述

js实现页面所有图片完成加载之后的批量打印

(结合上述的css和html即可看到打印的效果)

$(function() {
   var num = $('img').length;
   $('img').each(function() {
       $(this).load(function() {
           num--;
           if (num <= 0) {
               window.print()
           }
       });
   });
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值