是否可以只打印画布元素
Is it possible to print just the canvas element?
我创建了一个网页,可让您输入一些信息,然后根据该信息在画布元素中绘制图像。 除了打印之外,我几乎可以按照我想要的方式工作。
有没有办法打印出画布元素,或者创建一个新窗口来绘制,这是唯一的方法?
更新:
答案很简单。 我在想一个更复杂的解决方案。
我希望我能选择不止 1 个答案。 当我使用 * 禁用显示时,我无法打印画布。 最简单的解决方案是关闭我用于输入的表单,在 @media print{} 内的 CSS 中使用表单 {display:none;}。感谢您的快速回复。
@media print {
form {
display:none;
}
}
你可以尝试这样的事情:
@media print {
* {
display:none;
}
#SOME-CANVAS-ID {
display:block;
}
}
我不确定默认情况下画布是否被阻止,但您可以尝试类似的东西,看看它是否有效。这个想法是,只要规则的优先级更高,它将隐藏打印媒体的所有内容(*),除了其他一些任意元素(这就是我使用 ID 选择器的原因)。
编辑:如果CSS3(特别是否定伪类)有更多的支持,你的规则可以像这样简单:
*:not(canvas) {
display:none;
}
但是,这可能会导致
和 标签被隐藏,从而有效地隐藏您的画布......>我不是 100% 确定支持,但您可以使用 CSS 并在 <link>
标签中放置一个属性以进行media="print"
。在此CSS文件中,只需隐藏打印时不想显示的元素:display:none;
您可以尝试创建仅用于打印的画布:
this.Print = function () {
var printCanvas = $('#printCanvas');
printCanvas.attr("width", mainCanvas.width);
printCanvas.attr("height", mainCanvas.height);
var printCanvasContext = printCanvas.get(0).getContext('2d');
window.print();
}
相关文章:
- 仅悬停一个元素(活动元素)
- 更改包含其他元素的元素的文本
- jQuery或JavaScript获取靠近其他元素的元素
- 使用jquery计算包含另一个带边距元素的元素的高度
- 获取/更改包含其他元素的元素的类.JavaScript/JQuery
- 从页面中删除除数组中包含的元素及其父元素/子元素之外的所有元素
- 更改元素父元素的背景颜色时停止在
上闪烁鼠标悬停?jQuery/JS. - 给定一个 bySelector 我如何获取此元素子元素的选择器
- 如何获取离子对话框中动态加载的元素的元素高度
- 独立于原始元素复制元素
- AngularJs 指令元素子元素给出空
- Jquery 更改克隆元素子元素的 ID 不起作用
- 隐藏所有没有类匹配所选元素的元素
- 如何从 iframe 元素更改元素属性
- jQuery,如何在HTML中正确查找父元素的元素类型
- “<元素/>”到“<元素> 元素>”是否有效
- 如何选择不包含某个子元素的元素
- 是否可以从另一个元素访问元素函数?聚合物1.0
- 如何在JavaScript中获取没有子元素的元素的文本
- 根据其同级元素包裹元素