更改chrome打印预览默认选项

时间:2011-12-10 05:48:37

标签: javascript google-chrome google-chrome-extension

在Chrome打印预览中,在“选项”选项卡下,默认情况下会打开页眉和页脚。是否无法通过javascript / chrome扩展/设置用户手动执行此操作将其默认设置为off?

或者可以删除那里显示的日期吗?

enter image description here

6 个答案:

答案 0 :(得分:24)

简而言之,是的,你可以控制这种行为。它实际上非常棒 - 似乎最初在问题“ In Google Chrome, Docs Can Control Headers and Footers from Javascript? 中回答”这种行为的秘密在于@page CSS属性*。

如果你设置了这个确切的风格:

    @page { margin: 0; }

然后你得到了所需的行为,标题&页脚选项消失:

Google Chrome print dialog without headers & footers option

这似乎是谷歌浏览器的一种无证件行为,或者至少没有广为人知 - 粗略地挖掘他们的开发者文档并没有获得任何东西。谷歌在他们自己的网络应用程序中自己使用它,所以它可能不是秘密,但我找不到任何关于它的官方说明。

值得注意的是,0的余量不会简单地禁用“页眉和页脚”选项,它实际上会使其从菜单中完全消失(通过快速折叠)。

实验表明,其他变体不具有相同的效果。例如,margin: 0; margin-left: 10cm;不会导致此行为。

如果您确实选择实施此解决方案,则意味着丧失通过@page属性控制这些边距的功能 - 您应该将它们作为CSS打印介质样式表的一部分进行控制。让这种方式破坏@page属性的Chrome有点糟糕。也就是说,FF仍然不支持@page(截至目前),所以它不是一个完美的解决方案。



*有关@page属性

的更多信息

@page CSS应该控制打印页面的边距,specification说:

  

页面框是一个矩形区域,包含两个区域:

     
      
  • 页面区域。页面区域包括该页面上的框。   第一页区域的边缘建立矩形   初始包含文档块。画布背景是   在页面区域内绘制并覆盖。

  •   
  • 保证金区域   环绕页面区域。页边距区域是透明的。

  •   

大多数现代browsers support @page CSS属性。虽然Firefox完全document it in their developer resources,但他们的问题跟踪器has a ticket for this可以追溯到10年前,但它并不是杰出人物。关于它的最新行动是今天,所以FF很快就会提供@page支持。

答案 1 :(得分:1)

那么页面只是html,所以如果你可以在页面上执行javascript,那么你可以这样做。我不记得Chrome扩展程序是否可以绑定到内部页面。你知道怎么写Chrome扩展程序吗?如果是这样,这很容易测试。

document.getElementById('header-footer').checked = false;

答案 2 :(得分:0)

Chrome只允许override个特定chrome://个页面,而打印页面不是其中之一。您还可以将injecting脚本限制为几个特定的​​方案。

  

匹配模式本质上是一个以允许的方案(http,https,文件或ftp)开头的URL

答案 3 :(得分:0)

似乎没有办法做这样的事情。

答案 4 :(得分:0)

在当前版本的Google Chrome中,“打印预览”现在可以选择是否包含页眉和页脚,以及定义边距以及是否包含背景颜色和图像。只需将浏览器更新到最新版本。

答案 5 :(得分:0)

31的当前版本会记住您是否需要双面,页眉和页脚以及打印背景图像和颜色的设置,但据我所知,它不会记住边距设置。