Как я могу распечатать HTML-документ с C# или javascript без подтверждения пользователя?

StackOverflow https://stackoverflow.com/questions/1263171

Вопрос

Я хотел бы отправить задание на печать на принтер, чтобы пользователю не приходилось нажимать «ОК» в диалоговом окне подтверждения печати.

Подойдет либо код программной части C#, либо JavaScript, в зависимости от того, что работает лучше.

Так...Я знаю, что HTML-документ можно распечатать, но можно ли распечатать без нажатия пользователем кнопки "ОК"?

  • Причина, по которой я спрашиваю об этом, заключается в том, что задание на печать распечатывает документ 100 раз, динамически вставляя значения формы.(Представьте, что вы распечатываете благодарственные открытки 100 людям и не хотите менять имя 100 раз).Если пользователю необходимо подтвердить задание на печать для каждого из этих документов, выполнение только одного задания на печать займет некоторое время.А теперь представьте, если бы за один день поступило 100 заданий на печать!Это один человек тратит часы только на то, чтобы нажать «ОК» 10 000 раз.

Примечание: Только один человек должен будет использовать форму для печати, поэтому, если речь идет о снижении уровня безопасности в браузере, это сработает.Мне просто нужен способ, позволяющий пройти всем 100 отпечаткам без подтверждения каждого (даже 1 подтверждение на 100 было бы хорошо, но документ все равно придется менять каждый раз).

Это было полезно?

Решение

Из любого крупного браузера — я почти уверен, что вы не сможете.

Вы можете создать приложение WinForm, в которое встроен элемент управления WebBrowser, и печатать оттуда без подтверждения пользователя (если я правильно помню, у объекта есть метод Print).

Другие советы

Я нашел этот вопрос, когда искал решение этой проблемы, и публикую его здесь, по крайней мере, для собственной справки.Это можно сделать довольно просто в Firefox (проверено с помощью v.3.5):

  • Перейдите к about:config в адресной строке Firefox.
  • Щелкните правой кнопкой мыши первый параметр, выберите «Создать» -> логическое значение -> добавьте «print.always_print_silent» -> значение «true».
  • Перезапустите Firefox

Теперь, если вы вызовете window.print() из javascript, страница будет распечатана без предварительного подтверждения.

Источник: http://forums.mozillazine.org/viewtopic.php?f=40&t=48336&start=0

Если вы используете Internet Explorer 5.5 или более позднюю версию, это должно работать:

function printit(){ 
    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; 
    document.body.insertAdjacentHTML('beforeEnd', WebBrowser); WebBrowser1.ExecWB(6, -1); 
    WebBrowser1.outerHTML = ""; 
}

Почему бы не создать одну страницу со всеми 100 карточками и не распечатать ее, просто убедитесь, что у вас есть соответствующие разрывы страниц.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top