禁用打印对话框弹出窗口

时间:2013-08-15 09:46:41

标签: c# asp.net

我有一个基于Web的POS系统,需要从服务器获取信息并获得打印客户端。

我花了两天时间搜索,但仍然无法达到我想要的效果。

收银员会生成一个随机的序列号和密码,然后保存在数据库中,生成后应将收据打印到收银员默认打印机。每个收银员都有自己的默认打印机。

打印工作正是如此,但正在显示“打印”对话框,如何打印收据但不显示“打印”对话框?

我尝试了很多VB脚本,jquery和Javascripts。一切都失败了。 我正在打印iFrame的内容。

所有收银员都在使用Windows 7和Internet Explorer 10。

“关注”按钮显示iFrame。

protected void Generate_Click(object sender, EventArgs e)
    {
        myIFrame.Visible = true;
    }

在iFrame中加载页面时,将运行Javascript打印帧内容

protected void Page_Load(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(), "Print", "PrintVoucher();", true);
    }

的Javascript

<script type="text/javascript" language="javascript">

    function PrintVoucher() {
        window.focus();
        window.print();
        return;
    }
</script>

1 个答案:

答案 0 :(得分:0)

您应该能够使用已经编写的ActiveX控件。它包含在Windows中,因此可以免费使用。

<script language='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>"
</script>

这将基本上覆盖您已使用的原始打印事件。因此,如果你想打印一些东西,你可以继续使用

window.print();

希望这有帮助。