【问题标题】:Window.print() sets default copies to 2Window.print() 将默认副本设置为 2
【发布时间】:2018-03-22 20:29:55
【问题描述】:

我有一个要求,通过单击按钮,将打开打印机对话框,并将份数设置为 2,而不是默认数量 1。

【问题讨论】:

  • 不,这不可能。
  • 2019年还是不行吗?

标签: javascript printing printing-web-page


【解决方案1】:

不,不可能使用带有 window.print() 的纯 JavaScript。

但是,如果您愿意使用 Java Applet,请查看qz-print aka jzebra。我在过去的一些项目中亲自使用它来满足一些高级打印要求,结果非常令人满意。看看他们的 printHTML() 方法

***************************************************************************
    * Prototype function for printing plain HTML 1.0 to a PostScript capable 
    * printer.  Not to be used in combination with raw printers.
    * Usage:
    *    qz.appendHTML('<h1>Hello world!</h1>');
    *    qz.printPS();
    ***************************************************************************/ 
    function printHTML() {
        if (notReady()) { return; }

        // Preserve formatting for white spaces, etc.
        var colA = fixHTML('<h2>*  QZ Print Plugin HTML Printing  *</h2>');
        colA = colA + '<color=red>Version:</color> ' + qz.getVersion() + '<br />';
        colA = colA + '<color=red>Visit:</color> http://code.google.com/p/jzebra';

        // HTML image
        var colB = '<img src="' + getPath() + 'img/image_sample.png">';

                //qz.setCopies(3);
        qz.setCopies(parseInt(document.getElementById("copies").value));

        // Append our image (only one image can be appended per print)
        qz.appendHTML('<html><table face="monospace" border="1px"><tr height="6cm">' + 
        '<td valign="top">' + colA + '</td>' + 
        '<td valign="top">' + colB + '</td>' + 
        '</tr></table></html>');

        qz.printHTML();
    }

当然,如果您只想打印 2 个副本,这可能会过于简单,而且实施起来也过于复杂。但我不知道有任何其他方式可以帮助您干扰浏览器的打印。

【讨论】:

    猜你喜欢
    • 2021-11-28
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多