当前位置:首页 > VUE

vue实现标签打印

2026-01-17 14:35:28VUE

Vue 实现标签打印

在 Vue 中实现标签打印通常需要结合浏览器的打印功能和 CSS 控制打印样式。以下是几种常见的方法:

使用 window.print() 方法

创建一个专门用于打印的组件或页面,通过 window.print() 触发浏览器打印对话框。

<template>
  <div>
    <button @click="print">打印标签</button>
    <div class="print-content" ref="printContent">
      <!-- 标签内容 -->
      <div v-for="item in labels" :key="item.id" class="label">
        {{ item.text }}
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      labels: [
        { id: 1, text: '标签1' },
        { id: 2, text: '标签2' }
      ]
    }
  },
  methods: {
    print() {
      window.print()
    }
  }
}
</script>

<style>
@media print {
  body * {
    visibility: hidden;
  }
  .print-content, .print-content * {
    visibility: visible;
  }
  .print-content {
    position: absolute;
    left: 0;
    top: 0;
  }
}
.label {
  width: 50mm;
  height: 30mm;
  border: 1px dashed #ccc;
  margin: 5px;
  display: inline-block;
}
</style>

使用第三方库

对于更复杂的打印需求,可以使用专门的打印库如 vue-print-nb

安装库:

npm install vue-print-nb --save

使用示例:

<template>
  <div>
    <button v-print="printObj">打印标签</button>
    <div id="printContent">
      <!-- 标签内容 -->
      <div v-for="item in labels" :key="item.id" class="label">
        {{ item.text }}
      </div>
    </div>
  </div>
</template>

<script>
import print from 'vue-print-nb'
export default {
  directives: {
    print
  },
  data() {
    return {
      labels: [
        { id: 1, text: '标签1' },
        { id: 2, text: '标签2' }
      ],
      printObj: {
        id: 'printContent',
        popTitle: '标签打印'
      }
    }
  }
}
</script>

打印样式控制

通过 CSS 的 @media print 规则控制打印时的样式,确保标签布局正确。

@media print {
  @page {
    size: A4 landscape;
    margin: 0;
  }
  body {
    margin: 0;
    padding: 0;
  }
  .label {
    page-break-inside: avoid;
    break-inside: avoid;
  }
}

生成 PDF 打印

如果需要生成 PDF 再打印,可以使用 html2pdf.js 等库。

安装:

npm install html2pdf.js

使用示例:

<template>
  <div>
    <button @click="generatePDF">生成PDF并打印</button>
    <div id="pdfContent">
      <!-- 标签内容 -->
    </div>
  </div>
</template>

<script>
import html2pdf from 'html2pdf.js'
export default {
  methods: {
    generatePDF() {
      const element = document.getElementById('pdfContent')
      const opt = {
        margin: 10,
        filename: 'labels.pdf',
        image: { type: 'jpeg', quality: 0.98 },
        html2canvas: { scale: 2 },
        jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
      }
      html2pdf().from(element).set(opt).save()
    }
  }
}
</script>

以上方法可以根据实际需求选择使用,简单的标签打印使用 window.print() 配合 CSS 即可,复杂需求可考虑专门的打印库或 PDF 生成方案。

vue实现标签打印

标签: 标签vue
分享给朋友:

相关文章

vue登录业务的实现

vue登录业务的实现

实现登录业务的基本流程 在Vue中实现登录业务通常涉及前端界面设计、表单验证、API请求交互、状态管理以及路由控制等环节。以下是核心实现步骤: 登录表单设计与验证 创建包含用户名和密码输入框的登录组…

vue实现上移下移插件

vue实现上移下移插件

实现上移下移功能的 Vue 插件 在 Vue 中实现列表项的上移和下移功能,可以通过自定义指令或组件封装的方式完成。以下是两种常见实现方式: 基于数组操作的通用方法 通过操作数组索引实现元素位置交换…

vue实现倒计时抢券

vue实现倒计时抢券

Vue 实现倒计时抢券功能 核心逻辑 倒计时抢券功能需要结合时间计算、状态管理和界面交互。通过 Vue 的响应式特性和生命周期钩子,可以高效实现这一需求。 实现步骤 1. 数据准备 在 Vue 组件…

vue实现星星

vue实现星星

实现星星评分的Vue组件 使用Vue实现星星评分功能可以通过组件化方式完成,以下是一个完整的实现方案: 模板部分 <template> <div class="star-…

js实现vue

js实现vue

Vue.js 的基本实现方法 在 JavaScript 中实现 Vue.js 的功能,可以通过直接引入 Vue 库或使用现代构建工具(如 Vite 或 Webpack)。以下是几种常见的实现方式:…

vue组件实现

vue组件实现

Vue 组件实现基础 Vue 组件是 Vue.js 的核心特性之一,允许将 UI 拆分为独立、可复用的模块。组件的实现包括定义、注册、数据传递和生命周期管理等。 定义组件 组件可以通过单文件组件(…