JavaScript Print()样式不一致

时间:2012-08-13 19:42:02

标签: javascript browser printing webpage

编辑:

任何推荐的黑客攻击?

我正在考虑在后端生成图像,然后在新窗口中打开图像,然后打印图像。


我通过隐藏其他元素来打印部分页面

$(...).hide();

然后通过

调用print
window.print();

但在所有浏览器中我遇到一些风格不一致。具体来说,背景颜色消失了。

常规网页浏览:

enter image description here

打印预览:

enter image description here

相关的html(jade)如下:

amount-due.span2
  dl
    dt Amount Due
    dd.align-right <%= RP.util.currency_to_symbol[invoice.currency.toLowerCase()] %>
      <% if (invoice.state !== "paid") { %>
      span <%= invoice.total_amount %>
      <% } else { %>
      span 0
      <% } %>

d.darken <%= RP.util.currency_to_symbol[invoice.currency.toLowerCase()] %><%= invoice.total_amount %>

相关的CSS如下:

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:3)

我不知道任何浏览器没有,为了节省墨水/碳粉,关闭背景颜色和图像进行打印。

有些人提供了重新启用它的用户偏好。

在假设所有背景都是白色的情况下设计样式表,并使用其他方法(例如粗体文本)突出显示特定内容。

答案 1 :(得分:0)

那是因为您的浏览器无法打印背景。

如果您使用Firefox,则可以执行以下操作:

档案&gt;页面设置...&gt;格式&amp;选项&gt;选项&gt;打印背景(颜色和图像)

Firefox按钮&gt;打印...&gt;页面设置...&gt;格式&amp;选项&gt;选项&gt;打印背景(颜色和图像)