强制黑白打印

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>

【问题讨论】:

您是否尝试过完全隐藏蓝色背景的特定打印机样式表?例如。 &lt;link rel="stylesheet" media="print" href="print.css" /&gt; 【参考方案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 来完成。任何帮助将不胜感激。

以上是关于强制黑白打印的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 HTML 打印中强制分页吗?

CSS 打印文档时强制分页

CSS 强制特定内容以横向打印

打印文档时强制分页符

numpy:打印数组强制科学记数法

强制特定内容横向打印