vue 实现打印
Vue 实现打印功能的方法
在Vue项目中实现打印功能可以通过多种方式完成,以下是几种常见的实现方法:
使用window.print()方法
直接调用浏览器的打印API是最简单的方式。创建一个打印按钮,绑定点击事件触发window.print()。
<template>
<button @click="handlePrint">打印</button>
</template>
<script>
export default {
methods: {
handlePrint() {
window.print();
}
}
}
</script>
使用vue-print-nb插件
vue-print-nb是一个专门为Vue设计的打印插件,使用简单且功能强大。
安装插件:
npm install vue-print-nb --save
在Vue中使用:
import Print from 'vue-print-nb'
Vue.use(Print)
<template>
<button v-print="printObj">打印</button>
<div id="printContent">
<!-- 打印内容 -->
</div>
</template>
<script>
export default {
data() {
return {
printObj: {
id: 'printContent',
popTitle: '打印标题'
}
}
}
}
</script>
自定义打印样式
通过CSS控制打印内容的显示效果,可以隐藏不需要打印的元素。
@media print {
.no-print {
display: none;
}
.print-only {
display: block;
}
}
打印特定区域
使用iframe或新窗口实现局部打印。

methods: {
printSection(id) {
const content = document.getElementById(id).innerHTML;
const originalContent = document.body.innerHTML;
document.body.innerHTML = content;
window.print();
document.body.innerHTML = originalContent;
}
}
打印优化技巧
- 使用
@media print媒体查询优化打印样式 - 设置页面边距:
@page { margin: 0; } - 控制分页:
page-break-before: always; - 隐藏导航栏和按钮等不需要打印的元素
注意事项
- 打印内容需要提前渲染到DOM中
- 复杂表格可能需要特殊处理分页问题
- 图片打印需要确保已完全加载
- 跨浏览器兼容性测试很重要
以上方法可以根据具体需求选择使用,简单的打印需求使用原生API即可,复杂需求可以考虑使用专门插件或自定义解决方案。






