vue3使用vue3-print-nb打印

在 Vue 3 中使用 vue3-print-nb 实现打印功能,请按以下步骤操作:


1. 安装依赖

bash 复制代码
npm install vue3-print-nb
# 或
yarn add vue3-print-nb

2. 全局注册插件

main.js 中引入并注册:

javascript 复制代码
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');

3. 在组件中使用

通过指令 v-print 绑定打印区域:

vue 复制代码
<template>
  <div>
    <!-- 打印按钮 -->
    <button v-print="printOptions">打印</button>
    
    <!-- 需要打印的内容 -->
    <div id="printContent">
      <h1>打印标题</h1>
      <p>打印内容示例...</p>
    </div>
  </div>
</template>

<script setup>
const printOptions = {
  id: 'printContent',     // 要打印的DOM元素ID
  popTitle: '打印页标题',  // 打印页的标题(可选)
  extraCss: '',           // 额外CSS样式链接(可选)
  extraHead: ''           // 额外HTML头部内容(可选)
};
</script>

4. 自定义样式

在打印内容中添加专属样式:

vue 复制代码
<style scoped>
@media print {
  #printContent {
    padding: 20mm;
    font-size: 12pt;
  }
  button {
    display: none; /* 打印时隐藏按钮 */
  }
}
</style>

5. 完整示例

vue 复制代码
<template>
  <div>
    <button v-print="printConfig">打印当前页</button>
    <div id="printArea">
      <h2>订单详情</h2>
      <table>
        <tr><th>项目</th><th>金额</th></tr>
        <tr><td>商品A</td><td>¥100</td></tr>
        <tr><td>运费</td><td>¥10</td></tr>
      </table>
    </div>
  </div>
</template>

<script setup>
const printConfig = {
  id: 'printArea',
  popTitle: '订单_' + new Date().toLocaleDateString()
};
</script>

<style>
@media print {
  #printArea table {
    width: 100%;
    border-collapse: collapse;
  }
  #printArea th, #printArea td {
    border: 1px solid #000;
    padding: 8px;
  }
}
</style>

⚠️ 注意事项

  1. 浏览器兼容性:依赖浏览器原生打印功能,不同浏览器效果可能有差异
  2. 样式隔离 :通过 @media print 定义打印专用样式
  3. 动态内容 :确保打印前数据已完成渲染(可配合 nextTick 使用)
相关推荐
局外人LZ1 天前
Uniapp脚手架项目搭建,uniapp+vue3+uView pro+vite+pinia+sass
前端·uni-app·sass
爱上妖精的尾巴1 天前
8-5 WPS JS宏 match、search、replace、split支持正则表达式的字符串函数
开发语言·前端·javascript·wps·jsa
小温冲冲1 天前
通俗且全面精讲单例设计模式
开发语言·javascript·设计模式
意法半导体STM321 天前
【官方原创】FDCAN数据段波特率增加后发送失败的问题分析 LAT1617
javascript·网络·stm32·单片机·嵌入式硬件·安全
为什么不问问神奇的海螺呢丶1 天前
n9e categraf redis监控配置
前端·redis·bootstrap
云飞云共享云桌面1 天前
推荐一些适合10个SolidWorks设计共享算力的服务器硬件配置
运维·服务器·前端·数据库·人工智能
Liu.7741 天前
vue开发h5项目
vue.js
咔咔一顿操作1 天前
轻量无依赖!autoviwe 页面自适应组件实战:从安装到源码深度解析
javascript·arcgis·npm·css3·html5
刘联其1 天前
.net也可以用Electron开发跨平台的桌面程序了
前端·javascript·electron
韩曙亮1 天前
【jQuery】jQuery 选择器 ④ ( jQuery 筛选方法 | 方法分类场景 - 向下找后代、向上找祖先、同级找兄弟、范围限定查找 )
前端·javascript·jquery·jquery筛选方法