react 中打印指定区域内容

1,287 阅读1分钟

react ro js 中打印指定区域内的内容

window.print()

  • window.print()方法用于打印当前窗口的内容。
  • 调用 print() 方法会产生一个打印预览弹框,让用户可以设置打印请求。
  • 最简单的打印就是直接调用window.print(),
  • 当然用 document.execCommand('print') 也可以达到同样的效果。默认打印页面中body里的所有内容。 打印监听事件
  • onbeforeprint(event),一个是onafterprint(event)分别表示打印事件触发前后
  • 检测打印请求,提供一个打印前的处理事件onbeforeprint() 将一些不需要打印的元素隐藏,和打印后的处理事件 onafterprint()放开隐藏的元素
 window.onbeforeprint = function(event) {
 //将一些不需要打印的元素隐藏
 };
 window.onafterprint = function(event) {
 //放开隐藏的元素
};

react 中打印指定区域内的

export default class PreparView extends React.Component {
  refDiv = React.createRef();   // 创建ref获取实例   
  // 打印area
  area = (printpage) => {
      //将需要打印的内容用一个大的div包裹,打印时将body的内容替换为该div的内容,调用打印print()方法。
    const newstr = printpage.innerHTML;
    const oldstr = document.body.innerHTML;
    document.body.innerHTML = newstr;
    window.print();
    document.body.innerHTML = oldstr;
    return false;
  };
  // 打印btn
  handlePrint = () => {
    this.area(this.refDiv.current.containerNode);
  };
      
  render(){
    return(
        <div>
            <Button onClick={this.handlePrint}>打印</Button>
            <BraftEditor
                ref={this.refDiv}   // 获取组件实例对象 
                style={{ width: '100%', height: '400px' }}
                value={this.editorState}
                onChange={this.handleEditorChange}
                onSave={this.submitContent}
            />
        </div>
    )
}

小菜鸟一个 嘿嘿大家多交流。欢迎讨论批评!