1.安装,我用的是vue3的。
npm install vue3-print-nb --save
2.注册。
//在.d.ts里面声明,不然全局引入会报错
declare module 'vue3-print-nb';
// Global instruction全局引入 在main.ts中
import { createApp } from 'vue';
import App from './App.vue';
import print from 'vue3-print-nb';
const app = createApp(App);
app.use(print)
app.mount('#app');
// Local instruction 在要使用的页面中引入
import print from 'vue3-print-nb'
directives: {
print
}
3.使用。
具体自己去看:https://www.npmjs.com/package/vue-print-nb
注意:如果你有好几个页面都用到打印,打印内容的id不要设置为一样的。
一些问题
1.如果打印时候的样式要不一样,可以单独设置
<style lang="less" scoped>
@media print {
//打印的样式
//隐藏页眉页尾
@page {
margin: 3mm;
size: auto;
}
//打印的时候表格有滚动条怎么办
::v-deep .ant-table {
overflow: visible !important; /* 确保表格滚动条不隐藏 */
}
::v-deep .ant-table-body {
max-height: max-content !important;
overflow: visible !important;
table-layout: fixed; /* 确保表格滚动条不隐藏 */
}
::v-deep .ant-table-scroll {
table-layout: auto; /* 恢复自动表格布局 */
}
}
</style>
2.打印表格每页都有表头。
我用的表格组件是ant table,不要把id放在table上,放在包裹table的div上,这样打印就算表格行太多跨页,每页都会有表头。
3.win7的谷歌浏览器设置打印表格内容超过宽度换行没有效果,表格内容太多就打印不全,不知道为什么。
4.打印的时候多了一页空白页。
可能是打印内容的最外层有margin或者padding