如何在Edge浏览器中打印带有背景图像和颜色的内容

5
尽管像IE和FF这样的浏览器提供了一个选项,让用户在打印时选择是否包含背景,但是Edge似乎在其打印机设置中没有此选项。有没有一种方法可以通过代码或本地Edge JS命令激活它?

1
我猜这个功能还没有被实现 - 即使是在Edge中普通的图像打印也很不稳定。我认为没有办法覆盖它,因为所有主要浏览器中的打印功能都无法运行页面上的js。 - CalvT
我已经运行了Windows 10虚拟机一段时间,当IE 11的打印设置选择了背景颜色时,EDGE工作得很好。然而,最近我升级到了最新的Windows 10,现在EDGE无法打印背景颜色。看起来是有些东西被破坏了,我找不到任何地方可以配置它。 - Glenn
针对背景图片的解决方法,可以尝试将其放置在after标签中,例如:div::after { content: url(image.jpg); } - mfink
1
请在 User Voice 上投票支持“允许 Edge 打印背景颜色”。 - Mike
1个回答

1
这是一个问答 - 但我不会将其作为答案接受。所以,请您也写下您的答案。
截至2017年4月,Edge浏览器似乎没有明显的解决方案。Edge在打印时不包括背景色,这是一种缺乏功能的表现,当您尝试通过Edge打印带有背景颜色的日历时,这种表现就会变得明显,例如在outlook.com(来自微软本身)上。
Edge提供了一个笨拙的解决方案,即“在IE中打开”菜单项。这个方法虽然可行,但只适用于静态页面,因为它试图在IE中直接打开当前URL。
我为我的应用程序做的解决方法是在打印页面上包含一个“保存至IE”的按钮。当点击时,它会遍历可打印页面的当前DOM树,创建一个标记字符串(如有必要进行调整),然后提供用户将其保存为单个文件。
现在用户可以使用IE打开此文件并直接进行打印。
不够好!但比使用Edge让你的应用程序看起来无能要好。如果所有这些都不起作用,只需在要打印背景的位置上创建一个svg元素,并为该svg元素设置填充颜色。
编辑:
通过将div替换为标签,将所有背景转换为前景,这样做很有效果。使用transform等操作效果比我预期的要好。

转换到前台是什么意思? - Jen
请查看已编辑的答案。对于造成的困惑,我们深表歉意。 - Charlie
我用一个label元素替换了一个div,但是在打印时背景颜色没有显示出来。你是使用background、background-color或其他方法来让它在打印时显示出来的吗? - Jared Thirsk
@Charlie,我可以通过使用填充颜色为我选择的画布来使我的纯色工作。你是如何使用标签实现的? - Jared Thirsk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接