问题摘要:我希望能够检测到用户的打印机页面大小,以便根据打印机的页面大小发送不同的页面布局。在CSS或JavaScript中检测打印机的页面大小
示例使用案例:我们的用户是企业。有些用户希望打印基本收据(因此他们有小型打印机),有些用户希望打印发票(即正常的8“* 11”页)。根据打印机的页面大小,我们可以识别应该将什么格式发送到打印机。
CSS规范:理想情况下,不同页面大小的CSS介质设置。 CSS的标准一直在这一点,并在CSS 2.1 spec it says
然而,打印机应通过选择媒体时打印由CSS尺寸属性提供页面大小值的指导。
该CSS 3 spec appears to offer a good solution。
/* style sheet for "A4" printing */
@media print and (width: 21cm) and (height: 29.7cm) {
@page {
margin: 3cm;
}
}
/* style sheet for "letter" printing */
@media print and (width: 8.5in) and (height: 11in) {
@page {
margin: 1in;
}
}
实际实现情况:那么这是怎么被整个主流浏览器实现的。有没有人执行过这个?它在哪些浏览器中工作?什么代码实际工作?
附加信息: It looks like this is working in a few browsers。那么这是否适用于页面大小,而不仅仅是风景/肖像。
@media print { @page {size: landscape } }
我认为这仅仅是CSS,无关的javascrip吨。 – RobG
对,看起来最好的方法可能是CSS,但我不在乎解决方案是否使用CSS和/或JavaScript – SemanticZen
另外,我不会在A4中使用诸如“width:21cm”之类的东西,由于A4页面的宽度大约为21厘米,而不是_exactly_ 21厘米! (差异小于一个像素,但仍...) –