Esta dica trata da impressão automática silenciosa (sem mostrar o diálogo de impressão) no navegador web Mozilla Firefox, que por razão de segurança impede que esta seja feita.
No navegador Internet Explorer, até a versão 6 (desconheço a versão 7 e seus mecanismos de segurança) é possível, utilizando de VBScript, executar esta impressão silenciosa, porém no Firefox somente é possível se alterada a configuração do navegador.
Configurando
A versão do Firefox que testei foi a 2.0, porém existem registros que isto é funcional desde a versão 1.0.
Vamos aos passos necessários:
1) Digite na barra de endereços:
about:config
Será visualizado a lista de configurações do navegador.
2) Clique com o botão direito, selecione:
Nova opção -> Boolean
Abrirá dialogo para criação de nova opção de configuração.
3) Digite o seguinte nome para a configuração:
print.always_print_silent
Pressione OK
4) Selecione true para habilitar a configuração;
A partir de agora o diálogo de impressão não será mais exibido.
Caso exista a necessidade de desabilitar esta impressão automática, faça novamente o passo 1, localize a linha com o nome print.always_print_silent, clique duplo sobre ela, assim marcando-a como "false".
Possibilitar a impressão sem diálogo pode ser considerado uma falha de segurança, porém existem situações que isto é necessário, como por exemplo, no sistema Carga On-line (APPA).
Quando for criada função de impressão automática silenciosa na página HTML, deverá ser levado em conta o cross-browsing, que no Internet Explorer será necessária a utilização de um Objeto Active-X (clsid:8856F961-340A-11D0-A96B-00C04FD705A2), com este propósito:
exemplo (impressao.html):
<object id="IMPRESSAO" classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
<script>
ns = document.layers;
ie = document.all;
ns6 = (document.getElementById && !document.all);
onload = function()
{
if (ie)
{
try{
ax = document.getElementById('IMPRESSAO');
ax.ExecWB(6,11);
/*use 6, 1 to mostrar o diálogo de impressão
ou 6, 6 para ocultar*/
}catch(e){
alert("Objeto não encontrado!");
}
}else{//Firefox
window.print();
}
}
</script>
Retificando:
Onde le-se "como por exemplo, no sistema Carga On-line (APPA)."
entenda como "como por exemplo, em sistemas de PDV".
obrigado