Html 表格不会以背景色或字体颜色打印

Html 表格不会以背景色或字体颜色打印,html,css,ruby-on-rails-4,printing,Html,Css,Ruby On Rails 4,Printing,我在浏览器的打印对话框中选中了“打印背景颜色和图像”。我在所有三种主要浏览器中都尝试过。我可以进入任何页面,它会显示文本和单元格颜色,但我自己的网站在打印时拒绝显示颜色。这是一个rails应用程序,使用bootstrap 2.3.2和颜色引导样例。我有一个标题为“可打印”的页面版本: <%= stylesheet_link_tag 'application', media: 'all' %> <%= javascript_include_tag 'applicatio

我在浏览器的打印对话框中选中了“打印背景颜色和图像”。我在所有三种主要浏览器中都尝试过。我可以进入任何页面,它会显示文本和单元格颜色,但我自己的网站在打印时拒绝显示颜色。这是一个rails应用程序,使用bootstrap 2.3.2和颜色引导样例。我有一个标题为“可打印”的页面版本:

 <%= stylesheet_link_tag    'application', media: 'all' %>
 <%= javascript_include_tag 'application' %>

我尝试过用“屏幕”替换“全部”(页面加载时看起来仍然正确,但无法正确打印)

这是我的页面,看起来是这样的:

以下是打印对话:

以下是“另存为PDF”生成的PDF:

以下是打印时在同一浏览器中堆栈溢出页面的对话框:

这是由“另存为pdf”生成的pdf


我使用OSX10.10,在每个浏览器中都能得到完全相同的结果。我曾尝试将样式表链接中的“all”设置为“print”,但它没有可引用的样式表,因此在进入打印对话框之前,它会删除所有样式。如果您注意到它正在打印的PDF中为我的表格使用css样式。但它去掉了任何颜色信息。我真的被这个难住了,我搜索了很多,但只找到了告诉你检查“打印背景”复选框的页面,我已经做了。为什么颜色连打印对话都没有

引导程序似乎包含使背景透明的代码。尝试添加!对你的背景色声明很重要,看看这是否对你有帮助

编辑:

例如,如果使用以下命令声明其背景:

th{background:#HEX}
然后切换到:

th{background:#HEX !important}
将th替换为要应用样式的任何元素,并将#HEX替换为颜色


还请注意,您需要在引导声明之后声明它。

看起来引导包含使背景透明的代码。尝试添加!对你的背景色声明很重要,看看这是否对你有帮助

编辑:

例如,如果使用以下命令声明其背景:

th{background:#HEX}
然后切换到:

th{background:#HEX !important}
将th替换为要应用样式的任何元素,并将#HEX替换为颜色


还请注意,您需要在引导声明之后声明它。

看起来引导包含使背景透明的代码。尝试添加!对你的背景色声明很重要,看看这是否对你有帮助

编辑:

例如,如果使用以下命令声明其背景:

th{background:#HEX}
然后切换到:

th{background:#HEX !important}
将th替换为要应用样式的任何元素,并将#HEX替换为颜色


还请注意,您需要在引导声明之后声明它。

看起来引导包含使背景透明的代码。尝试添加!对你的背景色声明很重要,看看这是否对你有帮助

编辑:

例如,如果使用以下命令声明其背景:

th{background:#HEX}
然后切换到:

th{background:#HEX !important}
将th替换为要应用样式的任何元素,并将#HEX替换为颜色



还请注意,您需要在引导声明之后声明它。

是!非常感谢。我想这一定是跟bootstrap有关。因此,我制作了一个print.css.scss样式表并使用它,而不是查找需要更改的每个引用,因为这是普通页面的“可打印”版本。我将基本bootstrap.css.min文件复制到print.css.scss文件中,并删除了“@media print{*{color:#000!important;text shadow:none!important;background:transparent!important;box shadow:none!important;}”中的条目,因此它只是
@media print{*{}
…太好了,这也行了!我不知道你是否只有一两个地方可以更新它,但当然如果你有很多地方,你的解决方案也行!很高兴它起到了作用!所以你比我更了解CSS,我可以复制一下
@媒体打印吗{
…节到我的bootstrap_和_overrides.css.scss,按我的要求对其进行了调整,它将覆盖引导基本文件中以前的代码?如果复制
@media print{*{}
另一个文件的部分工作了,那么我看不出它不工作的任何原因,只要它是在引导声明之后声明的,因为您的文件称为Bootstrap_和_覆盖,我猜是这样。如果您需要更多帮助,请告诉我。它不工作,但可能是因为覆盖是加法而不是减法的?我会的我喜欢这样一个事实,我把它放在自己的样式表中,它就在我的应用程序的
供应商/资产/样式表
文件夹中,我可以直接调用它来获取我报告页面的可打印版本。是的!谢谢你。我想它必须与引导有关。因此,我没有查找我需要更改的所有引用,而是打印了一个print.css.scss样式表并使用它,因为这是正常页面的“可打印”版本。我将基本bootstrap.css.min文件复制到print.css.scss文件中,并删除了“@media print{*{颜色:#000!重要;文本阴影:无!重要;背景:透明!重要;框阴影:无!重要;}`所以它只是
@media print{*{}
…太好了,这也行了!我不知道你是否只有一两个地方可以更新它,但当然如果你有很多地方,你的解决方案也行!很高兴它起到了作用!所以你比我更了解CSS,我可以复制一下
@媒体打印吗{
..节到我的bootstrap_和{u overrides.css.scss,按照我的意愿对其进行了调整,它将覆盖引导基本文件中以前的代码?如果将
@media print{*{}
节复制到另一个文件中有效,那么我看不出它不起作用的任何原因,只要它是有效的