5

问题摘要:我希望能够检测用户打印机的页面大小,以便我可以根据打印机的页面大小发送不同的页面布局。

示例用例:我们的用户是企业。有些用户想要打印基本收据(因此他们有小型打印机),有些用户想要打印发票(即普通 8" * 11" 页)。根据打印机的页面大小,我们可以识别应该发送到打印机的格式。

CSS 规范:理想情况下,会有一个针对不同页面大小的 CSS 媒体设置。CSS标准一直在努力,在CSS 2.1规范中它说

但是,在选择打印介质时,打印机应该由 CSS 大小属性提供的页面大小值指导。

CSS 3 规范似乎提供了一个很好的解决方案。

/* 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;
    }
 }

现实世界的实现:那么这是如何在主要浏览器中实现的。有没有人实施过这个?它适用于哪些浏览器?什么代码实际上有效?

附加信息: 看起来这在一些浏览器中工作。这适用于页面大小,而不仅仅是横向/纵向。

@media print { @page {size: landscape } }
4

1 回答 1

1

对于收据打印机,以下媒体查询一直对我可靠地工作:

@media print and (max-width: 10cm) { }

在一些相关的说明:不幸的是,这不起作用(客户必须手动将边距设置为无或最小)

@page { margin: 0; }

快乐编码

于 2016-01-21T22:00:47.357 回答