react控制打印机打印_React实现浏览器打印指定内容

本文介绍了在React项目中如何调用浏览器打印指定内容的方法。通过创建一个隐藏元素,包含要打印的内容,触发打印时隐藏不需要打印的元素,将打印元素追加到body,打印完成后再恢复初始状态。涉及CSS样式调整,包括@page设置纸张大小和@media print定义打印样式。
摘要由CSDN通过智能技术生成

近期着手项目任务的打印功能,在此作个记录,本文介绍基于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.bod

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值