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

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

С кодом C # или javascript все будет в порядке, в зависимости от того, что лучше.

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

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

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

Ответы [ 4 ]

3 голосов
/ 20 октября 2009

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

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

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

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

3 голосов
/ 12 августа 2009

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

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

1 голос
/ 12 августа 2009

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

1 голос
/ 12 августа 2009

Если вы используете 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 = ""; 
}
...