项目碰到一个react的难点,有朋友做过前端打印么?

#1

现在的问题:前端页面需要指定区域打印,我不知道用什么方法去做,
看了网上说的用window.print去做,但是怎么去控制区域呢
利用canvas能够截取然后去打印么,关键这是react的项目,
希望大家提点意见

#2
/**
 * 打印指定 HTML
 */
export function print(id) {
  const printHTML = document.getElementById(id).innerHTML
  const printContext = document.createElement('iframe')

  printContext.style.fontSize = '12pt'
  printContext.style.width = '0'
  printContext.style.height = '0'

  document.body.appendChild(printContext)

  printContext.contentDocument.head.innerHTML = document.head.innerHTML
  printContext.contentDocument.body.innerHTML = printHTML

  setTimeout(() => {
    printContext.contentWindow.print()
    document.body.removeChild(printContext)
  }, 400)
}

如果直接使用的话得注意一下样式,要么都在head里面,要么都用style属性

#3

谢谢哈,我是单独开的一个页面实现这个功能的