我有一个HTML报告,由于列数很多,需要打印出来.它有一种方法可以做到这一点,而无需用户更改文档设置?
浏览器有哪些选择?
CSS规则
@page {size: landscape;}
Run Code Online (Sandbox Code Playgroud)
应该强制浏览器以横向模式打印页面.许多关于stackoverflow,许多其他编程站点以及O'Reilly的HTML/XTHML The Definitive Guide,Fifth Edition等参考书中的问题都提到了这个规则.
我试图使用这个CSS规则,对内联样式和链接样式表进行许多不同的格式调整,指定媒体而不是指定媒体,使用IE8,Chrome 7.0和Firefox 3.6.我已经尝试打印到Xerox Phaser 8560和Adobe PDF打印驱动程序.我的所有测试都是在Windows Vista Ultimate 64位上完成的.
我从来没有看到这个CSS规则实际工作,即我从未见过任何尝试的页面打印横向.不可否认,我没有对此进行过彻底的质量保证,因为我只尝试了2个打印机驱动程序和一个操作系统.
您是否真的看到此规则适用于浏览器,操作系统和打印机配置?在关于该主题的其他问题中有一些提及该规则未得到广泛支持.因为我根本无法让它在我的开发机器上工作,所以我想知道它什么时候,如果有的话,它是否有效?有助于了解已知有效的浏览器,操作系统和打印机组合,或确认这是浪费时间.
这个问题已经被提出并得到了回答,但是受到大力支持的答案都得到了回答:
当然,原因是已接受的答案1已被弃用2.并且W3C没有提出任何标准替代品.这让我有一个问题,因为我有实际需要完成的事情.
如何告诉浏览器在横向打印内容?
我把一个包含我能找到的每一片口香糖的例子拼凑在一起.
<!DOCTYPE html>
<HEAD>
<STYLE type="text/css">
/* https://stackoverflow.com/a/1392794/12597 */
@page
{
size: landscape;
}
/* http://www.devx.com/tips/Tip/32962 */
@media print{
@page {
size: landscape
}
}
/* https://stackoverflow.com/a/16655216/12597 */
@media print{
.class-name{
@page{
size:landscape;
}
}
}
</STYLE>
<!--https://stackoverflow.com/a/13684191/12597 -->
<STYLE type="text/css" media="print">
@page { size: landscape; }
</STYLE>
</HEAD>
<BODY>
Hello, landscape.
</BODY>
</HTML>Run Code Online (Sandbox Code Playgroud)
谁能想出一些有用的东西?
假设Chrome,IE11或Edge.
当然,我这样做的原因是我需要打印景观.在我的特定情况下,我将使用HTML中提供的丰富标记和布局服务在8.5x11"三孔纸上打印:
我想垂直向下走,除了意味着必须让文字,图像和布局在页面上是水平的: