Window.print()将默认副本设置为2。

3

我有一个要求,希望点击按钮时,打印机对话框会以默认数量为1的情况下设置为2个副本。


不,这是不可能的。 - Peanut
1
2019年了,这还不可能吗? - Christhofer Natalius
1个回答

1

不能使用纯 JavaScript 与 window.print() 实现打印。

但是,如果您愿意使用 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();
    }

当然,如果您只想打印两份副本,那么这可能过于复杂和繁琐。但是,我不知道还有其他方法可以帮助您干预浏览器的打印。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接