从页面禁用浏览器打印选项(页眉、页脚、边距)? [英] Disabling browser print options (headers, footers, margins) from page?
本文介绍了从页面禁用浏览器打印选项(页眉、页脚、边距)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 SO 和其他几个网站上看到过以多种不同方式提出的这个问题,但其中大多数要么过于具体,要么已经过时.我希望有人能在这里提供一个明确的答案,而不是迎合猜测.
当有人在浏览器中打印时,有没有办法使用 CSS 或 javascript 更改默认打印机设置?当然,从他们的浏览器打印"是指某种形式的 HTML,而不是 PDF 或其他一些依赖插件的 mime 类型.
请注意:
如果某些浏览器提供此功能而其他浏览器不提供(或者如果您只知道如何为某些浏览器执行此操作),我欢迎特定于浏览器的解决方案.
同样,如果您知道某个主流浏览器对 EVER 执行此操作有特定限制,这也很有帮助,但我们将不胜感激.(当 XYZ 在过去三年中对上述政策进行了重大更改时,简单地说这违反了 XYZ 的安全政策"并不能令人信服.
最后,当我说更改默认打印设置"时,我的意思不是永远,只是针对我的页面,我特指打印页边距、页眉和页脚.
我非常清楚 CSS 提供了更改页面方向和页边距的选项.许多斗争之一是使用 Firefox.如果我将页边距设置为 1 英寸,它会将其添加到它已经放置到位的半英寸.
我非常希望减少客户网站上 PDF 的使用,但他们主要担心的是对演示文稿的侵犯(以及缺乏可靠性).
解决方案
CSS 标准支持一些高级格式.CSS 中有一个 @page
指令,它启用一些仅适用于分页媒体(如纸张)的格式.参见 http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html.
缺点是不同浏览器的行为不一致.Safari 仍然完全不支持设置打印机页边距,但所有其他主要浏览器现在都支持.
使用 @page
指令,您可以指定页面的打印机边距(这与 HTML 元素的普通 CSS 边距不同):
<头><title>打印测试</title><style type="text/css";媒体=打印">@页{尺寸:自动;/* auto 是初始值 */边距:0mm;/* 这会影响打印机设置中的边距 */}html{背景色:#FFFFFF;边距:0px;/* 这会在发送到打印机之前影响 html 上的边距 */}身体{边框:纯 1px 蓝色;边距:10mm 15mm 10mm 15mm;/* 你想要的内容边距 */}</风格>头部><身体><div>顶线</div><div>第 2 行</div>