【问题标题】:Possible to force printer setup (paper size) in javascript?可以在javascript中强制打印机设置(纸张大小)吗?
【发布时间】:2009-10-09 20:17:55
【问题描述】:

我需要将 Web 应用程序中的页面打印到 8" x 4" 索引卡上。 IE 不会将打印设置从一个打印保存到下一个打印,那么有没有办法以编程方式强制打印设置?

【问题讨论】:

    标签: javascript printing


    【解决方案1】:

    看看这个来自http://www.w3.org/TR/css3-page/#size的CSS3示例:

    /* 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;
        }
    }
    
    /* A4 Landscape*/
    @page {
        size: A4 landscape;
        margin: 10%;
    }
    

    【讨论】:

    • 晚了 6 年,但规范终于赶上了!
    • 我正在使用 POS 打印机打印收据,打印工作正常,我在纸张尺寸方面遇到问题,每张收据浪费了大量纸张。需要帮助
    • @AmanDeep:如果您有问题,请找到涵盖该问题的现有问题,或提出新问题。我怀疑答案作者能否根据评论中的简短描述为您提供帮助。
    【解决方案2】:

    您可以在 CSS 中使用 @media print 指令执行此操作,无需 js。您必须计算与 4x8 索引卡相关的尺寸并自己完成所有定位,但它会起作用。 另外,由于这是 CSS2,它在 IE6 中不起作用。(参见 Joel 的 cmets)

    @media print {
      body {
        width: /*width of index card*/
        height: /*height of index card*/
      }
      /* etc */
    }
    

    【讨论】:

    • 等等,什么?我很确定我过去在 IE 6 上成功使用了 @media 选择器。
    • 此页面似乎表明它可以与 IE 一起使用,早在版本 4:codestyle.org/css/media/print-BrowserSummary.shtml
    • CSS 也支持英寸作为高度和宽度的度量单位......所以@media print { body { width: 4in;高度:8 英寸; } /* etc */ } 应该可以正常工作,没有>
    • 或者,至少它可以工作那么远。即使在更高版本中,一些边缘情况也会崩溃。无论如何 +1:使用 CSS 是正确的方法。
    • 这不会强制纸张大小,但会打印到指定的大小,我认为这是不同的。如果要指定页面大小,请使用@page 选择器和大小属性(CSS3:w3.org/TR/css3-page/#page-size
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 2013-09-18
    • 2012-08-31
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多