我正在尝试作为自助服务终端网络应用程序的一部分进行静默打印。到目前为止,我可以使用用户确认打印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打印。有谁知道怎么做?