vue-print-nb 打印页面

1、安装

npm install vue-print-nb --save

2、引入

// main.js
import Print from 'vue-print-nb'
Vue.use(Print)

3、参数

参数作用类型可选项默认值
id局部打印有效,打印区域的idString-‘printId’
standard局部打印有效,打印的文本类型StringHTML5/loose/strictHTML5
extraHead局部打印有效,添加在打印区域的最顶端String--
extraCss局部打印有效,为打印区域提供Stylesheet样式表String--
popTitle局部打印有效,编辑页眉的标题String-Document Title
clickMounted全局有效,调用v-print绑定的按钮点击事件callbackFunction-this.Object
openCallback全局有效,调用打印时的callbackFunction-this.Object
closeCallback全局有效,调用关闭打印的callback(无法区分确认or取消)Function-this.Object
beforeOpenCallback全局有效,调用开始打印之前的callbackFunction-this.Object
preview全局有效,控制打印预览Booleantrue/falsefalse
previewTitle编辑预览页面的预览标题String-‘打印预览’
previewPrintBtnLabel编辑预览页面的打印按钮文本String-‘打印’
previewBeforeOpenCallback调用打开预览页面之前的callbackFunction-this.Object
previewOpenCallback调用打开预览页面之后的callbackFunction-this.Object
url非局部打印有效,打印指定的URL,确保同源策略相同String--
asyncUrl非局部打印有效,异步加载打印指定的URL,确保同源策略相同Function--
zIndex预览有效,预览窗口的z-index,默认是20002,最好比默认值更高String,Number-20002

4、完整代码

<template>
  <div id="printArea">
    <el-button class="print print-hidden" v-print="print">打印</el-button>
    <div class="content">1111</div>
  </div>
</template>

<script>
  export default {
    name: 'test',
    data() {
      return {
        print: {
          id: 'printArea', // 打印区域的id
          standard: '', // 打印的文本类型
          extraHead: '', //最上方的头部文字,附加在head标签上的额外标签,使用逗号分隔
          extraCss: '', // 为打印区域提供Stylesheet样式表
          popTitle: '打印', // 打印配置页上方标题
          preview: '', // 是否启动预览模式,默认是false(开启预览模式,可以先预览后打印)
          previewTitle: '', // 打印预览的标题(开启预览模式后出现),
          previewPrintBtnLabel: '', // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
          url: '', // 打印指定的URL
          zIndex: '', // 预览的窗口的z-index,默认是 20002(此值要高一些,这涉及到预览模式是否显示在最上面)
          beforeOpenCallback() { }, // 开启打印前的回调事件
          openCallback() { }, // 调用打印之后的回调事件
          closeCallback() { }, //关闭打印的回调事件(无法确定点击的是确认还是取消)
          previewBeforeOpenCallback() { }, //预览窗口打开之前的callback(开启预览模式调用)
          previewOpenCallback() { }, // 预览窗口打开之后的callback(开启预览模式调用)
        }
      }
    }
  }
</script>

<style lang="scss" scoped>
  .detail-content {
    width: 1247px;
    margin: 63px auto;
    background-color: #fff;
    position: relative;
    padding: 15px 48px;
    .print {
      position: absolute;
      right: 48px;
      top: 15px;
      z-index: 100;
      width: 80px;
      min-width: 0px;
    }
  }
</style>
<style media="print">
  /* 去除打印的页眉页脚 */
  @page {
    size: auto;
    margin: 3mm;
  }

  /* 隐藏打印区域中的class为 print-hidden 的dom */
  @media print {
    .print-hidden{
      display: none;
    }
  }

  /* 去除打印最后一页空白页 */
  html {
    background-color: #ffffff;
    height: auto;
    margin: 0px;
  }
</style>

5、注意

(1)隐藏打印的页眉页脚


<style media="print">
  /* 去除打印的页眉页脚 */
  @page {
    size: auto;
    margin: 3mm;
  }
</style>

(2)隐藏打印区域不需要打印的内容

<style media="print">
  /* 隐藏打印区域中的class为 print-hidden 的dom */
  @media print {
    .print-hidden{
      display: none;
    }
  }
</style>

(3)去除打印最后一页空白页

<style media="print">
  /* 去除打印最后一页空白页 */
  html {
    background-color: #ffffff;
    height: auto;
    margin: 0px;
  }
</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值