Como posso imprimir um documento HTML a partir de C # ou javascript sem confirmação do usuário?

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

Pergunta

Gostaria de enviar um trabalho de impressão para a impressora sem que o usuário precise clicar em "OK" na janela de diálogo de confirmação de impressão.

De qualquer C # code-behind ou javascript seria bom, o que funciona melhor.

Então ... Eu sei que possível imprimir um documento HTML, mas é possível imprimir sem que o usuário clicar OK ?

  • A razão que eu peço é porque o trabalho for impresso imprimir um documento de 100 vezes, inserindo dinamicamente valores de formulário. (Imagine que você estava imprimindo fora de um cartão de agradecimento para 100 pessoas, e não queria mudar o nome a si mesmo 100 vezes). Se o usuário tem que confirmar o trabalho de impressão para cada um destes documentos, que vai demorar um pouco para terminar apenas um trabalho de impressão. Agora imagine se 100 trabalhos de impressão entrou em um dia! Essa é uma pessoa passar horas apenas para clicar em "ok" 10000 vezes.

Nota: É apenas uma pessoa que está indo para necessidade de usar a forma de impressão, por isso, se é uma questão de reduzir problemas de segurança no navegador que iria funcionar. Eu só preciso de uma maneira de permitir que todos os 100 impressões para percorrer sem confirmação de cada um (mesmo apenas 1 a confirmação por 100 seria bom, mas o documento ainda tem de mudar de cada vez).

Foi útil?

Solução

De qualquer grande navegador - eu tenho certeza que você não pode.

Você pode criar um aplicativo WinForm que tem um controle WebBrowser embutido nele e imprimir a partir de lá sem a confirmação do usuário (se bem me lembro, há um método de impressão fora do objeto).

Outras dicas

Eu encontrei esta pergunta como eu estava à procura de uma solução para este problema, e eu postá-lo aqui, pelo menos para a minha própria referência. Isso pode ser feito bastante simples no Firefox (testado com v 3.5.):

  • Vá para about: config na barra de endereços do Firefox
  • Botão direito do mouse na primeira configuração, vá para o novo -> boolean -> adicionar "print.always_print_silent" -> valor "true"
  • Restart Firefox

Agora, se você chamar window.print () do javascript a página é impressa sem confirmação prévia.

Fonte: http://forums.mozillazine.org/viewtopic .php? f = 40 & t = 48336 & start = 0

Se você estiver usando o Internet Explorer 5.5 ou mais tarde, isso deve funcionar:

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 = ""; 
}

Por que não criar uma única página com todos os 100 cartões e imprimir que, apenas garantir que você tem quebras de página apropriados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top