JS 浏览器分页打印

<template>
  <div>
    <div v-if="ifShow">
      <div v-for="(item, i) in list" :key="i">
        <div :id="item.spbh">
          <div
            width="100%"
            border="0"
            cellpadding="0"                      (这段属性实现分页)
            cellspacing="0"
            style="page-break-after:always"
          >
            <t3-sp-form :template-data="item.templateData" :template-text="item.templateText"></t3-sp-form>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>




      var that = this
      // 大小设置
      var pw = window.open('', '', 'width=800,height=600')
      pw.document.write('<html>')
      pw.document.write('<head>')
      pw.document.write('<title>表</title>')
      pw.document.write('</head>')
      pw.document.write('<body>')
      for (let i in this.list) {
        pw.document.write(document.getElementById(this.list[i].spbh).innerHTML)
      }
      pw.document.write('</body>')
      pw.document.write('</html>')
      pw.document.close()
      setTimeout(function () {
        // 调用print
        pw.print()
      }, 2000)
      // 监听 window.open关闭
      var loop = setInterval(function () {
        if (pw.closed) {
          clearInterval(loop)
          that.$emit('updatePage', '')
          that.$emit('closeLaxxb', '')
        }
      }, 1000)

      this.ifShow = false
      return false
    },

window.open(`/edit/tab/laxx?bh=${row.bhAj}&ywlx=${row.ywlx}&jbfy=${row.jbfy}`)

Pagebreak:在打印的时候强迫在样式控制的对象前后换页。 
Before:设置对象前出现的页分割符。设置为always时,始终在对象之前插入页分割符。相对应的CSS属性是”page-break-before”。 

After:设置对象后出现的页分割符。设置为always时,始终在对象之后插入页分割符。相对应的CSS属性是”'>。 

在调用window.print()时,可以实现打印效果,但内容太多时要进行分页打印。

在样式中有规定几个打印的样式

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

每个打印属性都可以设定4种设定值:auto、always、left和right。其中Auto是默认值,只有在有需要时,才需设定分页符号 (Page breaks)。

page-break-before若设定成always,则是在遇到特定的组件时,打印机会重新开始一个新的打印页。

page-break-before若设定成left,则会插入分页符号,直到指定的组件出现在一个左边的空白页上。

page-break-before若设定成right,则会插入分页符号,直到指定的组件出现在一个右边的空白页上。

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

auto默认值。如果必要则在元素前插入分页符
always在元素前插入分页符
avoid避免在元素前插入分页符
left在元素之前足够的分页符,一直到一张空白的左页为止
right在元素之前足够的分页符,一直到一张空白的右页为止
inherit规定应该从父元素继承 page-break-before 属性的设置

在Dom对象中pageBreakBefore属性

语法:

    Object.style.pageBreakBefore=auto|always|avoid|left|right

 

<html>
  <head>
    <script type="text/javascript">
      function setPageBreak()
      {
        document.getElementById("p2").style.pageBreakBefore="always";
      }
    </script>
  </head>
  <body>
    <p>This is a test paragraph.</p>
    <input type="button" onclick="setPageBreak()" value="Set page-break" />
    <p id="p2">This is also a test paragraph.</p>
  </body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值