位置: IT常识 - 正文

用vue实现打印页面的几种方法(vue如何实现打印)

编辑:rootadmin
用vue实现打印页面的几种方法 1.第一种就是直接调用 window.print()方法

推荐整理分享用vue实现打印页面的几种方法(vue如何实现打印),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue前端打印,vue页面打印,vue打印word,vue如何实现打印功能,vue实现打印页面表格,vue如何实现打印功能,vue实现打印页面表格,vue实现打印页面表格,内容如对您有帮助,希望把文章链接给更多的朋友!

这种方法的坏处就是 默认打印整个页面,不能打印局部页面。

2.第二种使用v-print

首先先下载 npm install vue-print-nb --save 然后在main.js中引入 main.js中引入

import Print from 'vue-print-nb'Vue.user(Print)用vue实现打印页面的几种方法(vue如何实现打印)

由于我用的是jeecg所以和你们不太一样 然后就是在代码里面用了

<div class='preview_content2' id="print" ref="print"> //以是要打印的内容 <div style='text-align: center;margin-top: 100px;'> <a-button type='primary' size="large" v-print=""#print"" style="width: 150px"> 打印 </a-button> </div>//打印结束 </div>

点击上面那个打印按钮 就会自动打印你想要的部分了

3.第三种使用print.js 使用这种的好处就是可以在打印前进行一些自己想要的操作 比如校验 第一步先下载print.js 我这边直接把js放出来

// 打印类属性、方法定义/* eslint-disable */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.isDOM(dom) this.dom = this.isDOM(dom) ? dom : dom.$el; } 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 = 0; k < inputs.length; k++) { 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) } else { inputs[k].setAttribute('value', inputs[k].value) } } for (var k2 = 0; k2 < textareas.length; k2++) { if (textareas[k2].type == 'textarea') { textareas[k2].innerHTML = textareas[k2].value } } for (var k3 = 0; k3 < selects.length; k3++) { 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;"; iframe.setAttribute('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(); var _this = this iframe.onload = function(){ _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); } }, isDOM: (typeof HTMLElement === 'object') ? function (obj) { return obj instanceof HTMLElement; } : function (obj) { return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string'; }};const MyPlugin = {}MyPlugin.install = function (Vue, options) { // 4. 添加实例方法 Vue.prototype.$print = Print}export default MyPlugin

然后把js放在自己的目录中 我的目录是这样子的

第二步在main.js中引入

import Print from '@/utils/printTest'// Vue.use(Print)

最后就是在页面中使用了

本文链接地址:https://www.jiuchutong.com/zhishi/294497.html 转载请保留说明!

上一篇:学校官网首页 2页网页设计(HTML+CSS+JavaScript)(学校官网首页图片)

下一篇:vue项目created()被调用多次的坑(vue created mounted)

  • 处理应收账款的办法
  • 外资企业能投资国企么
  • 电子发票和纸质发票只能二选一吗
  • 废品销售是否缴纳增值税
  • 小微企业一般要交什么费用2019
  • 会议服务费怎么开
  • 应税销售行为的购买方为消费者个人的可以开专票吗
  • 2020年企业减免
  • 个人独资企业没有申报税的后果
  • 台湾发票大陆能做账吗
  • 部分退货退款剩下的钱什么时候给卖家
  • 收到假钱的会计分录
  • 厂部管理人员工资属于什么会计科目
  • 发票入账后查出金额错误
  • 增值税普通发票和电子普通发票的区别
  • 收购粮食怎么做账
  • 资产负债表的应收票据包括什么
  • 辞退福利怎么交税
  • 固定资产投资成本的回收与实物更新
  • 外资企业股权转让如何交税
  • 事业单位财政补助收入会计分录
  • 开始菜单无法打开怎么办
  • 进口免费赠送报成了一般贸易
  • 银行对账单干嘛用
  • 劳务报酬所得与经营所得
  • echarts css
  • 个人开发app最简单方法
  • 先开票后发货合法吗
  • 谷歌浏览器调试窗口怎么放下面
  • pytorch1.5
  • dex源码提取
  • 采购的原材料无保质期
  • 公司年产值怎么计算
  • 个人所得税申报流程图
  • 帝国cms导航站模板
  • 多缴所得税怎么算
  • 企业没有研发费用怎么做账
  • 公司销售自己使用过的固定资产
  • 工会经费申报的依据
  • 增值税最高开票限额
  • 当月开票可以当月勾选吗
  • mysql怎么实现原子性
  • Centos5.5中安装Mysql5.5过程分享
  • 税务局不予受理的依据
  • 营业额的纳税比例是多少
  • 小规模卖固定资产怎么开票
  • 固定资产清理费用对应科目
  • 租金收入什么时候交房产税
  • 个税申报属于哪个部门的职责
  • 资本公积怎么核算成本
  • 原材料的采购成本怎么计算
  • 退差价后退货
  • 费用分摊科目
  • 结转是什么意思啊
  • 减值损失账务处理
  • 限额领料单属于什么凭证多选题
  • 成本会计核算方法论文怎么写
  • window mysql
  • windows xp运行
  • linux编译步骤
  • win8双桌面
  • Ubuntu 8.10 Server Ruby 的安装方法
  • linux中nfs的配置
  • layui框架中修改用户成功后怎么跳转到登录界面
  • prize draw是什么意思
  • unity反射效果
  • linux命令提示符
  • python简单gui
  • unity飞机大战游戏毕业论文
  • 深入解析windows第7版pdf
  • js图片轮播和点击切换
  • 广东税务总局发票怎么开
  • 国税局税务大厅电话
  • 江苏发票真伪查询系统官网
  • 西安12345官网登录入口二维码
  • 个人所得税自行纳税申报表(A表)怎么填写
  • 湖南地税局客服电话号码
  • 邮政清关费用怎么算
  • 耕地占用税免税项目需要计入计税依据吗
  • 新四板企业哪里可以查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设