react控制打印机打印_React如何实现浏览器打印部分内容详析

前言

近期着手项目任务的打印功能,在此作个记录,本文介绍基于React的一种调用浏览器打印页面指定内容的方法。

整体思路: 通过构建一个隐藏的元素(该元素包裹需打印的内容),当打印行为触发时,将页面其他的一些不需要打印的元素隐藏,然后将需打印的元素追加到body中,打印完成后,再恢复初始状态即可。浏览器打印的本质还是将web页面中的元素打印出来而已。

1. 构建待打印元素

在页面中构建一个display为none的元素,里面的内容为你需要打印的内容。我们还需要设置包裹打印内容的元素的ref属性,以便于后面获取到元素。

(this.printRef = el)}>

{ 打印内容 }

2. 打印动作触发时的处理

处理流程:

获取待打印元素;

将根元素隐藏;

将待打印元素追加到body中;

调用浏览器的打印预览;

预览界面关闭后,将待打印元素从body中移除,将原始页面恢复。

let printView = this.state.printRef //获取待打印元素

document.querySelector('#root').className = 'print-hide' //将根元素隐藏

document.body.appendChild(printView) //将待打印元素追加到body中

window.print() //调用浏览器的打印预览

document.body.removeChild(printView

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值