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 使用)
相关推荐
cyclv1 小时前
无网络地图展示轨迹,地图瓦片下载,绘制管线
前端·javascript
土豆12501 小时前
Tauri 入门与实践:用 Rust 构建你的下一个桌面应用
前端·rust
惜茶2 小时前
vue+SpringBoot(前后端交互)
java·vue.js·spring boot
小陈工3 小时前
2026年4月2日技术资讯洞察:数据库融合革命、端侧AI突破与脑机接口产业化
开发语言·前端·数据库·人工智能·python·安全
IT_陈寒3 小时前
Vue的这个响应式问题,坑了我整整两小时
前端·人工智能·后端
HIT_Weston3 小时前
41、【Agent】【OpenCode】本地代理分析(五)
javascript·人工智能·opencode
C澒3 小时前
AI 生码:A 类生码方案架构升级
前端·ai编程
前端Hardy4 小时前
前端必看!LocalStorage这么用,再也不踩坑(多框架通用,直接复制)
前端·javascript·面试
前端Hardy4 小时前
前端必看!前端路由守卫这么写,再也不担心权限混乱(Vue/React通用)
前端·javascript·面试
Lee川4 小时前
从零构建现代化登录界面:React + Tailwind CSS 前端工程实践
前端·react.js