2013-04-19 2 views
1

В моем приложении я хочу напечатать файл PDF, который находится в iframe. Вот мой код ..Как распечатать содержимое iframe без открытия окна popup

<iframe src="pdf/output.pdf" id="pdfFrame"></iframe> 

А вот сценарий для печати PDF ..

document.getElementById("pdfFrame").focus(); 
document.getElementById("pdfFrame").contentWindow.print(); 

Код выше работает отлично, но он открывает окна всплывающего окна перед печатью. Но по моему требованию я хочу прямой лазерный принтер, не открывая всплывающее окно.

Есть ли способ сделать это ???

+2

Нет, вы не можете, нет способа вызвать принтер без вмешательства пользователя. Я бы разозлился, если бы какой-то веб-сайт начал печатать материал, даже не изменив настройки. –

+0

Спасибо за ответ Хуан Мендес. Согласно одному сообщению о переполнении стека, мы можем сделать это с помощью скрипта vb .. пожалуйста, обратитесь к этому URL: http://stackoverflow.com/questions/1096862/print-directly-from-browser-without-print-popup-window –

+0

Но сценарий VB для меня новый, можете ли вы рассказать мне, в ссылке выше ... как я могу использовать скрипт vb для печати PDF-файла, который находится в iframe? –

ответ

0

Единственный способ обойти диалоговое окно печати - настроить настройки в IE и написать VBScript.

См Bypass Printdialog in IE9

Он работает только в IE9, если вы можете изменить настройки ActiveX каждого клиента. Действительно следует использовать только в сценарии интрасети, где вы контролируете клиентов.

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

<object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"> </object> 
<a href="#" onclick="Print()">Click Here to Print</a> 
Смежные вопросы