当前位置: 首页 > article >正文

vue实现打印指定页面内容

vue-print-nb

使用 vue-print-nb 这个插件能够实现打印

安装
// 安装 打印组件
npm install vue-print-nb --save
引用

vue2引入

import Print from 'vue-print-nb'
// 全局引用
Vue.use(Print);

// 或者

// 单组件引用
import print from 'vue-print-nb'
// 在自定义指令中注册
directives: {
    print   
}

vue3引入

// 全局引用
import { createApp } from 'vue'
import App from './App.vue'
import print from 'vue3-print-nb'
const app = createApp(App)
app.use(print)
app.mount('#app')

// 或者

// 单组件引用
import print from 'vue3-print-nb'
// 在自定义指令中注册
directives: {
    print   
}
API
属性

类型

默认值必要可选值描述
idString--范围打印 ID(如果设置url则可以不设置id)
urlString--打印指定的 URL。(不允许同时设置ID
popTitleString--默认使用浏览器标签名,为空时为undefined
standardStringHTML5html5,loose,strict打印的文档类型
extraHeadString--在节点中添加 DOM 节点, 并用,(Print local range only)分隔多个节点
extraCssString--新的 CSS 样式表, 并使用,(仅打印本地范围)分隔多个节点
openCallbackFunction--调用打印工具成功回调函数
closeCallbackFunction--关闭打印工具成功回调函数
beforeOpenCallbackFunction--调用打印工具前的回调函数
previewBooleanfalsetrue,false预览工具
previewTitle String--‘打印预览’
previewPrintBtnLabelString打印-打印按钮名称
previewBeforeOpenCallbackFunction--预览打开前回调函数
previewOpenCallbackFunction--预览打开回调函数
clickMountedFunction--点击打印按钮回调函

代码展示

        <el-button type="primary" v-print="printOption">打印</el-button>
        <div id="nbprint">
          <div class="flex align_end justify_center" style="margin-bottom: 10px;">
            <div class="center font_22" v-if="showStatus">{{ schoolName }}</div>
            <div class="font_16" style="margin-left: 20px;">{{ displayName }}</div>
          </div>
          <table class="cs_table" id="table" v-if="showStatus">
            <tr>
              <td class="grayStyle" rowspan="2">卡  号</td>
              <td class="grayStyle" rowspan="2">姓  名</td>
              <td class="grayStyle" colspan="2">消  费</td>
              <td class="grayStyle" colspan="2">充  值</td>
              <td class="grayStyle" colspan="2">减  款</td>
              <td class="grayStyle" rowspan="2">签  字</td>
            </tr>
            <tr>
              <td class="grayStyle">金  额</td>
              <td class="grayStyle">次  数</td>
              <td class="grayStyle">金  额</td>
              <td class="grayStyle">次  数</td>
              <td class="grayStyle">金  额</td>
              <td class="grayStyle">次  数</td>
            </tr>
            <tr v-for="(item, index) in cashierList" :key="index">
              <td>{{ cashierList[index].cardNo }}</td>
              <td>{{ cashierList[index].userName }}</td>
              <td>{{ cashierList[index].consumeAmount }}</td>
              <td>{{ cashierList[index].consumeTimes }}</td>
              <td>{{ cashierList[index].rechargeAmount }}</td>
              <td>{{ cashierList[index].rechargeTimes }}</td>
              <td>{{ cashierList[index].deductionAmount }}</td>
              <td>{{ cashierList[index].deductionTimes }}</td>
              <td></td>
            </tr>
            <tr>
              <td colspan="2">合  计</td>
              <td>{{ totalConsumeAmount }}</td>
              <td>{{ totalConsumeTimes }}</td>
              <td>{{ totalRechargeAmount }}</td>
              <td>{{ totalRechargeTimes }}</td>
              <td>{{ totalDeductionAmount }}</td>
              <td>{{ totalDeductionTimes }}</td>
              <td></td>
            </tr>
          </table>
        </div>
export default {
  data() {
    return {
      printOption: {
        id: "nbprint", // 打印元素的id 不需要携带#号
        preview: false, // 开启打印预览
        previewTitle: "打印预览", // 打印预览标题
        popTitle: "部门消费情况表", // 页眉标题 默认浏览器标题 空字符串时显示undefined 使用html语言
        // 头部文字 默认空 在节点中添加 DOM 节点, 并用,(Print local range only)分隔多个节点
        // extraHead: "https://***/***.css, https://***/***.css",
        // 新的 CSS 样式表, 并使用,(仅打印本地范围)分隔多个节点
        // extraCss: '<meta http-equiv="Content-Language"content="zh-cn"/>',
        previewBeforeOpenCallback: () => {
          console.log("触发打印预览打开前回调");
        },
        previewOpenCallback: () => {
          console.log("触发打开打印预览回调");
        },
        beforeOpenCallback: () => {
          console.log("触发打印工具打开前回调");
        },
        openCallback: () => {
          console.log("触发打开打印工具回调");
        },
        closeCallback: () => {
          console.log("触发关闭打印工具回调");
        },
        clickMounted: () => {
          console.log("触发点击打印回调");
        },
      },
    }
  },
  methods: {
    //调用打印工具前的回调函数
    beforeOpenCallback(vue) {
      vue.printLoading = true;
      console.log("打开之前");
    },
    //调用打印工具成功回调函数
    openCallback(vue) {
      vue.printLoading = false;
      console.log("执行了打印");
    },
    //关闭打印机的回调
    closeCallback(vue) {
      console.log("关闭了打印工具");
    },
  }
}


http://www.kler.cn/a/450913.html

相关文章:

  • 大语言模型学习工具及资源总结和落地应用
  • sqoop的参数有哪些?
  • 视频汇聚融合云平台Liveweb一站式解决视频资源管理痛点
  • 工厂防静电监控系统设备静电监控仪的关键作用
  • Deformable DETR:Deformable Transformers for End-to-End Object Detection论文学习
  • 取多个集合的交集
  • 消除视野盲区,保障行车安全--叉车四路环绕AI防撞系统
  • 迈向未来:.NET技术的持续创新与发展前景
  • 【华为OD-E卷-木板 100分(python、java、c++、js、c)】
  • Naive UI 分页组件二次封装
  • Dubbo简单总结
  • 【蓝桥杯——物联网设计与开发】基础模块8 - RTC
  • GitPuk安装配置指南
  • LEC: 基于Transformer中间层隐藏状态的高效特征提取与内容安全分类方法
  • 武汉做网站优化推广效果的科学评估方法
  • redis库基础知识
  • SpringBoot开发——Spring Boot 的9大类常用注解
  • 【XR】ATW
  • LeetCode 1705.吃苹果的最大数目:贪心(优先队列) - 清晰题解
  • Python+QQ邮箱调用定时监控——以网站监测为例
  • Z轴方向二维图像插值形成三维图像的算法及其优劣分析
  • Jmeter 分布式压测部署--常见坑以及解决方案
  • C++简明教程(10)(初识类)
  • acme ssl证书自动续签 nginx
  • 基于 kubeadm 安装 Kubernetes 集群的完整步骤
  • 在 Windows 系统上怎么看sqlserver的驱动版本呢