当前位置:首页 > 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

在项目中使用:

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媒体查询专门设置打印样式:

@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:

vue页面实现打印功能

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 CLI或Vite创建一个新项目,安装必要依赖如vue-router和axios。项目结构建议包含components文件夹存放可复用组件,views文件夹存放页面级…

vue单页面实现登录

vue单页面实现登录

实现登录功能的基本步骤 在Vue单页面应用(SPA)中实现登录功能,通常需要结合前端和后端交互。以下是关键步骤和代码示例: 创建登录组件 开发一个独立的登录组件,包含表单元素如用户名和密码输入框,以…

h5实现登录页面跳转页面跳转页面跳转页面

h5实现登录页面跳转页面跳转页面跳转页面

实现登录页面跳转的方法 在H5中实现登录页面跳转可以通过多种方式完成,以下是一些常见的方法: 使用JavaScript的window.location方法 通过JavaScript的window.l…

h5实现页面跳转

h5实现页面跳转

使用 <a> 标签实现跳转 通过 HTML5 的 <a> 标签实现页面跳转是最基础的方法,适用于静态页面或简单的导航需求。示例代码如下: <a href="target…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在 s…

h5页面实现录音

h5页面实现录音

实现H5页面录音的方法 使用Web Audio API Web Audio API提供音频处理能力,结合getUserMedia可实现录音。核心步骤包括请求麦克风权限、创建音频上下文和处理音频流。…