Javascript 在FireFox和IE 8中打印横向或纵向

Javascript 在FireFox和IE 8中打印横向或纵向,javascript,jquery,html,css,printing,Javascript,Jquery,Html,Css,Printing,目前我正在使用FireFox最新版本和IE8 要更改打印方向,我使用 @page { size: portrait; } 在我的css文件中。 尽管它声称@page在两种浏览器中都受支持,但经过我的测试,除了Chrome之外,它根本不起作用。我想知道如何在FireFox/IE8中以不同的方向打印页面。正如MDN参考所说: 您只能更改的页边距、孤立页、孤立页和分页符 文件。更改任何其他CSS属性的尝试都将失败 忽略 就为您提供实现您所需的标记而言,这超出了SO所允许的范围。此外这可能需要一

目前我正在使用FireFox最新版本和IE8

要更改打印方向,我使用

@page {
  size: portrait;
}
在我的css文件中。


尽管它声称@page在两种浏览器中都受支持,但经过我的测试,除了Chrome之外,它根本不起作用。我想知道如何在FireFox/IE8中以不同的方向打印页面。

正如MDN参考所说:

您只能更改的页边距、孤立页、孤立页和分页符 文件。更改任何其他CSS属性的尝试都将失败 忽略


就为您提供实现您所需的标记而言,这超出了SO所允许的范围。此外这可能需要一点工作,因为您希望两代的IE版本能够与当前一代的Firefox一样出色。

目前,任何应用程序都不应该依赖此功能跨浏览器工作,因为大多数浏览器中仍在实施CSS3打印页面定向标准

对于Google Chrome来说,它工作得很好:

最终,在打印过程中,改变方向的决定取决于用户(即使可行),因此您可以简单地让用户知道他们应该以横向或纵向打印页面,但一般来说,在桌面浏览器上打印时,不会有任何方法阻止用户改变方向

以下是最近报告的FF错误报告:

您可以阅读此问题的公认答案,以供参考: 奇怪的是

{
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}
最新版本的Firefox不适合你,因为我自己测试过,效果很好

如果你找不到任何东西,尽管这不是正确的肖像模式(用于打印),但你可能会有一些想法

最后,如果你感到绝望,你真的需要找到一种方法来做到这一点,你可以随时采取的网页截图,例如旋转图像,然后打印图像,而不是网页。。。
这不是一个理想的解决方案,但这样可以绕过浏览器。

我在制作一个简单表单时遇到了这个问题

Chrome似乎是限制用户控制打印过程的最佳浏览器。但是它仍然有限,Firefox/其他浏览器不支持@page

我的解决方案是在样式表中添加@media打印,以“鼓励”用户以纵向方式打印页面。@page只适用于chrome。显示:无;在页眉、导航和页脚上,去掉不需要的浏览器添加内容(这只适用于chrome和firefox,在ie中,您仍然需要选择无页眉),我有一个边框:0;在输入字段上,因为它用于表单。。。 最后,我在container div上放置了一个宽度和高度,类似于标准的8.5x11张纸的大小。因此,它将非常适合页面

@media print{
    @page {size: auto; margin: auto;}
    header nav, footer {display: none;}
    input {border: 0px;}
    #container  {width:9.1in; height:10in;}

} 

归根结底,网页打印仍然非常依赖于浏览器/用户,对此实在无能为力。制作@media print很有帮助,但要让页面完全按照您的要求打印,唯一的方法是生成一个用户可以导出的pdf版本的页面。

页面打印布局默认为纵向,若要更改为横向并查看差异,请尝试下面的方法

从19.0版开始支持以下css代码,请尝试,它将解决您的问题: 对于IE8,您应该在html中使用HTML5指令

<!doctype html>
火狐:


只需转到文件,单击页面设置并更改方向。这对我有用

这里发布了一个类似的问题:。简而言之,对这一点的支持是粗略的。我认为在Firefox的情况下,您需要首先定义规则,请参考此链接谢谢您的帮助,为什么Chrome可以通过CSS指定打印方向?他们是否实现了某些功能?最终,虽然决定权在用户,但网站建议用户可以覆盖合理的默认值(如果用户真的愿意)并没有什么错。你是正确的,至少在目前,你根本不能依赖CSS。一年后,Chrome仍然是唯一支持它的浏览器。在Firefox上,支持@page和orientation的第一个bug是在2001年(!)-,现在还没有实现。我想你最好不要屏住呼吸?
@media print{@page {size: landscape}}