在 CSS 中,您可以设置 @page 属性,如下所示。
@media print{@page {size: landscape}}
@page 是的一部分CSS 2.1 规范 http://www.w3.org/TR/CSS21/page.html#page-box然而这个size
问题的答案并不突出@Page { size:landscape} 过时了吗? https://stackoverflow.com/questions/4249532/is-page-sizelandscape-obsolete:
CSS 2.1 不再指定 size 属性。目前工作情况
CSS3 分页媒体模块的草案确实指定了它(但这不是
标准或接受)。
如前所述,尺寸选项来自CSS 3 规范草案 http://www.w3.org/TR/css3-page/#page-size。理论上,它可以设置为页面大小和方向,尽管在我的示例中省略了大小。
支持非常复杂错误报告开始在 Firefox 中提交 https://developer.mozilla.org/en/Mozilla_CSS_support_chart#section_3,大多数浏览器不支持。
它似乎在 IE7 中有效,但这是因为 IE7 会记住用户最后在打印预览中选择的横向或纵向(仅重新启动浏览器)。
本文 https://web.archive.org/web/20090228163159/http://edacio.us:80/forum/comments.php?DiscussionID=39确实有一些建议的解决方法,使用 JavaScript 或 ActiveX 将密钥发送到用户浏览器,尽管它们并不理想,并且依赖于更改浏览器安全设置。
或者,您可以旋转内容而不是页面方向。这可以通过创建一种样式并将其应用到包含这两条线的正文来完成,但这也有缺点,会产生许多对齐和布局问题。
<style type="text/css" media="print">
.page
{
-webkit-transform: rotate(-90deg);
-moz-transform:rotate(-90deg);
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
</style>
我找到的最后一个替代方案是在 PDF 中创建横向版本。您可以指出,以便当用户选择打印时打印 PDF。但是我无法在 IE7 中自动打印它。
<link media="print" rel="Alternate" href="print.pdf">
总之,在某些浏览器中,使用 @page size 选项相对容易,但在许多浏览器中没有确定的方法,这取决于您的内容和环境。
这可能是为什么 Google 文档在选择打印时会创建 PDF,然后允许用户打开并打印该 PDF。