vue实现打印页面
使用Vue实现页面打印功能
方法一:使用window.print()实现基础打印
在Vue组件中添加打印按钮,调用浏览器原生打印功能:
<template>
<button @click="printPage">打印页面</button>
</template>
<script>
export default {
methods: {
printPage() {
window.print()
}
}
}
</script>
方法二:打印特定区域内容
创建打印样式表,隐藏不需要打印的元素:

<style scoped>
@media print {
.no-print {
display: none;
}
}
</style>
<template>
<div class="print-content">需要打印的内容</div>
<div class="no-print">不需要打印的内容</div>
</template>
方法三:使用vue-print-nb插件
安装插件:
npm install vue-print-nb --save
在Vue中使用:

import Print from 'vue-print-nb'
Vue.use(Print)
<template>
<div id="printMe">
<!-- 打印内容 -->
</div>
<button v-print="'#printMe'">打印</button>
</template>
方法四:创建新窗口打印
通过新窗口实现更灵活的打印控制:
methods: {
printSpecificContent() {
const printWindow = window.open('', '_blank')
printWindow.document.write(`
<html>
<head>
<title>打印内容</title>
</head>
<body>
${document.getElementById('printContent').innerHTML}
</body>
</html>
`)
printWindow.document.close()
printWindow.focus()
printWindow.print()
printWindow.close()
}
}
方法五:使用CSS优化打印效果
添加专门的打印样式:
@media print {
body {
margin: 0;
padding: 0;
background: white;
}
@page {
size: A4;
margin: 1cm;
}
h1 {
page-break-before: always;
}
img {
max-width: 100% !important;
}
}
注意事项
- 测试不同浏览器的打印兼容性
- 考虑添加打印前的页面加载状态
- 处理打印时的分页问题
- 确保打印内容在不同尺寸纸张上的适应性
- 处理打印时的图片和图表清晰度问题
这些方法可以根据实际需求组合使用,实现更完善的打印功能。






