我有一份 HTML 报告,由于列数较多,因此需要横向打印。有没有办法做到这一点,而无需用户更改文档设置?
浏览器之间有哪些选项。
原文由 doekman 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的解决方案:
<style type="text/css" media="print">
@page {
size: landscape;
}
body {
writing-mode: tb-rl;
}
</style>
media="print"
将仅适用于打印。IE
, Firefox
和 Chrome
原文由 Eduardo Cuomo 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答914 阅读✓ 已解决
3 回答829 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答882 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
在您的 CSS 中,您可以设置 @page 属性,如下所示。
@page 是 CSS 2.1 规范 的一部分,但是这个
size
并没有像问题的答案那样突出显示 @Page { size:landscape} 过时了吗? :如前所述,大小选项来自 CSS 3 Draft Specification 。理论上它可以设置为页面大小和方向,尽管在我的示例中省略了大小。
支持非常复杂, 在 firefox 中开始提交错误报告,大多数浏览器不支持它。
它似乎在 IE7 中工作,但这是因为 IE7 会记住用户在打印预览中最后选择的横向或纵向(仅重新启动浏览器)。
本文 确实提出了一些使用 JavaScript 或 ActiveX 向用户浏览器发送密钥的解决方法,尽管它们并不理想并且依赖于更改浏览器的安全设置。
或者,您可以旋转内容而不是页面方向。这可以通过创建样式并将其应用于包含这两条线的正文来完成,但这也有缺点,会产生许多对齐和布局问题。
我找到的最后一个替代方法是在 PDF 中创建横向版本。您可以指出,当用户选择打印时,它会打印 PDF。但是我无法在 IE7 中自动打印它。
总之,在某些浏览器中使用@page size 选项相对容易,但在许多浏览器中没有确定的方法,这取决于您的内容和环境。这可能就是为什么 Google Documents 在选择打印时创建 PDF,然后允许用户打开并打印它的原因。