首页 > 其他分享 >vue3 页面打印 vue3-print-nb

vue3 页面打印 vue3-print-nb

时间:2023-05-16 14:35:19浏览次数:42  
标签:vue nb 打印 binding value vue3 print

页面打印效果图:
之前使用 vue2 用的是 vue-print-nb
现在项目是 vue3 组件用的是 vue3-print-nb
使用方法 安装 npm i vue3-print-nb --save 或者 yarn add vue3-print-nb
在 main.js 中引入 import { createApp } from "vue"; import App from "./App.vue"; import print from "vue3-print-nb";
const app = createApp(App); app.use(print);
组件中使用 print.vue

<template>
    <div>
        <div id="printContent">
        ....
        打印内容
        </div>
        <a-button v-print="printObj" type="primary">打印</a-button>
    </div>
</template>

<script>
export default {
    name: "print",
    setup() {
        const printObj = {
            id: "printContent",
            popTitle: "页面打印",
        };
        return {
            printObj
        }
    }
}
</script>
<style>
/* 去掉页脚 */
@page {
  size: auto;
  margin: 15mm auto 5mm;
}
printObj支持的API ids: id, // * 局部打印必传入id url: binding.value.url, // 打印指定的网址,这里不能跟id共存 如果共存id的优先级会比较高 standard: "", // 文档类型,默认是html5,可选 html5,loose,strict extraHead: binding.value.extraHead, // 附加在head标签上的额外标签,使用逗号分隔 extraCss: binding.value.extraCss, // 额外的css连接,多个逗号分开 previewTitle: binding.value.previewTitle || "打印预览", // 打印预览的标题 zIndex: binding.value.zIndex || 20002, // 预览窗口的z-index previewPrintBtnLabel: binding.value.previewPrintBtnLabel || "打印", // 打印预览的标题 popTitle: binding.value.popTitle, // title的标题 preview: binding.value.preview || false, // 是否启动预览模式 asyncUrl: binding.value.asyncUrl, previewBeforeOpenCallback() { // 预览窗口打开之前的callback binding.value.previewBeforeOpenCallback && binding.value.previewBeforeOpenCallback(vue); }, previewOpenCallback() { // 预览窗口打开之后的callback binding.value.previewOpenCallback && binding.value.previewOpenCallback(vue); }, openCallback() { // 调用打印之后的回调事件 binding.value.openCallback && binding.value.openCallback(vue); }, closeCallback() { binding.value.closeCallback && binding.value.closeCallback(vue); }, beforeOpenCallback() { binding.value.beforeOpenCallback && binding.value.beforeOpenCallback(vue); },
这个vue3版本的打印组件,npm包使用的是打包压缩后的代码, 之前vue-print-nb里面有源码组件 不过一般的打印需求基本满足,如果需要改动源码实现功能的 也可以将vue-print-nb源码放到项目中,即print里面的代码
如:
只是要改动一下,vue3自定义指令和vue2自定义指令不太一样,将print.js中的 bind(el, binding, vnode) {} 函数修改为 mounted: (el, binding, vnode) => {}, 去掉vue.$nextTick, 还要注意替换main.js文件里的print引用文件地址 就可以使用了

标签:vue,nb,打印,binding,value,vue3,print
From: https://www.cnblogs.com/steamed-twisted-roll/p/17405527.html

相关文章

  • 电机马达PMSM电机负载观测转矩前馈simulink 基于Luenberge
    电机马达PMSM电机负载观测转矩前馈simulink基于Luenberger降阶状态观测器,包含PMSM数学模型,PMSM双闭环PI矢量控制,并添加了前馈控制,采用SVPWM调制。ID:4775670307418860......
  • element-plus + VUE3 项目 build 之后 el-cascader无法选中而且导致整个网页卡顿
    cascader不能用v-model接收值,需要改为model-value方式<el-cascadermodel-value="selRegion":options="RegionTreeCascader":show-all-levels="true"separator="-":props="{checkStrictly:true,expandTrigger:'hove......
  • vue3+ swiper8
    swiper是一个非常好用的图片切换组件,但是vue3+swiper8版本的文档看上去会有点懵逼(一部分是因为版本太多了,一部分是因为很少用)此处记录下我的使用方法:安装:npmiswiper按照官网来使用:html部分:(基本上常用的也就这些啦,在复杂的就真的要去啃书啦)<swiper//在swiper......
  • unbuntu 火狐安装flash插件 Install Adobe Flash Player In Ubuntu 13.10,13.04,12.10
    InstallAdobeFlashPlayer PressCtrl+Alt+TforopenTerminalandtrythefollowingcommands;sudoadd-apt-repository"debhttp://archive.canonical.com/$(lsb_release-sc)partner"sudoapt-getupdate&&sudoapt-getinstallflashplugin......
  • vue3.0基础
    定义响应式数据ref(可以定义引用类型和基础类型变量)constdata=ref({key:value})constdata=ref(0)还可以获取定义了ref属性的domconstrefName=ref(null)//refName必须与定义的ref属性一致reactive(只能定义引用类型变量)constdata=reactive({key:value})计算器属......
  • 使用vscode搭建 vue3 + vite 项目, 部署到服务器 js css文件路径访问不到的问题
    使用vscode搭建vue3+vite项目,本地没有问题,build后部署到服务器,默认访问的是域名下的jscss文件,导致相对路径无法访问到。在vite.config.js中添加 :base: "./" 后就可以了。原因:默认的是 "/",  而我部署的路径是:/其他路径/项目名/dist/ ,所以把base改为./后......
  • Python学习之七_input和print
    Python学习之七_input和print摘要python3之后函数必须带()了因为我开始学习的比较晚,所以准备Python3开始学起前面主要是模仿别人的代码进行学习后续慢慢学习使用python调用ebpf等内容.这里简单先总结一下input和print的函数.作为一个学习总结print和inputprint......
  • spring框架_@AutoWiredAnnotationBeanPostProcessor执行分析
    AutoWiredAnnotationBeanPostProcessor执行依赖注入的时候(解析@Autowired)调用了postProcessProperties方法这个方法首先要找到哪些属性,方法被标注了@Autowired注解,把这些数据添加到InjectMetadata中,然后调用metadata.inject方法按类型进行依赖注入,注入时按类型进行查找按类......
  • vue3使用 i18n
    官网 https://vue-i18n.intlify.dev/guide/installation.html安装npminstallvue-i18n 新建语言文件如 //lang/zh.tsexportdefault{   login:{     login:'登录',      userName:'用户名',     password:'密码',......
  • Python爱彼迎Airbnb新用户体验数据XGBoost、随机森林预测
    全文链接:http://tecdat.cn/?p=32380原文出处:拓端数据部落公众号分析师:ZhuhuaHuang在多项用户数据中寻找与预测值相关的属性。查看各个特征的分布与特征之间的关联。分析用户数据,查看特定人群的使用习惯进行产品优化。最后选择合适的模型与参数来进行预测。解决方案任务/目标......