为了账号安全,请及时绑定邮箱和手机立即绑定

禁用页面中的浏览器打印选项(页眉、页脚、页边距)?

禁用页面中的浏览器打印选项(页眉、页脚、页边距)?

千万里不及你 2019-07-03 14:21:18
禁用页面中的浏览器打印选项(页眉、页脚、页边距)?我在so和其他几个网站上看到过以几种不同的方式问这个问题,但它们中的大多数要么过于具体,要么过时了。我希望有人能在这里提供一个明确的答案,而不迎合猜测。当有人在浏览器中打印时,是否有一种使用CSS或javascript更改默认打印机设置的方法?当然,我所说的“他们浏览器上的打印”指的是某种形式的HTML,而不是PDF或其他依赖插件的MIME类型。请注意:如果有些浏览器提供此功能,而其他浏览器则不提供此功能(或者您只知道如何为某些浏览器提供此功能),我欢迎浏览器特定的解决方案。同样,如果您知道主流浏览器对此有特定的限制,这也是有帮助的,但一些相当最新的文档将不胜感激。(仅仅说“这违反了XYZ的安全策略”,当XYZ在过去三年中对该策略进行了重大更改时,它就不太有说服力了)。最后,当我说“更改默认打印设置”时,我并不是指永久的,只针对我的页面,我指的是打印页边距、页眉和页脚。我非常清楚CSS提供了改变页面方向和页边距的选项。火狐是众多困难之一。如果我将页边距设置为1英寸,它会将其添加到它已经放置的半英寸。我非常想减少PDF在我客户的网站上的使用,但是他们主要关心的是对演示的侵犯(以及缺乏可靠性)。
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

任何最新版本的Chrome和Opera,以及Firefox 48 alpha 1及更高版本

您可以将页边距设置为一个太小而无法包含文本的大小,以便禁用它(借用敬畏(答覆):

@page {

  size: auto;  /* auto is the initial value */

  margin: 0mm; /* this affects the margin in the printer settings */

}

html {

  background-color: #FFFFFF;

  margin: 0px; /* this affects the margin on the HTML before sending to printer */

}

body {

  border: solid 1px blue;

  margin: 10mm 15mm 10mm 15mm; /* margin you want for the content */

}

<ol>

  <li>

    <a href="data:,No Javascript :-(" target="_blank">Middle-click to open in new tab</a>

  </li>

  <li>

    <a href="javascript:print()">Print</a>

  </li>

</ol><!-- Hack to work around stack snippet restrictions --><script type=application/javascript>document.links[0].href="data:text/html;charset=utf-8,"+encodeURIComponent('<!doctype html>'+document.documentElement.outerHTML)</script>

火狐版本可达48α1

您可以添加一个mozNoMarginBoxes属性的<html>标记,以防止URL、页码和Firefox添加到页边距的其他内容被打印出来。

它正在Firefox 29和更高版本中工作。你可以在这里看到一个屏幕截图。,或下面是一个活生生的例子。

注意,mozDisallowSelectionPrint示例中的属性是需要从页边距中删除文本;请参见PDF.js中的mozdislowselectionprint属性是做什么的?.

其他浏览器

不幸的是,在InternetExplorer中似乎无法解决这个问题,因此您将不得不求助于PDF或要求用户禁用页边距文本。

Safari也是如此。@Luiz Perez,最新版本的Safari(8、9.1和10)仍然不支持@page用于压制保证金文本。

我在Edge上找不到任何东西,也没有Windows 10安装可供测试。


查看完整回答
反对 回复 2019-07-03
?
偶然的你

TA贡献1841条经验 获得超3个赞

这是解决方案,这是确认在Chrome!

只需确保这是在头部标签内:

<head><style type="text/css" media="print">
    @page 
    {
        size: auto;   /* auto is the initial value */
        margin: 0mm;  /* this affects the margin in the printer settings */
    }

    body 
    {
        background-color:#FFFFFF; 
        border: solid 1px black ;
        margin: 0px;  /* this affects the margin on the content before sending to printer */
   }</style></head>


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 1724 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信