【问题标题】:Force Background Color Printing on Firefox在 Firefox 上强制背景颜色打印
【发布时间】:2016-05-02 11:25:27
【问题描述】:

我正在使用Barby ruby​​ gem,它为render barcodes as HTML 添加了一个方便的方法。

Barby 会根据传递给它的代码来呈现带有 td 背景的表格。这很好用,因为我不想为需要条形码的每条记录生成和存储图像文件。

默认情况下,主要浏览器不打印背景颜色,我需要在不让用户更改其本地系统上的打印选项的情况下打印条形码。

我不确定如何使用 Firefox 完成此操作。使用 webkit(Chrome 和 Safari),这很容易:

td { 
  background: #000 !important;
  -webkit-print-color-adjust: exact;
}

狂热的谷歌搜索并没有真正让我到任何地方:This 问题已经有几年了,我还没有找到任何更新的东西,所以我想我会再次提出这个问题。 Fat borders 也不会真正起作用,因为如果条形之间的关系发生变化,它将改变代码中包含的数据。

【问题讨论】:

  • 我很难过没有答案 :( 浏览器需要更好地支持打印。
  • 令人惊讶的是,最近的一些更改似乎使这项工作与新的颜色调整属性一起工作。 MDN 甚至还没有它的文档,所以我认为它现在可能仍在开发中(2016 年 9 月)
  • 只是为了表明使用!important 似乎确实有所作为。

标签: html css ruby-on-rails firefox printing


【解决方案1】:

这开始在带有“color-adjust”属性的 Firefox(至少版本 48.0.2)中工作。

td { 
  background: #000 !important;
  -webkit-print-color-adjust: exact;
  color-adjust: exact;
}

我在我的特定项目中看到一两个小错误,但背景颜色出现了!

【讨论】:

  • 好答案。解决了我的问题。
  • 非常适合背景色。颜色属性有什么办法吗?如果我将颜色设置为白色,我的也不会打印颜色,否则它正在工作。
  • 仍然是非官方的。不过覆盖面很好:caniuse.com/#search=color-adjust
  • 不幸的是,color-adjust 没有得到 FireFox 的正确支持。它似乎仅适用于背景,不适用于 color css 属性。它被报告为bug,没有太多活动或投票。如果不保留字体颜色,则保留背景是毫无用处的,导致它不可读。
【解决方案2】:

这对我有用:

@media print {
    body {
        -webkit-print-color-adjust: exact; /*Chrome, Safari */
        color-adjust: exact; /*Firefox*/
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 2010-10-20
    • 2014-04-18
    • 2011-01-24
    • 2016-05-28
    • 2011-08-29
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多