当前位置:首页 > VUE

vue页面实现打印功能

2026-01-22 04:38:11VUE

使用window.print()实现基础打印

在Vue组件中直接调用浏览器原生打印API是最简单的方式。通过window.print()会触发浏览器打印对话框,打印当前页面全部内容。

<template>
  <div>
    <button @click="handlePrint">打印页面</button>
    <div class="print-content">需要打印的内容区域</div>
  </div>
</template>

<script>
export default {
  methods: {
    handlePrint() {
      window.print()
    }
  }
}
</script>

<style>
@media print {
  /* 隐藏不需要打印的元素 */
  button {
    display: none;
  }

  /* 调整打印样式 */
  .print-content {
    font-size: 12pt;
  }
}
</style>

使用vue-print-nb插件

安装专门的Vue打印插件可以更灵活地控制打印内容:

npm install vue-print-nb --save

在项目中使用:

vue页面实现打印功能

import Print from 'vue-print-nb'

Vue.use(Print)

模板中使用v-print指令:

<template>
  <div>
    <button v-print="printObj">打印指定区域</button>
    <div id="printArea">
      <!-- 需要打印的内容 -->
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      printObj: {
        id: 'printArea',
        popTitle: '打印标题', // 打印标题
        extraCss: 'https://example.com/print.css', // 附加CSS
        extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>' // 附加HEAD
      }
    }
  }
}
</script>

打印样式优化

通过CSS媒体查询专门设置打印样式:

vue页面实现打印功能

@media print {
  body * {
    visibility: hidden;
  }

  #printSection, #printSection * {
    visibility: visible;
  }

  #printSection {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
  }

  /* 移除背景色和图片 */
  * {
    background-color: transparent !important;
    color: #000 !important;
    background-image: none !important;
  }

  /* 调整边距 */
  @page {
    size: A4;
    margin: 0;
  }
}

打印分页控制

使用CSS控制打印分页:

.page-break {
  page-break-after: always;
}

.avoid-break {
  page-break-inside: avoid;
}

生成PDF打印

使用html2pdf.js等库生成PDF:

import html2pdf from 'html2pdf.js'

export default {
  methods: {
    generatePDF() {
      const element = document.getElementById('pdf-content')
      const opt = {
        margin: 1,
        filename: 'document.pdf',
        image: { type: 'jpeg', quality: 0.98 },
        html2canvas: { scale: 2 },
        jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
      }

      html2pdf().from(element).set(opt).save()
    }
  }
}

标签: 页面功能
分享给朋友:

相关文章

vue实现账号注册功能

vue实现账号注册功能

注册功能实现步骤 前端部分(Vue.js) 创建注册表单组件 使用Vue的单文件组件结构,包含用户名、邮箱、密码等输入框,并添加表单验证逻辑。 <template> <form…

css如何制作页面模糊

css如何制作页面模糊

使用 backdrop-filter 属性 通过 backdrop-filter 属性可以直接为元素背后的区域添加模糊效果。该属性需要浏览器支持(如 Chrome、Edge、Safari)。示例代码:…

css制作音乐盒页面

css制作音乐盒页面

音乐盒页面设计思路 音乐盒页面通常需要结合音频播放功能与视觉设计。以下是实现一个基础音乐盒页面的关键步骤。 HTML结构搭建 基础HTML需包含音频播放器控件和播放列表: <!DOCTY…

vue实现名字查找功能

vue实现名字查找功能

实现名字查找功能 在Vue中实现名字查找功能,可以通过多种方式完成。以下是几种常见的实现方法: 使用v-model和computed属性 创建一个输入框,使用v-model绑定输入的值,通过com…

vue实现的页面

vue实现的页面

以下是基于 Vue.js 实现页面的核心方法和关键步骤,结合现代开发实践整理而成: 环境配置与项目初始化 使用 Vue CLI 或 Vite 创建项目,推荐选择 Vue 3 组合式 API 风格:…

vue修改功能实现

vue修改功能实现

Vue 修改功能的实现方法 修改功能是 CRUD 操作中的重要部分,在 Vue 中可以通过多种方式实现。以下是几种常见的实现方案: 数据绑定与表单处理 使用 v-model 实现双向数据绑定,快速获…