問題摘要:我希望能夠檢測到用戶的打印機頁面大小,以便根據打印機的頁面大小發送不同的頁面佈局。在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釐米! (差異小於一個像素,但仍...) –