vue3+ts 使用vue-print-nb 打印功能【完美】

news/2024/7/6 3:37:24

安装

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>

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


http://lihuaxi.xjx100.cn/news/1698416.html

相关文章

“In Global,For China”,许战海咨询LOGO全面焕新

许战海咨询LOGO全面焕新&#xff0c;正式开启全球化战略! 作为一家起源于中国的全球性战略咨询公司&#xff0c;全新LOGO展现许战海咨询国际化企业形象&#xff0c;诠释出许战海咨询最新、最前沿的战略咨询理念“In Global&#xff0c;For China”(在全球&#xff0c;为中国)。…

高级软件工程师职业发展路径及适学人群

大数据赋能产业&#xff0c;改变人与场景的交互方式&#xff0c;随着大数据在各行各业融合应用的不断深化&#xff0c;预计2020年中国大数据市场市值将突破10000亿元。 未来发展&#xff0c;大数据应用范围越加宽广&#xff0c;包括&#xff1a;新零售、旅游、广告、电商…

挑战分布式架构,解密Java在业务场景下的高效应用面试题目介绍常用的通信方式有哪些请分别说明各自的特点和适用场景

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》作者 公众号:山峯草堂,非技术多篇文章,专注于天道酬勤的 Java 开发问题、中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 转载说明:务必注明来源(注明:…

常见漏洞危害总结

文章目录 ⽤⾃⼰的理解说明如下漏洞的危害跨站脚本测试&#xff08;XSS&#xff09;HTTP header测试服务器端请求伪造&#xff08;SSRF&#xff09;测试跨站请求伪造&#xff08;CSRF&#xff09;测试负值反冲敏感信息明⽂传输是否部署HTTPS传输短信验证码绕过测试短信验证码暴…

Leetcode 第 363 场周赛题解

Leetcode 第 363 场周赛题解 Leetcode 第 363 场周赛题解题目1&#xff1a;2859. 计算 K 置位下标对应元素的和思路代码复杂度分析 题目2&#xff1a;让所有学生保持开心的分组方法数思路&#xff1a;排序 枚举代码复杂度分析 题目3&#xff1a;最大合金数思路&#xff1a;二分…

【学习笔记】[ABC323G] Inversion of Tree

前置知识&#xff1a;矩阵树定理&#xff0c;特征多项式 省流&#xff1a;板子缝合题。可以复习一下线性代数的基本知识。 定义 P u > P v P_u>P_v Pu​>Pv​的边价值为 x x x&#xff0c; P u < P v P_u<P_v Pu​<Pv​的边价值为 1 1 1&#xff0c;那么我…

Jmeter测试关联接口

Jmeter用于接口测试时&#xff0c;后一个接口经常需要用到前一次接口返回的结果&#xff0c;本文主要介绍jmeter通过正则表达式提取器来实现接口关联的方式&#xff0c;可供参考。 一、实例场景&#xff1a; 有如下两个接口&#xff0c;通过正则表达式提取器&#xff0c;将第一…

【数据集资源】大数据资源-数据集下载方法-汇总

大概包含10个领域数据集&#xff1a; 金融 交通 商业 推荐系统 医疗健康 图像数据 视频数据 音频数据 自然语言处理 社会数据 处理后的科研和竞赛数据 1、huggingface的数据下载方式&#xff1a; 1.进入官网数据集列&#xff1a;Hugging Face – The AI community building the…