所以...从我在谷歌上找到的,我找不到使用Javascript设置我的打印首选项的方法(阅读:边距,方向,页脚等)。
我即将告诉我的老板他不想做什么。我想检查一下,你会不会让人们做这件事。请告诉我。
我发现在FF中你可以使用一些user_pref(key,val)设置来设置用户的偏好设置,但这对我的90%以上的用户都不起作用。我正在寻找能够覆盖IE(尽可能多),FF和Chrome的东西。
感谢忍者的回复。
答案 0 :(得分:15)
所以...经过一整天的观察,我认为我找到了自己问题的答案。简而言之,答案是JS和/或CSS不允许您覆盖客户端浏览器的默认页面设置。
这是我尝试过的。如果您使用和空头创建一个简单的HTML文件,并且只包含文本“Test”的正文,您将能够看到我测试的内容。
打印样式表无法解决您的问题。将正文上的边距设置为0px 0px 0px 0px与单击文件>不同。页面设置并将所有页边距设置为0.尽管Print Style Sheeters希望您相信,但它们是不同的。亲自试试吧。这就是打印样式表无法解决问题的原因。
JS无法解决您的问题。如果您访问的每个页面都修改了本地JS属性,您能成像吗?允许每个页面访问本地打印设置将是一个安全漏洞,是不允许的。因此,JS无法解决您的问题。
我希望有人在这里回复,让我知道我错了。否则......这很糟糕......而且它需要发生。我有很多老用户......让他们在页面设置中设置边距是一件痛苦的事。此外,客户不希望我们重构页面,以便他们不需要。我介于摇滚和硬地之间。
答案 1 :(得分:13)
您可以使用CSS设置页面方向和页边距:
@page {
size: landscape;
margin: 10%
}
您还可以使用<tfoot>
元素在每个页面的底部设置页脚。
@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