我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue怎么打印浏览器页面功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue怎么打印浏览器页面功能

这篇文章主要介绍“vue怎么打印浏览器页面功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么打印浏览器页面功能”文章能帮助大家解决问题。

方法一:通过npm 安装插件

1,安装 npm install vue-print-nb --save

2,引入 安装好以后在main.js文件中引入

     import Print from 'vue-print-nb'

Vue.use(Print); //注册

3,现在就可以使用了

div id="printTest" >      <p>明月照于山间</p>      <p>清风来于江上 </p>    </div>    <button v-print="'#printTest'">打印</button>

如需通过链接地址打印:window.location.href = airway_bill; airway_bill为链接地址。

如果内容打印不全,在打印操作时点击更多设置,然后设置缩放。

方法一使用时可能会遇到内容只有一页,但是点击打印会打印2张的情况。解决办法:查看定义的元素高度是否有被设置为100%,或html高度被设置成100%,如果有去掉即可。

方法二:手动下载插件到本地

在class="lazy" data-src下新建文件夹plugs,将下载好的print.js放入plugs文件夹下

在main.js中引入

print.js 里的代码

//print.js 里的代码// 打印类属性、方法定义const Print =function(dom, options) {    if (!(this instanceof Print)) return new Print(dom, options);      this.options = this.extend({      'noPrint': '.no-print'    }, options);      if ((typeof dom) === "string") {      this.dom = document.querySelector(dom);    } else {      this.dom = dom;    }      this.init();  };  Print.prototype = {      init: function () {      var content = this.getStyle() + this.getHtml();      this.writeIframe(content);    },        extend: function (obj, obj2) {      for (var k in obj2) {        obj[k] = obj2[k];      }      return obj;    },      getStyle: function () {      var str = "",        styles = document.querySelectorAll('style,link');      for (var i = 0; i < styles.length; i++) {        str += styles[i].outerHTML;      }      str += "<style>" + (this.options.noPrint ? this.options.noPrint : '.no-print') + "{display:none;}</style>";        return str;    },      getHtml: function () {      var inputs = document.querySelectorAll('input');      var textareas = document.querySelectorAll('textarea');      var selects = document.querySelectorAll('select');        for (var k in inputs) {        if (inputs[k].type == "checkbox" || inputs[k].type == "radio") {          if (inputs[k].checked == true) {            inputs[k].setAttribute('checked', "checked")          } else {            inputs[k].removeAttribute('checked')          }        } else if (inputs[k].type == "text") {          inputs[k].setAttribute('value', inputs[k].value)        }      }        for (var k2 in textareas) {        if (textareas[k2].type == 'textarea') {          textareas[k2].innerHTML = textareas[k2].value        }      }        for (var k3 in selects) {        if (selects[k3].type == 'select-one') {          var child = selects[k3].children;          for (var i in child) {            if (child[i].tagName == 'OPTION') {              if (child[i].selected == true) {                child[i].setAttribute('selected', "selected")              } else {                child[i].removeAttribute('selected')              }            }          }        }      }        return this.dom.outerHTML;    },      writeIframe: function (content) {      var w, doc, iframe = document.createElement('iframe'),          f = document.body.appendChild(iframe);      iframe.id = "myIframe";      iframe.style = "position:absolute;width:0;height:0;top:-10px;left:-10px;";            w = f.contentWindow || f.contentDocument;      doc = f.contentDocument || f.contentWindow.document;      doc.open();      doc.write(content);      doc.close();      this.toPrint(w);            setTimeout(function () {        document.body.removeChild(iframe)      }, 100)    },        toPrint: function (frameWindow) {      try {        setTimeout(function () {          frameWindow.focus();          try {            if (!frameWindow.document.execCommand('print', false, null)) {              frameWindow.print();            }          } catch (e) {            frameWindow.print();          }          frameWindow.close();        }, 10);      } catch (err) {        console.log('err', err);      }    }  };    const MyPlugin = {}  MyPlugin.install = function (Vue, options) {    Vue.prototype.$print = Print  }    export default MyPlugin

main.js里引入

import Print from './plugs/print'Vue.use(Print)

使用

<template>    <div>        <!-- 点击按钮打印 -->        <el-button type="primary" @click="printDemo">点击打印</el-button>                <!--  <div ref="print">            <h2>这里是打印内容</h2>        </div>-->        <img class="printclass="lazy" data-srcclass" ref='print' :class="lazy" data-src="printclass="lazy" data-src"/>    </div>    </template><script>export default {    data(){        return {}    },    methods: {        // 点击打印        printDemo(){            setTimeout(() => {                this.$print(this.$refs.print)            }, 100);        }    },    mounted() {    }}

注意事项 需使用ref获取dom节点,若直接通过id或class获取则webpack打包部署后打印内容为空

指定不打印区域

方法1. 添加no-print样式类

不要打印我

方法2. 自定义类名

不要打印我

this. print (this . print(this. print(this.refs.print,{‘no-print':‘.do-not-print-me-xxx'}) // 使用

如果图片出不来 打印出不来 等情况

参考下面代码

const res2 = await fnApi(orderId); let myBlob = new Blob([res2.data], { type: 'image/jpeg'});        var href = URL.createObjectURL(myBlob); // 创建对象超链接        // 此时拿到图片地址 href,后面直接使用该地址即可        let img = new Image();        img.class="lazy" data-src = href;        img.onload = () => {          this.printclass="lazy" data-src = href;          this.$nextTick(() => {            this.mypirntFN();          })        }

接口别忘了加类型

vue怎么打印浏览器页面功能

Ps:

一,可能遇到的问题及解决方案

①图片占位置 ---------让它脱离文档流( position: absolute; 不要用fixed 这样内容多的时候只打印第一页)

②页面不想展示打印内容 只打印;------- 给它 z-index:-1 (display:none 的话打印内容也没有)

目前解决不了 跳过打印预览直接打印功能 

关于“vue怎么打印浏览器页面功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue怎么打印浏览器页面功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue怎么打印浏览器页面功能

这篇文章主要介绍“vue怎么打印浏览器页面功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么打印浏览器页面功能”文章能帮助大家解决问题。方法一:通过npm 安装插件1,安装 npm ins
2023-07-06

vue打印浏览器页面功能的两种实现方法

这篇文章主要给大家介绍了关于vue打印浏览器页面功能的两种实现方法,这个功能其实也是自己学习到的,做完也有一段时间了,一直想记录总结一下,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-05-15

vue中使用pdfjs-dist + turnjs实现页面的翻书浏览功能

这篇文章主要介绍了vue中使用pdfjs-dist + turnjs实现页面的翻书浏览,通过本文学习我们知道了pdfjs-dist的工作原理是把获取到的pbf的文件的数据流,利用canvas转换成图片,本文通过实例代码详解讲解,需要的朋友可以参考下
2022-11-13

Win10系统中怎么设置Edge浏览器标签页预览功能?

Win10内置的Edge浏览器的标签页预览功能算是比较实用,不过一般用户并没有对这项功能进行设置的接口。但是想想就知道,Windows有个强大的工具叫做“注册表”,可以说想设什么就设什么。对于这项功能来说,我们认为调
2023-05-21

怎么在vue项目中调用浏览器分享功能

怎么在vue项目中调用浏览器分享功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。为什么要使用VueVue是一款友好的、多用途且高性能的JavaScript框架,使用vue
2023-06-14

VUE怎么利用vue-print-nb实现打印功能

这篇文章主要讲解了“VUE怎么利用vue-print-nb实现打印功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VUE怎么利用vue-print-nb实现打印功能”吧!一、安装vue-p
2023-06-30

Win10预览版10051怎么用斯巴达浏览器内置IE打开页面?

上周末Windows 10一python个新版本泄露,包含多个升级之后的应用程序,其中斯巴达浏览器已经获得了一些新功能,比如内建使用Internet jsExplorer浏览器打开链接的功能。此功能是有点古怪,在微软大力推广斯巴达浏览器的时
2023-06-13

C#中怎么判断浏览器功能

今天就跟大家聊聊有关C#中怎么判断浏览器功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C#判断浏览器功能的分析和解决:我们首先用 JavaScript 建立一个Cookie,然后
2023-06-17

浏览器Cookie功能被禁怎么办

这篇文章主要为大家展示了“浏览器Cookie功能被禁怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“浏览器Cookie功能被禁怎么办”这篇文章吧。1、鼠标点击设置按钮,选择Internet选
2023-06-28

CSS怎么实现QQ浏览器功能

这篇文章将为大家详细讲解有关CSS怎么实现QQ浏览器功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。知识点1.结合fullpage.js实现全屏滚动2.CSS中linear-gradient() 函数用
2023-06-08

Vue怎么用插件实现打印功能

这篇文章主要介绍“Vue怎么用插件实现打印功能”,在日常操作中,相信很多人在Vue怎么用插件实现打印功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue怎么用插件实现打印功能”的疑惑有所帮助!接下来,请跟
2023-07-05

C#怎么实现调用浏览器的功能

本篇内容主要讲解“C#怎么实现调用浏览器的功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么实现调用浏览器的功能”吧!C#调用浏览器之调用IE:System.Diagnostics.Pr
2023-06-17

win7中IE浏览器打不开网页怎么解决

这篇“win7中IE浏览器打不开网页怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win7中IE浏览器打不开网页怎么
2023-06-28

win10系统IE浏览器打不开网页怎么办

这篇文章主要为大家展示了“win10系统IE浏览器打不开网页怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“win10系统IE浏览器打不开网页怎么办”这篇文章吧。1.登录到系统桌面,点击打开
2023-06-28

windows中怎么把360浏览器网页放到桌面

本篇内容介绍了“windows中怎么把360浏览器网页放到桌面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!把360浏览器网页放到桌面1、进
2023-07-01

Win10预览版14372中Edge浏览器怎么使用印象笔记剪藏网页?

在新升级的Windows10-10372版系统中,增加了Microsoft Edge浏览器新的扩展:Evernote Web Clipper(印象笔记·剪藏)功能。这项扩展功能,可以帮助我们剪切网页并保存在印象笔记中,以后如果
2023-05-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录