是否可以只打印画布元素?

bru*_*atk 2 javascript printing canvas

我创建了一个网页,允许您输入一些信息,然后根据该信息在canvas元素中绘制图像.除了印刷之外,我的工作方式与我想要的一样.

有没有办法打印出canvas元素或创建一个新的窗口来绘制,这是唯一的方法吗?

更新:

答案很简单.我在考虑更复杂的解决方案.

我希望我可以选择1个以上的答案.当我用*来禁用显示时,我无法让画布打印出来.最简单的解决方案是在@media print {}内的CSS中使用form {display:none;}来关闭我用于输入的表单.感谢您及时的回复.



    @media print {
           form {
         display:none;
       }
    }

Run Code Online (Sandbox Code Playgroud)

Zac*_*man 5

你可以尝试这样的事情:

@media print {
  * {
    display:none;
  }

  #SOME-CANVAS-ID {
    display:block;
  }
}
Run Code Online (Sandbox Code Playgroud)

我不确定画布是否在默认情况下是阻止的,但你可以尝试一下这样的东西,看它是否有效.这个想法是它会隐藏打印介质的所有内容(*),除了一些其他任意元素,只要规则的优先级更高(这就是我使用ID选择器的原因).

编辑:如果CSS3(特别是否定伪类)有更多支持,您的规则可能就像这样简单:

*:not(canvas) {
  display:none;
}
Run Code Online (Sandbox Code Playgroud)

但是,这可能会导致隐藏<html>和<body>标记,从而有效地隐藏了画布......