2013-08-15 6 views
2

У меня есть POS-система на базе Интернета, которая должна получать информацию с сервера и получать печатную клиентскую сторону.отключить диалог печати всплывающее окно

Я провел 2 дня, но все же я не могу достичь того, чего хочу.

Что произойдет, кассир будет генерировать случайный серийный номер и PIN-код, который затем сохраняется в базе данных, после генерации квитанция должна быть распечатана на принтере по умолчанию для кассиров. у каждого кассира есть собственный принтер по умолчанию.

Печать работает точно так, как должно, но отображается диалоговое окно «Печать», как я могу распечатать квитанцию, но не отображать диалоговое окно «Печать»?

Я пробовал много сценариев VB, jquery и Javascripts. все провалились. Я печатаю содержимое iFrame.

Все кассиры используют Windows 7 и Internet Explorer 10.

Кнопка После отображает IFrame.

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

при загрузке страницы в IFrame Javascript запускается, который будет печатать содержимое Frames

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> 
+0

Посмотрите, сможет ли этот ответ (часть IE) помочь http://stackoverflow.com/questions/21908/silent-printing-in-a-web-application – Steve

+0

Желаю вам удачи в вашем поиске, но я думаю, что это функция, которая целенаправленно была исключена из javascript по соображениям безопасности, например, подумайте о числе или практических шутниках, которые будут злоупотреблять этим и заставить печатать тысячи страниц только потому, что вы посетили веб-сайт. – jgok222

ответ

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(); 

Надеюсь, это поможет.

+0

Этот сценарий никогда не работал для меня. – user2285916

Смежные вопросы