在react中实现打印功能

我们知道,window.print()可以调起打印功能,但是直接用window.print()如果直接打印的话,没有样式,而且默认打印的是整个网页的内容。解决的方法可以用iframe方式引入需要打印的区域,并把样式添加进去,然后把iframe标签定位到看不到的地方去。搜了一下,已经有人造好了轮子,react-to-print插件就是这么做的。


一.使用方法

  1. 下载 npm install --save react-to-print
  2. 引用 import ReactToPrint from 'react-to-print';
  3. 调用
 //触发按钮
  点此打印}
          content={() => this.componentRef}
        />
  //打印内容
  
(this.componentRef = el)}> ....内容

二.组件参数

该组件接受以下参数(注意:?表示可选参数):

名称 类型 描述
trigger function 返回React组件或HTML元素的函数
content function 返回组件参考值的函数。然后将该参考值的内容用于打印
copyStyles boolean? 将所有