灰色字体彩色印刷

Posted

技术标签:

【中文标题】灰色字体彩色印刷【英文标题】:Grey Font Color Printing 【发布时间】:2011-11-28 18:19:41 【问题描述】:

有什么方法可以确保我的灰色字体颜色不会变黑?

Firefox 和 Chrome 似乎这样做是为了防止黑底白字变成白底白字。我没有背景颜色(白色除外),所以这个浏览器级别的转换没有用,它只能帮助无缘无故地防止灰色。

有没有办法关闭它?还是我应该坚持使用不透明度、浏览器检测和灰色着色等技术...

【问题讨论】:

你在使用打印样式表吗? 我一直认为黑色是强制的,因为空白墨水打印速度更快,而且比打印灰色便宜,因为这需要使用彩色墨水。 不透明度听起来是一种很棒的技术——如果一切都失败了,我会求助于那个或 PDF。 @George 很公平 - 但请记住,您可以使用 iframe 嵌入 PDF,并带有“打印”按钮和一切。 (以防万一你需要回到这个) 软件将灰色文本转为黑色的原因是黑色激光打印机需要光栅灰色。光栅图案结果(尤其是在低分辨率打印机中)会导致文本外观模糊。打印全黑时,不需要光栅,使用原始字形矢量路径。创建打印样式表时,明智的做法是考虑场景和打印机功能。喷墨打印机抖动文本。混合颜色。他们有更多的“滴答声”来获得正确的外观。 【参考方案1】:

解决方案:

  @media print 
      h1 
        color: rgba(0, 0, 0, 0);
        text-shadow: 0 0 0 #ccc;
      

      @media print and (-webkit-min-device-pixel-ratio:0) 
        h1 
          color: #ccc;
          -webkit-print-color-adjust: exact;
        
      
   

【讨论】:

有效!你真是个天才! Here's a demonstration. 在 IE11、Chrome 和 Firefox 中测试。 确保不要尝试使用“透明”而不是“rgba(0, 0, 0, 0)”,因为它不适用于 IE。 今天在 Chrome 中为我工作,但在 FF 中不可用。【参考方案2】:

我发现不得不:

    !important 添加到 css 规则中... and...

    在 Firefox 打印对话框中,勾选“外观:打印背景颜色”选项

我无法让它在 Chrome 中运行。

【讨论】:

抱歉,不太准确。即使不执行选项 1,选项 2 也有效。 @GeorgeBailey,这不是我在 OSX 上的 FireFox v24 中看到的这个页面:awesometimer.com/results/nightingale_nightmare 如果我删除“!important”规则,奖杯都印成黑色(奖杯只是fontawesome 中的字符)。 在我的 Firefox 中,如果您转到“文件”->“页面设置”,并选中“打印背景颜色和图像”框,那么您的奖杯将打印为灰色。我在 Windows 7 上使用 Firefox 24。【参考方案3】:

如果您添加颜色,某些浏览器会更加尊重您的灰色:将 #777 替换为 #778。警惕不透明性。有时,即使打印预览会显示出很好的效果,它实际上也只适用于选定的打印机。如果使用 opacity 是灰色的,那么带有不幸固件的打印机将根本无法打印您的文本。

【讨论】:

对于那些追随我的人;我处于这种不透明后备非常适合我的情况。我只想在颜色不变的情况下显示某些内容,因此我更改了可以隐藏或不透明度变灰的内容。 :)【参考方案4】:

你只需要在 svg 中输出你的灰色字体。浏览器不会改变 svg 中的颜色。这是一个例子:

<svg  >
   <text font-size="28px" y="25" x="30" fill="#ffffff" >
   Some text
   </text>
</svg>

【讨论】:

【参考方案5】:

我认为这是该页面上唯一的 div。进行以下更改,它应该可以正常工作。

<style>
@media print 
div.red 
      color: #cccccc !important;
  
</style>

然后像下面这样改变 div 标签的 html

【讨论】:

【参考方案6】:

我发现TEXT颜色不是由“通用”样式表继承的,而是必须在打印css文件中再次强制。

换句话说,即使在通用 css 文件中设置了文本颜色(具有media='all' 属性的文件),打印时也会被忽略,至少在 Firefox 和 Chrome 中是这样。

我发现在打印 css 文件(带有media='print' 属性的文件)中再次写入(冗余但......必要)文本颜色,现在将考虑颜色。

【讨论】:

我想知道为什么我不能让它工作。一个示例页面会很有趣。【参考方案7】:

此解决方案适用于所有浏览器:

.text color: transparent; text-shadow: 2px 0 #red;

【讨论】:

【参考方案8】:

重视颜色:

.bgcol
background-color:skyblue !important;

 .subject_content,h2,p
 color:rgba(255, 255, 255) !important;
    margin: 25px auto;


<body class="bgcol">
       <div class="subject_content">
      <h2 class='text-center'>fhddfhnt area</h2>
      <p>sdgdfghdfhdfh.</p>
     </div>

【讨论】:

【参考方案9】:

上面没有对我有用,所以我终于想通了。

始终为直接元素赋予颜色。前任。假设你的 html 是

<div class='div'><br/>
      < h1>Text< /h1><br/>
</div>

和你的 CSS

.div  
     color: #ccc; 
     

这就是我的情况。在这种情况下,无论您做什么,颜色都不会显示。

你必须这样做

.div h1  
 color: #ccc; 


@media print  
 .div h1  
    -webkit-print-color-adjust: exact; 
    

希望对你有帮助!!

如果您找到更好的解决方案,请回复,因为这是我在 2 小时后可以找到的,并且对我有用。

【讨论】:

以上是关于灰色字体彩色印刷的主要内容,如果未能解决你的问题,请参考以下文章

具有自定义 UIActivity 的 UIActivityViewController 将彩色图像显示为灰色

fireworks将两个图层组合为蒙版后,原来的彩色图像变成了灰色,请教高手这是怎么回事啊?

Python 中将 3 通道 rgb 彩色图像更改为 1 通道灰色的速度有多快?

彩色激光打印机(PCL6 驱动程序)打印灰色图形或图像偏色的现象

一行代码实现灰色铅笔画彩色铅笔画和卡通画效果(C++/Python OpenCV源码)

如何在javascript中让一个链接变成灰色,不可点击?