如何在IE11中静默打印iframe?

时间:2014-08-05 00:46:34

标签: javascript html activex internet-explorer-11

我正在尝试作为自助服务终端网络应用程序的一部分进行静默打印。到目前为止,我可以使用用户确认打印iframe,我可以静默打印整个页面,但我无法以静默方式打印iframe。我只需要在IE11中使用它,因此我可以使用ActiveX控件。这是我到目前为止的最小例子:

testcase.html:

<!doctype html>
<head></head>
<body>
    <p>a</p>
    <iframe id="print-frame" src="testcaseiframe.html"></iframe>
</html>

testcaseiframe.html(1)(使用用户确认打印iframe)

<html>
    <head>
        <script type="application/javascript">
        function selfPrint(){
            self.focus();
            self.print();
        }
        setTimeout('selfPrint()',0);
        </script>
    </head>
    <body>
        <p>Iframe</p>
    </body>
</html>

testcaseiframe.html(2)(静默打印整页)

<html>
    <head>
        <script type="application/javascript">
        setTimeout(function print() {
            PrintCommandObject.ExecWB(6, 2);
            PrintCommandObject.outerHTML = "";
        },0);
        </script>
    </head>
    <body>
        <p>Iframe</p>
        <object ID="PrintCommandObject" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
    </body>
</html>

要运行,请使用npm serve包并在将网站添加到“可信站点”后在IE11中打开,并且已启用ActiveX控件,甚至是未签名的控件。

我在StackOverflow上花了很多时间,我认为问题可能只是ActiveX控件不支持从iframe打印。有谁知道怎么做?

0 个答案:

没有答案