Подтвердить что ты не робот

Печать непосредственно из браузера без всплывающего окна печати

Как сказано в теме, я должен создать функцию для веб-приложения, которое позволит пользователям отправлять печать напрямую, не запрашивая диалогового окна, просто сделайте печать и нажмите и распечатайте, просто! но не для меня:(.

Пожалуйста, предложите, какой будет лучший вариант, и как мне его написать (технология).

Предложите пожалуйста!

Спасибо.

РЕДАКТИРОВАТЬ: Печать должна быть отправлена ​​на принтер по умолчанию пользователя.

4b9b3361

Ответ 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);