从 HTML 横向打印

新手上路,请多包涵

我有一份 HTML 报告,由于列数较多,因此需要横向打印。有没有办法做到这一点,而无需用户更改文档设置?

浏览器之间有哪些选项。

原文由 doekman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 734
2 个回答

在您的 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,然后允许用户打开并打印它的原因。

原文由 John 发布,翻译遵循 CC BY-SA 3.0 许可协议

我的解决方案:

 <style type="text/css" media="print">
    @page {
        size: landscape;
    }
    body {
        writing-mode: tb-rl;
    }
</style>

  • 使用 media="print" 将仅适用于打印。
  • 这适用于 IEFirefoxChrome

原文由 Eduardo Cuomo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏