有没有其他方法可以达到这个要求。
我正在使用filter: progid:DXImageTransform.Microsoft.BasicImage(Rotation=3);
旋转有效的页面,但如果内容很长,则无法正确打印页面。
使用打印 CSS。在您的 CSS 中,您可以设置 @page 属性,如下所示。
@media print{@page {size: landscape}}
@page 是CSS 2.1 规范的一部分,但这size
并没有像问题的答案所强调的那样@Page { size:landscape} 已过时?:
CSS 2.1 不再指定 size 属性。CSS3 Paged Media 模块的当前工作草案确实指定了它(但这不是标准或被接受的)。
如前所述,尺寸选项来自CSS 3 Draft Specification。理论上,它可以设置为页面大小和方向,尽管在我的示例中省略了大小。
该支持与在 firefox 中开始提交的错误报告混合在一起,大多数浏览器不支持它。
它在 IE7 中似乎可以工作,但这是因为 IE7 会记住用户在打印预览中最后选择的横向或纵向(仅重新启动浏览器)。
本文确实有一些使用 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 Documents 在选择打印时创建 PDF 并允许用户打开并打印的原因。