返回顶部
首页 > 资讯 > 精选 >vue怎么打印浏览器页面功能
  • 778
分享到

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

2023-07-06 02:07:02 778人浏览 八月长安
摘要

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

这篇文章主要介绍“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%,如果有去掉即可。

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

在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="printsrcclass" ref='print' :src="printsrc"/>    </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.src = href;        img.onload = () => {          this.printsrc = href;          this.$nextTick(() => {            this.mypirntFN();          })        }

接口别忘了加类型

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

Ps:

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

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

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

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

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

--结束END--

本文标题: vue怎么打印浏览器页面功能

本文链接: https://lsjlt.com/news/357492.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue怎么打印浏览器页面功能
    这篇文章主要介绍“vue怎么打印浏览器页面功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么打印浏览器页面功能”文章能帮助大家解决问题。方法一:通过npm 安装插件1,安装 npm ins...
    99+
    2023-07-06
  • vue打印浏览器页面功能的两种实现方法
    目录方法一:通过npm 安装插件方法二:手动下载插件到本地总结推荐使用方法二 方法一:通过npm 安装插件 1,安装 npm install vue-print-nb --save...
    99+
    2023-05-15
    vue实现打印预览功能 vue实现打印预览功能 vue 打印预览
  • php怎么实现Web页面的打印功能
    PHP 打印功能实现的步骤和技巧 在 Web 开发的过程中,打印功能是相当重要的一种需求。相信大家都遇到过需要从网页中打印出某些内容的情况,比如收据、报告、合同等。本文将介绍如何使用 PHP 实现 Web 页面的打印功能。下面,我们...
    99+
    2023-05-14
    php 打印
  • js如何禁止浏览器页面后退功能
    小编给大家分享一下js如何禁止浏览器页面后退功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实例如下所示:<script...
    99+
    2024-04-02
  • JS如何实现页面打印功能
    小编给大家分享一下JS如何实现页面打印功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打印整个页面示例1.可直接在按钮添加调用...
    99+
    2024-04-02
  • vue中使用pdfjs-dist + turnjs实现页面的翻书浏览功能
    目录首先 安装 psfjs-distvue中安装jquery的方法下载trunjspdfjs-dist 的工作原理:把获取到的 pbf 的文件的数据流, 利用 canvas转换成图片...
    99+
    2022-11-13
    vue页面的翻书浏览 vue使用pdfjs-dist vue turnjs翻书
  • Vue实现浏览器端扫码功能
    背景 不久前我做了关于获取浏览器摄像头并扫码识别的功能,本文中梳理了涉及到知识点及具体代码实现,整理成此篇文章内容。 本文主要介绍,通过使用基于 vue 技术栈的前端开发技术,在浏...
    99+
    2024-04-02
  • php如何实现Web页面的打印功能
    这篇文章主要讲解了“php如何实现Web页面的打印功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现Web页面的打印功能”吧!下面,我们先简单介绍一下能够实现打印功能的基本知识...
    99+
    2023-07-05
  • VUE怎么利用vue-print-nb实现打印功能
    这篇文章主要讲解了“VUE怎么利用vue-print-nb实现打印功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VUE怎么利用vue-print-nb实现打印功能”吧!一、安装vue-p...
    99+
    2023-06-30
  • Vue怎么用插件实现打印功能
    这篇文章主要介绍“Vue怎么用插件实现打印功能”,在日常操作中,相信很多人在Vue怎么用插件实现打印功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue怎么用插件实现打印功能”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • Win10系统中怎么设置Edge浏览器标签页预览功能?
    Win10内置的Edge浏览器的标签页预览功能算是比较实用,不过一般用户并没有对这项功能进行设置的接口。但是想想就知道,Windows有个强大的工具叫做“注册表”,可以说想设什么就设什么。对于这项...
    99+
    2023-05-21
    Win10 Edge 标签
  • 怎么在vue项目中调用浏览器分享功能
    怎么在vue项目中调用浏览器分享功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。为什么要使用VueVue是一款友好的、多用途且高性能的JavaScript框架,使用vue...
    99+
    2023-06-14
  • Vue页面监听用户预览时间功能怎么实现
    这篇文章主要介绍“Vue页面监听用户预览时间功能怎么实现”,在日常操作中,相信很多人在Vue页面监听用户预览时间功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vu...
    99+
    2024-04-02
  • Win10预览版10051怎么用斯巴达浏览器内置IE打开页面?
    上周末Windows 10一个新版本泄露,包含多个升级之后的应用程序,其中斯巴达浏览器已经获得了一些新功能,比如内建使用Internet Explorer浏览器打开链接的功能。此功能是有点古怪,在微软大力推广斯巴达浏览器...
    99+
    2023-06-13
    Win10预览版 10051 斯巴达 浏览器 IE 预览
  • CSS怎么实现QQ浏览器功能
    这篇文章将为大家详细讲解有关CSS怎么实现QQ浏览器功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。知识点结合fullpage.js实现全屏滚动CSS中linear-gradient() 函数用于创建一...
    99+
    2023-06-08
  • C#中怎么判断浏览器功能
    今天就跟大家聊聊有关C#中怎么判断浏览器功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C#判断浏览器功能的分析和解决:我们首先用 JavaScript 建立一个Cookie,然后...
    99+
    2023-06-17
  • 浏览器Cookie功能被禁怎么办
    这篇文章主要为大家展示了“浏览器Cookie功能被禁怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“浏览器Cookie功能被禁怎么办”这篇文章吧。鼠标点击设置按钮,选择Internet选项。...
    99+
    2023-06-28
  • CSS怎么设置页面打印
    小编给大家分享一下CSS怎么设置页面打印,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   首先我们来看看CSS媒体类型有哪些...
    99+
    2024-04-02
  • 怎么提高浏览器渲染页面速度
    本篇内容主要讲解“怎么提高浏览器渲染页面速度”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么提高浏览器渲染页面速度”吧!一,写出高效的css代码首先弄清浏览器...
    99+
    2024-04-02
  • 怎么提高Web页面浏览速度
    这篇文章主要讲解了“怎么提高Web页面浏览速度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么提高Web页面浏览速度”吧!(1)减少html页面的大小。网...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作