【问题标题】:Table will not print with background or type colors表格不会使用背景或类型颜色打印
【发布时间】:2015-01-17 06:57:53
【问题描述】:

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

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

我尝试将“all”替换为“screen”(页面加载时看起来仍然正确,但无法正确打印)。

这是我的页面:

这是打印对话:

这是“另存为PDF”生成的PDF:

这是我打印时在同一浏览器中来自 Stack Overflow 的页面的对话框:

这里是“另存为PDF”生成的pdf

我使用的是 OS X 10.10,并且在每个浏览器中都获得了完全相同的结果。我尝试将样式表链接中的“全部”设置为“打印”,但它没有样式表可供参考,因此在进入打印对话框之前它会删除所有样式。如果您注意到它在打印的 PDF 中使用我的表格的 css 样式。但它会去除任何颜色信息。我真的被这个难住了,搜索了很多,但只找到告诉你检查“打印背景”复选框的页面,我已经完成了。为什么颜色甚至没有进入打印对话框?

【问题讨论】:

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


    【解决方案1】:

    看起来 Bootstrap 包含使背景透明的代码。尝试将 !important 添加到您的背景颜色声明中,看看是否对您有帮助。

    编辑:

    例如,如果你声明它的背景:

    th{background:#HEX}
    

    然后切换到:

    th{background:#HEX !important}
    

    将 th 替换为您应用样式的任何元素,并将 #HEX 替换为您的颜色。

    还要注意,你需要在 Bootstrap 声明之后声明它。

    【讨论】:

    • 是的!谢谢你。我认为它必须与引导程序有关。因此,我没有寻找我需要更改的每个引用,而是制作了一个 print.css.scss 样式表并使用它,因为这是普通页面的“可打印”版本。我将基本 bootstrap.css.min 文件复制到我的 print.css.scss 文件中,并删除了 `@media print { * { color: #000 !important; 中的条目。文字阴影:无!重要;背景:透明!重要;盒子阴影:无!重要; }` 所以它只是@media print { * { }...
    • 太好了,这也有效!我不知道您是否只有一两个地方可以更新它,但当然,如果您有很多地方,您的解决方案也很有效!很高兴它有帮助!
    • 所以你对 CSS 的了解比我多,我可以把 @media print{... 部分复制到我的 bootstrap_and_overrides.css.scss 中,按照我想要的方式调整它,它会覆盖引导基础文件中的先前代码?
    • 如果将@media print { * { }} 部分复制到另一个文件有效,那么我看不出它不起作用的任何原因,只要它是在 Bootstrap 声明之后声明的,因为你的文件被称为 bootstrap_and_overrides,我猜它是。如果您需要更多帮助,请告诉我。
    • 它不起作用,但可能是因为覆盖是加法而不是减法?事实上,我很喜欢它自己的样式表,它位于我的应用程序的vendor/assets/stylesheets 文件夹中,我可以将它称为我的报告页面的可打印版本。
    猜你喜欢
    • 2015-06-16
    • 2016-03-03
    • 2010-10-24
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 2011-01-24
    • 2019-08-30
    相关资源
    最近更新 更多