当前位置:首页 > VUE

vue前端实现打印功能

2026-02-09 15:59:53VUE

vue前端实现打印功能的方法

使用window.print()方法

在Vue中可以通过调用浏览器原生API window.print() 实现打印功能。这种方法简单直接,但打印内容为整个页面。

methods: {
  handlePrint() {
    window.print()
  }
}

打印指定区域内容

若只需打印页面特定区域,可通过CSS控制隐藏非打印内容,或新建iframe实现局部打印。

printPartial() {
  const printContent = document.getElementById('printArea').innerHTML
  const originalContent = document.body.innerHTML
  document.body.innerHTML = printContent
  window.print()
  document.body.innerHTML = originalContent
}

使用vue-print-nb插件

vue-print-nb是专为Vue设计的打印插件,支持更灵活的打印配置。

安装:

npm install vue-print-nb --save

使用:

import Print from 'vue-print-nb'
Vue.use(Print)

<template>
  <div id="printMe">
    <!-- 打印内容 -->
  </div>
  <button v-print="'#printMe'">打印</button>
</template>

使用html2canvas+jspdf实现PDF打印

此方案先将DOM转为canvas,再生成PDF进行打印。

安装依赖:

npm install html2canvas jspdf --save

实现代码:

import html2canvas from 'html2canvas'
import jsPDF from 'jspdf'

export default {
  methods: {
    async printPDF() {
      const element = document.getElementById('pdfContent')
      const canvas = await html2canvas(element)
      const imgData = canvas.toDataURL('image/png')
      const pdf = new jsPDF()
      pdf.addImage(imgData, 'PNG', 0, 0)
      pdf.save('document.pdf')
    }
  }
}

打印样式控制

通过@media print媒体查询可自定义打印样式:

vue前端实现打印功能

@media print {
  body * {
    visibility: hidden;
  }
  #printArea, #printArea * {
    visibility: visible;
  }
  #printArea {
    position: absolute;
    left: 0;
    top: 0;
  }
}

注意事项

  • 打印内容需提前渲染到DOM
  • 复杂表格建议使用table布局避免分页问题
  • 图片打印需确保已完全加载
  • 移动端打印体验较差,建议PC端使用

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

相关文章

vue实现发送值接受值

vue实现发送值接受值

Vue 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <template&g…

vue实现拖放

vue实现拖放

Vue 实现拖放功能 Vue 中实现拖放功能通常可以通过 HTML5 的原生拖放 API 或第三方库(如 vuedraggable)来实现。以下是两种方法的详细说明。 使用 HTML5 原生拖放 A…

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

通过vue实现

通过vue实现

Vue 实现方法 安装 Vue 确保已安装 Node.js 和 npm,通过以下命令安装 Vue CLI: npm install -g @vue/cli 创建 Vue 项目 使用 Vue CLI…

vue实现影院

vue实现影院

Vue实现影院功能的基本思路 使用Vue框架开发影院功能需要结合前端组件化开发、状态管理以及后端API交互。以下是关键实现步骤: 影院页面布局设计 影院页面通常分为顶部导航栏、影院列表区域和底部导航…

vue 实现loading

vue 实现loading

Vue 实现 Loading 的方法 使用 v-if 和 v-show 控制显示 在 Vue 中可以通过 v-if 或 v-show 控制 loading 组件的显示与隐藏。v-if 会动态创建或销毁…