Uma consulta que aparece muito nos vários fóruns Javascript pergunta como enviar a página diretamente para a impressora sem exibir primeiro o caixa de diálogo de impressão.
Em vez de apenas lhe dizer isso isso não pode ser feito talvez uma explicação de por que essa opção não seja possível seria mais útil.
Qual caixa de diálogo de impressão é exibida quando alguém pressiona o botão de impressão no navegador ou no Javascript window.print () O método executado depende do sistema operacional e de quais impressoras estão instaladas no computador.
Como a maioria das pessoas executa o Windows no computador, vamos primeiro descrever como a configuração de impressão funciona nesse sistema operacional. Os sistemas operacionais * nix e Mac diferem ligeiramente nos detalhes, mas no geral são configurados de maneira semelhante.
Caixa de diálogo Imprimir
Existem duas partes na caixa de diálogo de impressão no Windows. O primeiro deles faz parte da API do Windows (Application Programming Interface). A API é um conjunto de partes de código comuns mantidas nas várias DLLs (
Biblioteca de vínculo dinâmico) arquivos que fazem parte do Windows sistema operacional. Qualquer programa do Windows pode (e deve) chamar a API para executar funções comuns, como exibir a caixa de diálogo Imprimir, para que funciona da mesma maneira em todos os programas e não tem opções diferentes em lugares diferentes, como a opção de impressão fazia no programa DOS dias. A API de diálogo de impressão também fornece uma interface comum, permitindo que todos os programas acessem o mesmo conjunto de drivers de impressora. do que os fabricantes de impressoras que precisam criar um software de driver para sua impressora para cada programa individual que deseja usar isto.Os drivers da impressora são a outra metade da caixa de diálogo de impressão. Existem vários idiomas diferentes que impressoras diferentes entendem que usam para controlar como a página é impressa (por exemplo, PCL5 e Postscript). O driver da impressora instrui a API de impressão sobre como converter o formato de impressão interno padrão que o sistema operacional entende na linguagem de marcação personalizada que a impressora específica entende. Também ajusta as opções exibidas na caixa de diálogo Imprimir para refletir as opções oferecidas pela impressora específica.
Operando a impressora
Um computador individual pode não ter impressoras instaladas, pode ter uma impressora local, pode ter acesso a várias impressoras em uma rede, pode até ser configurado para imprimir em PDF ou impressão pré-formatada Arquivo. Onde mais de uma "impressora" é definida, uma delas é designada como a impressora padrão, o que significa que é a única que exibe seus detalhes na caixa de diálogo de impressão quando aparece pela primeira vez.
O sistema operacional controla a impressora padrão e identifica essa impressora para os vários programas no computador. Isso permite que os programas passem um parâmetro extra para a API de impressão, solicitando que imprima diretamente na impressora padrão sem exibir a caixa de diálogo de impressão primeiro. Muitos programas têm duas opções de impressão diferentes - uma entrada de menu que exibe a caixa de diálogo de impressão e um botão de impressão rápida da barra de ferramentas que envia diretamente para a impressora padrão.
Quando você tem uma página da web na internet que seus visitantes imprimirão, você quase não tem informações sobre quais impressoras eles têm disponíveis. A maioria das impressoras em todo o mundo está configurada para imprimir em papel A4, mas você não pode garantir que a impressora esteja configurada com esse padrão. Um país da América do Norte usa um tamanho de papel não padrão menor e mais largo que A4. A maioria das impressoras é configurada para impressão no modo retrato (onde a direção mais estreita é a largura, mas algumas podem ser definidas para a paisagem em que a maior dimensão é a largura. Obviamente, todas as impressoras também têm margens padrão diferentes nas partes superior, inferior e lateral do página antes mesmo que os proprietários entrem e alterem todas as configurações para obter a impressora da maneira que eles quer.
Dados todos esses fatores, você não tem como saber se a impressora padrão com sua configuração padrão imprimirá sua página na web. página A3 com margens desprezíveis ou na A5 com margens enormes (deixando pouco mais do que uma área do tamanho de um selo postal no meio do página). Provavelmente, você pode supor que a maioria terá uma área de impressão na página de aproximadamente 16 cm x 25 cm (mais ou menos 80%).
Necessidades de impressão
Como as impressoras variam muito entre os visitantes em potencial (alguém mencionou impressoras a laser, impressoras a jato de tinta, coloridas ou preto e branco) somente qualidade da foto, modo de rascunho e muito mais), você não tem como saber o que eles precisam fazer para imprimir sua página de maneira razoável. formato. talvez eles tenham uma impressora separada ou um segundo driver para a mesma impressora, fornecendo configurações totalmente diferentes, especificamente para páginas da web.
A seguir, vem a questão do que eles podem querer imprimir. Eles querem a página inteira ou selecionaram apenas uma parte da página que deseja imprimir? Se o seu site usa quadros, eles desejam imprimir todos os quadros da maneira que aparecem na página, eles querem imprimir cada quadro separadamente ou apenas querem imprimir um quadro específico?
A necessidade de responder a todas essas perguntas torna essencial que a caixa de diálogo de impressão seja exibida sempre que deseja imprimir algo para garantir que todas as configurações estejam corretas antes de chegarem à impressão botão. A maioria dos navegadores também oferece a capacidade de adicionar um botão "impressão rápida" a uma das barras de ferramentas do navegador para permitir a página a ser impressa na impressora padrão usando as configurações padrão do navegador quanto ao que deve ser impresso e como.
Javascript
Os navegadores não disponibilizam essa variedade de configurações de navegador e impressora para Javascript. O Javascript está principalmente preocupado em modificar o atual página da web portanto, os navegadores da web fornecem informações mínimas sobre o próprio navegador e quase nenhuma informação sobre o sistema operacional disponível para Javascript porque o Javascript não precisa saber para executar o que o Javascript pretende fazer.
A segurança básica diz que, se algo como Javascript não precisar saber sobre o sistema operacional e configuração do navegador para manipular a página da Web, ela não deve ser fornecida com essa em formação. Não é como se o Javascript pudesse alterar as configurações da impressora para valores apropriados para imprimir a página atual porque não é para isso que serve o Javascript - esse é o trabalho da impressão diálogo. Portanto, os navegadores disponibilizam ao Javascript apenas o que o Javascript precisa saber, como o tamanho da tela, o espaço disponível na janela do navegador para exibir a página e coisas semelhantes que ajudam o Javascript a descobrir como a página é organizada. A página atual é a única preocupação do Javascript.
Intranets
As intranets são, obviamente, uma questão totalmente diferente. Com uma intranet, você sabe que todos acessando a página está usando um navegador específico (geralmente uma versão recente do Internet Explorer) e tem uma resolução de tela específica e acesso a impressoras específicas. Isso significa que faz sentido em uma intranet poder imprimir diretamente na impressora sem exibindo a caixa de diálogo de impressão porque a pessoa que escreve a página da web sabe qual impressora será impresso em.
O substituto do Internet Explorer para Javascript (chamado JScript), portanto, possui um pouco mais de informações sobre o navegador e o sistema operacional do que o próprio Javascript. Os computadores individuais na rede executando a intranet podem ser configurados para permitir que o JScript window.print () O comando grava diretamente na impressora sem exibir a caixa de diálogo de impressão. Essa configuração precisaria ser definida individualmente em cada computador cliente e está muito além do escopo de um artigo sobre Javascript.
Quando se trata de páginas da Web na Internet, não há absolutamente nenhuma maneira de configurar um Comando Javascript para enviar diretamente para a impressora padrão. Se seus visitantes desejarem fazer isso, terão que configurar seu próprio botão "impressão rápida" na barra de ferramentas do navegador.