我的应用程序通过创建一个不可见的iframe并将其打印来生成打印报告。我正在尝试解决的问题之一是为不同的打印页面大小优化CSS,但这已经是我长长的问题列表中的最新问题了。IE9似乎有点工作(但存在其他问题,比如忽略@page{margin:...}),但在FF或Chrome上完全没有运气。
我的代码看起来像这样:
@media print and (width: 210mm) and (height: 297mm) {
... stuff for A4 size ...
}
@media print and (width: 8.5in) and (height: 11in) {
... stuff for US letter size ...
}
在 Chrome 或 FF 中,这两个规则都从未匹配过。我还尝试了设备宽度和设备高度,但也不起作用(它们似乎报告的是打印机的绝对最大尺寸,而不是页面大小)。我无法弄清楚“宽度”和“高度”返回的值是什么,有没有一种方法可以告诉?
是否有一种可靠的方法使用媒体查询来检测打印页大小?我很接近得出结论,在任何浏览器中以一致的方式控制打印根本是不可能的,并放弃这个问题。