zoukankan      html  css  js  c++  java
  • javascript – 从页面停用浏览器打印选项(页眉,页脚,页边距)?

    我已经看到这个问题在几个不同的方式在SO和其他几个网站,但大多数是太具体或过时的。我希望有人能够在这里提供一个确定的答案,而不是嘲笑投机。

    有没有办法,用CSS或javascript,以更改默认打印机设置,当有人在他们的浏览器打印?当然,“从他们的浏览器打印”我的意思是某种形式的HTML,而不是PDF或一些其他插件依赖mime类型。

    请注意:

    如果一些浏览器提供这个和其他的没有(或者如果你只知道如何做一些浏览器),我欢迎特定于浏览器的解决方案。

    同样,如果你知道一个主流浏览器对EVER有这样的限制,这也是有帮助的,但一些相当新的文档将被赞赏。 (简单地说,“违反XYZ的安全政策”在XYZ在过去三年里对所述政策做出重大改变时并不十分令人信服)。

    最后,当我说“更改默认打印设置”我不是指永远,只是为我的页面,我具体指的是打印边距,页眉和页脚。

    我非常清楚,CSS提供了改变页面方向以及页面边距的选项。其中一个困难是火狐。如果我将页边距设置为1英寸,它将ADDS这个半英寸它已经放置到位。

    我非常希望减少在我的客户的网站上的PDF的使用,但是对演示的侵犯(以及缺乏可靠性)是他们的主要关注。

    CSS标准启用一些高级格式化。 CSS中有一个@page指令,用于启用一些仅适用于分页媒体(如纸)的格式。见http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html

    缺点是不同浏览器的行为不一致。 Safari仍然不支持设置打印机页面边距,但所有其他主要浏览器现在都支持它。

    使用@page指令,可以指定页面的打印机边距(与HTML元素的常规CSS边距不同):

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Print Test</title>
        <style type="text/css" media="print">
        @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 */
        }
        </style>
    </head>
    <body>
      <div>Top line</div>
      <div>Line 2</div>
    </body>
    </html>

    这在Firefox 3.6,IE 7,Safari 5.1.7或Google Chrome 4.1中无效。

    设置@page margin在IE 8,Opera 10,Google Chrome 21和Firefox 19中有效果。
    尽管在这些浏览器中您的内容的页面边距设置正确,但是在解决页眉/页脚隐藏方面的行为并不理想。

    这是它在不同的浏览器中的行为:

    >在Internet Explorer中,边距在此打印设置中实际设置为0mm,如果您执行预览,则默认情况下将获得0mm,但用户可以在预览中更改。
    您将看到页面内容实际上位置正确,但浏览器打印页眉和页脚显示为非透明背景,因此有效地隐藏该位置的页面内容。
    >在Firefox的较新版本中,它的位置正确,但是显示了页眉/页脚文本和内容文本,因此它看起来像是浏览器页眉文本和页面内容的混合。
    >在Opera中,当在标准css中使用非透明背景时,页面内容隐藏标题,并且页眉/页脚位置与内容冲突。非常好,但看起来奇怪,如果margin设置为一个小的值,导致头部分可见。页面边距也未正确设置。
    >在Chrome较新版本中,如果将@page margin设置为小到页眉/页脚位置与内容冲突,则浏览器页眉和页脚将被隐藏。在我看来,这正是这应该如何行为。

    所以结论是,Chrome有最好的实现这一点,隐藏的页眉/页脚。

  • 相关阅读:
    设计模式——单例模式
    设计模式——抽象工厂模式
    设计模式开篇——工厂模式
    Python编写工具Pycharm破解
    Maven的下载及安装
    如何在cmd命令行中运行Java程序
    聊聊BIO、NIO与AIO的区别
    Centos7查不出ip地址
    TensorFlow从1到2(六)结构化数据预处理和心脏病预测
    TensorFlow从1到2(五)图片内容识别和自然语言语义识别
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13317502.html
Copyright © 2011-2022 走看看