强制黑白打印
Posted
技术标签:
【中文标题】强制黑白打印【英文标题】:forcing black and white printing 【发布时间】:2021-11-11 19:32:13 【问题描述】:我需要打印两个 div 标签之间的内容。打印完成得很好,但不知何故,如果用户选中打印弹出窗口中的“背景图形”复选框,则背景变为蓝色,这是网页的实际背景颜色。是否可以强制用户仅以黑白打印或从品脱弹出窗口中禁用“背景图形”复选框?下面是我所说的“背景图形”复选框的图像:
下面是我的打印代码:
<script>
function printContent(el)
var restorepage = $('body').html();
document.getElementById('<%=lblDateTime.ClientID %>').style.display = "block";
document.getElementById('<%=lblDateTime.ClientID %>').innerHTML = new Date().toLocaleString();
document.getElementById('<%=acrLogo.ClientID %>').style.display = "block";
document.getElementById('<%=compName.ClientID %>').style.display = "block";
var printcontent = $('#' + el).clone();
printcontent.removeAttr('style');
$('body').empty().html(printcontent);
window.print();
$('body').html(restorepage);
</script>
我也试过把它放在页面中:
<style>
article
-webkit-print-color-adjust: exact;
background: #222;
color: #eee;
</style>
下面是我的 div 标签:
<div>
The contents needs to be printed. This is just a test.
</div>
【问题讨论】:
您是否尝试过完全隐藏蓝色背景的特定打印机样式表?例如。<link rel="stylesheet" media="print" href="print.css" />
【参考方案1】:
在@media print 上使用灰度滤镜:
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
filter: grayscale(100%);
像这样:
@media print
body
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
filter: grayscale(100%);
Print this!
<span style="color:red;">Red text</span>
<button onclick="window.print()">Print</button>
它会强迫它:
【讨论】:
这是代码,我正在寻找。唯一的问题是,我不想打印整个页面。我只是想打印 div 标签内的内容。我在 div 标签内还有一个标签控件,我将该标签的值设置为当前日期和时间,并使其在 javascript 中可见,所以不确定如何使用@media print 来完成。任何帮助将不胜感激。以上是关于强制黑白打印的主要内容,如果未能解决你的问题,请参考以下文章