Печать непосредственно из браузера без всплывающего окна печати
Как сказано в теме, я должен создать функцию для веб-приложения, которое позволит пользователям отправлять печать напрямую, не запрашивая диалогового окна, просто сделайте печать и нажмите и распечатайте, просто! но не для меня:(.
Пожалуйста, предложите, какой будет лучший вариант, и как мне его написать (технология).
Предложите пожалуйста!
Спасибо.
РЕДАКТИРОВАТЬ: Печать должна быть отправлена на принтер по умолчанию пользователя.
Ответы
Ответ 1
Я не мог найти решение для других браузеры. Когда я разместил этот вопрос, IE был на более высокий приоритет, и я с радостью нашел один для него. Если у вас есть решение для других браузеров (firefox, safari, opera), пожалуйста, поделитесь этим. Спасибо.
VBSCRIPT гораздо удобнее, чем создание ActiveX на VB6 или С#/VB.NET:
<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>
Теперь, вызывая:
<a href="javascript:window.print();">Print</a>
отправит печать без всплывающего окна печати.
Ответ 2
AttendStar создал бесплатное дополнение, которое подавляет диалоговое окно печати и удаляет все верхние и нижние колонтитулы для большинства версий Firefox.
https://addons.mozilla.org/en-US/firefox/addon/attendprint/
С помощью этой функции вы можете использовать $('img'). jqprint(); и jqprint для jquery будет печатать только то, что автоматически вызывается из вашего веб-приложения.
Ответ 3
IE9 больше не поддерживает запуск Print() VBScript, вызывая window.print(), как IE7 и IE8, и поэтому window.print() теперь всегда запускает диалог печати в IE9.
Исправление довольно простое. Вам просто нужно вызвать Print(), а не window.print() в событии onclick.
Я более подробно описал исправление в ответе на другой вопрос, с примером рабочего кода с слегка обновленным синтаксисом HTML (насколько это возможно, хотя и проверено как рабочий код).
Здесь вы можете найти пример кода:
Обход печатидиалога в IE9
Ответ 4
Я не считаю, что это возможно. Отображаемое диалоговое окно позволяет пользователю выбрать принтер для печати. Итак, скажем, можно было бы просто щелкнуть и распечатать ваше приложение, и пользователь нажимает кнопку печати, но у него два принтера, подключенные к компьютеру. Или, что более вероятно, этот пользователь работает в офисном здании с 25 принтерами. Без этого диалогового окна, как компьютер узнает, какой принтер распечатать?
Ответ 5
this.print(ложь);
Я пробовал это в Chrome, Firefox и IE. Он работает только в Firefox и IE, он использует принтер по умолчанию (с настройками печати по умолчанию) и работает только при рендеринге PDF (я использую Foxit Reader с безопасным режимом чтения отключен). Chrome отображает диалоговое окно печати, а также другие браузеры при рендеринге HTML-страницы.
Ответ 6
Для браузеров IE работает "решение VBScript".
Но, как упоминалось @purefusion в Обход печатидиалога в IE9, используйте Print(), а не window.print()
Ответ 7
Это должно работать, я попробовал это сам, и это сработало для меня. Если вы передадите True вместо false, появится диалоговое окно печати.
this.print(false);