Vue3前端做打印页面信息实现打印功能(打印界面某个部分)

 更新时间:2025年02月19日 11:14:17   作者:KT553  
这篇文章主要介绍了如何使用vue3-print-nb依赖在Vue 3项目中实现页面打印功能,提供了完整的代码示例,大家可以根据项目需求选择合适的打印方法,需要的朋友可以参考下

一、先看效果:

二、使用的依赖:

使用的是:vue3-print-nb

版本号"vue3-print-nb": "^0.1.4",

npm install vue3-print-nb

三、注册使用:

下好依赖后在项目里的 main.js 文件里面注册使用一下

import print from 'vue3-print-nb'
app.use(print);

四、打印页面代码:

通过 v-print="printInfoObj" 自定义指令绑定打印的按钮。

需要打印的区域通过使用 id="printInfo"  绑定。

完整代码:

<template>
  <el-button type="primary" v-print="printInfoObj">打印</el-button>

  <!-- 需要打印的区域 -->
  <div class="print_info_box" id="printInfo">
    <div class="title_box">收货人信息表</div>
    <div>
      <el-row class="public">
        <el-col :span="12">
          <span>收  货  人:</span>
          <span>张三三</span>
        </el-col>
        <el-col :span="12">
          <span>下单日期:</span>
          <span>2024-12-05 14:32:55</span>
        </el-col>
      </el-row>
      <el-row class="public">
        <el-col :span="12">
          <span>收货地址:</span>
          <span>北京市-朝阳区-188号</span>
        </el-col>
        <el-col :span="12">
          <span>订单编号:</span>
          <span>8564795214986528</span>
        </el-col>
      </el-row>
    </div>
    <table border="1" cellspacing="0" width="100%" class="tableStyle">
      <tr height="60">
        <td>商品</td>
        <td colspan="2">规格</td>
        <td>合计</td>
      </tr>
      <tr height="50">
        <td>连衣裙</td>
        <td>白色*5</td>
        <td>粉色*15</td>
        <td>20</td>
      </tr>
      <tr height="50">
        <td>牛仔裤</td>
        <td>黑色*13</td>
        <td>蓝色*19</td>
        <td>32</td>
      </tr>
      <tr height="50">
        <td>冲锋衣</td>
        <td>黑色*3</td>
        <td>白色*1</td>
        <td>4</td>
      </tr>
      <tr height="50">
        <td colspan="3">总计</td>
        <td>56</td>
      </tr>
    </table>
    <div>
      <el-row class="public">
        <el-col :span="6">
          <span>调配人:</span>
          <span>________</span>
        </el-col>
        <el-col :span="6">
          <span>核对人:</span>
          <span>________</span>
        </el-col>
        <el-col :span="6">
          <span>对接人:</span>
          <span>________</span>
        </el-col>
        <el-col :span="6">
          <span>发货人:</span>
          <span>________</span>
        </el-col>
      </el-row>
    </div>
  </div>
</template>

<script setup>
// 打印区域配置对象
const printInfoObj = {
  id: "printInfo",
  popTitle: "收货人信息表", // 打印页面的页眉
  preview: false,  // 是否开启预览
  beforeOpenCallback(vue) {
    // console.log('触发打印工具打开前回调')
    vue.printLoading = true;
  },
  openCallback(vue) {
    // console.log('触发打印工具打开的回调')
    vue.printLoading = false;
  },
  closeCallback() {
    // console.log('触发关闭打印工具回调')
  },
  previewBeforeOpenCallback() {
    // console.log('触发预览前回调')
  },
  previewOpenCallback() {
    // console.log('触发预览的回调')
  },
};
</script>

<style lang="less" scoped>
// 去掉页眉页脚
// @page {
//   size: auto;
//   margin: 0mm;
// }

// 隐藏左下方页脚URL链接
// @page {
//   size: A4(JIS);
//   margin: 10mm 18mm;
// }

.print_info_box {
  padding: 25px 50px;

  .title_box {
    text-align: center;
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 30px;
  }

  .tableStyle {
    font-size: 14px;
    color: #000;
    text-align: center;
    margin-bottom: 30px;
  }

  .public {
    margin-bottom: 15px;
  }
}
</style>

五、欢迎参考:

打印的方式很多,大家选择适合自己项目的即可

到此这篇关于Vue3前端做打印页面信息实现打印功能的文章就介绍到这了,更多相关Vue3前端打印功能内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue开发中出现Loading Chunk Failed的问题解决

    Vue开发中出现Loading Chunk Failed的问题解决

    本文主要介绍了Vue开发中出现Loading Chunk Failed的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • 详解keep-alive组件缓存

    详解keep-alive组件缓存

    keep-alive是Vue中一个非常有用的特性,它可以帮助我们避免重复渲染和减少组件的渲染次数,从而提高应用程序的性能,本文给大家介绍keep-alive组件缓存的相关知识,感兴趣的朋友一起看看吧
    2024-01-01
  • vue3组合式API获取子组件属性和方法的代码实例

    vue3组合式API获取子组件属性和方法的代码实例

    这篇文章主要为大家详细介绍了vue3组合式API获取子组件属性和方法的代码实例,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • vue项目中created()被调用多次的踩坑实战

    vue项目中created()被调用多次的踩坑实战

    在vue项目中我在created中调用了两次get数据请求,所以下面这篇文章主要给大家介绍了关于vue项目中created()被调用多次的踩坑实战,需要的朋友可以参考下
    2023-03-03
  • vue同时使用element ui和ant design vue实现方式

    vue同时使用element ui和ant design vue实现方式

    文章总结:作者在 Vue 项目中同时使用了 Element UI 和 Ant Design Vue,遇到了全局引入 Ant Design Vue 时的问题,解决方案是根据项目是 Vue2 和 Ant Design Vue 版本1.7.2,按照官方文档正确引入,这样可以正常启动项目并使用组件
    2025-12-12
  • Vue.js自定义指令学习使用详解

    Vue.js自定义指令学习使用详解

    这篇文章主要为大家详细介绍了Vue.js自定义指令的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Vue3.0监听器watch与watchEffect详解

    Vue3.0监听器watch与watchEffect详解

    在 Vue 3 中,watch 仍然是一种用于监听数据变化并执行相应操作的方式,不过在组合式 API 中,watch 的使用方式与选项式 API 略有不同,这篇文章主要介绍了Vue3.0监听器watch与watchEffect,需要的朋友可以参考下
    2023-12-12
  • van-dialog弹窗异步关闭功能-校验表单实现

    van-dialog弹窗异步关闭功能-校验表单实现

    有时候我们需要通过弹窗去处理表单数据,在原生微信小程序配合vant组件中有多种方式实现,其中UI美观度最高的就是通过van-dialog嵌套表单实现,这篇文章主要介绍了van-dialog弹窗异步关闭-校验表单,需要的朋友可以参考下
    2023-11-11
  • vue 在单页面应用里使用二级套嵌路由

    vue 在单页面应用里使用二级套嵌路由

    这篇文章主要介绍了vue 在单页面应用里使用二级套嵌路由,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2020-12-12
  • 基于Vue3+UniApp在单个页面实现固定TabBar的多种方式

    基于Vue3+UniApp在单个页面实现固定TabBar的多种方式

    tabBar 是移动端应用常见的页面效果,用于实现多页面的快速切换,本文给大家介绍了如何基于Vue3+UniApp在单个页面实现固定TabBar的多种方式,需要的朋友可以参考下
    2025-03-03

最新评论