从JS设置打印首选项

时间:2011-06-13 22:08:12

标签: javascript javascript-events

所以...从我在谷歌上找到的,我找不到使用Javascript设置我的打印首选项的方法(阅读:边距,方向,页脚等)。

我即将告诉我的老板他不想做什么。我想检查一下,你会不会让人们做这件事。请告诉我。

我发现在FF中你可以使用一些user_pref(key,val)设置来设置用户的偏好设置,但这对我的90%以上的用户都不起作用。我正在寻找能够覆盖IE(尽可能多),FF和Chrome的东西。

感谢忍者的回复。

5 个答案:

答案 0 :(得分:15)

所以...经过一整天的观察,我认为我找到了自己问题的答案。简而言之,答案是JS和/或CSS不允许您覆盖客户端浏览器的默认页面设置。

这是我尝试过的。如果您使用和空头创建一个简单的HTML文件,并且只包含文本“Test”的正文,您将能够看到我测试的内容。

  1. 打印样式表无法解决您的问题。将正文上的边距设置为0px 0px 0px 0px与单击文件>不同。页面设置并将所有页边距设置为0.尽管Print Style Sheeters希望您相信,但它们是不同的。亲自试试吧。这就是打印样式表无法解决问题的原因。

  2. JS无法解决您的问题。如果您访问的每个页面都修改了本地JS属性,您能成像吗?允许每个页面访问本地打印设置将是一个安全漏洞,是不允许的。因此,JS无法解决您的问题。

  3. 我希望有人在这里回复,让我知道我错了。否则......这很糟糕......而且它需要发生。我有很多老用户......让他们在页面设置中设置边距是一件痛苦的事。此外,客户不希望我们重构页面,以便他们不需要。我介于摇滚和硬地之间。

答案 1 :(得分:13)

您可以使用CSS设置页面方向和页边距:

@page {
   size: landscape;
   margin: 10%
}

您还可以使用<tfoot>元素在每个页面的底部设置页脚。

编辑:正如Beejamin所指出的,这是一个中途宿舍。您无法真正更改打印机首选项(单击“打印”时出现在“打印”对话框中的首选项)。此外,IE严重缺乏对@page选择器的支持,(看看IE9是否支持它并且找不到任何东西)。作为替代方案,您可以尝试将其应用于打印样式表中的正文。

body {
   size: landscape;
   margin: 10%
}

虽然我不知道这是多么有效。

答案 2 :(得分:4)

我认为你在HTML和CSS中尝试这样做是非常不幸的。问题的一个主要部分是打印机边距都是打印机类型特有的:大多数打印机都有可设置的最小边距(相当于抓住页面所需的空间,以及打印头的左/右移动)。

可接受的边距也会因纸张尺寸而异(较小的纸张上的边距通常小于打印机可接受的最大值)。例如,如果将A5纸张装入A4打印机,则可以设置的边距与装入A4时的边距不同。

网页上没有任何信息可通过CSS,javascript或其他任何内容获取。

现在,就解决方案而言,PDF文件允许您在文件中嵌入一些打印机默认设置 - Acrobat pro将允许您指定缩放选项,默认份数等。我不介意下注Acrobat未公开的文件格式中有更多可用的潜在设置。

有许多功能齐全的PDF生成工具可用于您使用的任何服务器端技术。好的甚至可以让你提供一个URL,并将HTML + CSS呈现给PDF内容 - 这将在一定程度上自动生成。 PDF生成虽然是CPU密集型的,但它对用户来说也不是无缝的(并且需要大多数浏览器的PDF插件)。

我知道这不太理想,但这是我要研究的途径。祝你好运!

答案 3 :(得分:2)

使用CSS将帮助您实现这一目标。

@page {
  margin:0cm;
}

答案 4 :(得分:0)

您可以更改一些首选项。

喜欢方向:

@media print {
    @page {
        size: A1|A4|A5 landscape; /* auto is default portrait; */
    }
}

要隐藏默认设置生成的页脚和页眉文本,可以这样做:

@media print {
    @page {
        margin: 0 !important;
    }

    body {
        padding: 75px; /* This will act as your margin. Originally, the margin will hide the header and footer text. */
    }
}

我认为您还可以在页眉和页脚部分添加一些文本,但仍未尝试。你可以参考这里。 https://www.w3.org/TR/css-page-3/#at-ruledef-right-top