安装

npm i vue3-print-nb -s

我的版本 0.1.4
在这里插入图片描述

注册

import { createApp } from 'vue'
import pinia from './store'
import router from './router'
import './assets/css/main.scss'
import { globalRegister } from '@/global/register'
import 'ant-design-vue/es/message/style/css'
import App from './App.vue'
import print from 'vue3-print-nb' // 重要

// Vue.prototype.currency = currency
const app = createApp(App)
app.use(globalRegister)
app.use(pinia)
app.use(router)
app.use(print) // 重要

app.mount('#app')

使用

<template>
//   v-print="print" 重要
  <a-button key="submit" type="primary" v-print="print"
    ><check-circle-outlined />确定打印</a-button
  >
  <div class="print" id="printArea" style="margin-top: 0">
  。。。。。。。。。。。你的内容
  </div>
</template>

<script setup lang="ts">
const print = {
  id: 'printArea',
  popTitle: '配置页眉标题', // 打印配置页上方的标题
  extraHead: '', // 最上方的头部文字,附加在head标签上的额外标签,使用逗号分割
  preview: false, // 是否启动预览模式,默认是false
  previewTitle: '预览的标题', // 打印预览的标题
  previewPrintBtnLabel: '预览结束,开始打印', // 打印预览的标题下方的按钮文本,点击可进入打印
  zIndex: 20002, // 预览窗口的z-index,默认是20002,最好比默认值更高
  previewBeforeOpenCallback() {
    // console.log('正在加载预览窗口!')
    console.log(this)
  }, // 预览窗口打开之前的callback
  previewOpenCallback() {
    // console.log('已经加载完预览窗口,预览打开了!')
  }, // 预览窗口打开时的callback
  beforeOpenCallback() {
    // console.log('开始打印之前!')
  }, // 开始打印之前的callback
  openCallback() {
    // console.log('执行打印了!')
  }, // 调用打印时的callback
  closeCallback() {
  }, // 关闭打印的callback(无法区分确认or取消)
  clickMounted() {
    // 关闭打印
    isShowPrint.value = true
    document.title = oldTitle.value

    emit('clickPrint')
  },
  // url: 'http://localhost:8080/', // 打印指定的URL,确保同源策略相同
  // asyncUrl (reslove) {
  //   setTimeout(() => {
  //     reslove('http://localhost:8080/')
  //   }, 2000)
  // },
  standard: '',
  extarCss: ''
}

</script>
<style media="print">
@page {
  size: landscape;
  margin: 0em 0em;
  margin-top: 3em;
  margin-bottom: 5.5em;
}
@-moz-document url-prefix() {
  @page {
    size: landscape;
    margin: 0em 0;
    margin-top: 3em;
    margin-bottom: 4em;
  }
}
html {
  background-color: #ffffff;
  height: auto;
  margin: 0px;
}
.page {
  overflow: visible !important;
}
</style>

代码经过删减,如果使用有问题,可与我联系

Logo

前往低代码交流专区

更多推荐