我有一个打印表格代码LINK
检查我的代码:
function printData()
{
var divToPrint=document.getElementById("printTable");
console.log(divToPrint.outerHTML);
newWin= window.open("");
newWin.document.write(divToPrint.outerHTML);
newWin.print();
newWin.close();
}
我已将background-color
添加为红色,就像你在小提琴中看到的一样。我试着打印它。但是在印刷品中,颜色不会出现,所有其他东西都可以正常工作我已经研究了@media print
以及所有但都无法解决它的问题。请指导我,你可以给我一个更新的小提琴。干杯!
答案 0 :(得分:1)
大多数浏览器都不会打印背景颜色或图像。有些设备具有用户控制的设置,但您无法依靠背景,这取决于用户(如果浏览器甚至允许他们这样做)。
另外:您的新窗口在示例中没有任何显式样式,除非它位于printTable
元素内, 1 因为您正在创建一个完全独立的完全独立的窗口 ,因此不会继承当前页面的样式。
1 在技术上无效,style
和link
不允许在head
之外,但我从来不知道它实际上是一个问题
答案 1 :(得分:1)
默认情况下,浏览器会禁用背景颜色和图像。检查浏览器的打印选项以获取“打印背景颜色”选项或类似选项,例如在Chrome中:
Firefox似乎在打印对话框的“选项”标签下的“打印背景”下有两个选项:
请注意,我正在使用Ubuntu;这些选项的具体措辞和位置可能因您的操作系统和浏览器而异。有些浏览器可能根本没有它的选项,只需剥离所有背景颜色/图像进行打印。
我认为你没有办法从JS / CSS / HTML代码中强制使用这些选项;它始终取决于用户以及其他打印选项。