我正在尝试找到解决Internet Explorer(IE)浏览器中打印图像的特定问题的方法。它是在显示打印预览或默认打印对话框的情况下启动打印。
到目前为止,我已经能够在不生成打印弹出/模态窗口的情况下启动打印。这是通过在ASPX页面上使用不可见的iFrame并将图像写入其中,然后打印iFrame的内容来实现的。但是,浏览器仍在抛出打印对话框。
尝试了方法:
有些消息来源建议注入一个VBScript来取代默认的打印功能。这无法按预期工作。
sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write <object id='WB' width='0' height='0' classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2' ></object>
尝试模拟OK响应,一旦显示打印对话框也无法正常工作,因为它很难捕获 - 当对话框被触发时。
var collapsePrintPreview = function () {
var enter = jQuery.Event("keypress");
enter.which = 13;
enter.keycode = 13;
$("input").trigger(enter);
};
window.onbeforeprint = collapsePrintPreview;
window.onafterprint = collapsePrintPreview;
是否有一种已知的方法可以通过从IE浏览器的客户端禁止“打印对话框”窗口进行打印?我们非常感谢您对此问题的任何见解或解决方案。
P.S。目标浏览器是IE 9及以上版本。
更新1
即使在我的ASPX页面的标签中逐字写入(在IE9中测试),VBScript代码也无法工作。它根本无法取消打印对话框!
更新2
整个VBScript是在ASPX页面的HTML下编写的,该页面也包含JavaScript代码。