Tive uma dificuldade para encontrar/montar esta solução. Com o script a seguir é possível imprimir todos os arquivos de um determinado diretório na impressora que você escolher, sem que apareça a tela de impressão. Desta maneira, também pode-se criar dois arquivos para imprimir em duas impressoras distintas, exemplo: uma compra feita na praça de alimentação onde é impresso o ticket com a senha no atendimento e na cozinha o pedido.
Entenda algumas coisas antes:
- É possível imprimir apenas na impressora padrão;
- Você terá que achar uma solução para executar o VBScript (arquivo.vbs) no seu projeto;
- Para executar o arquivo com o PHP, veja http://www.rafaelzottesso.com.br/?p=205
Como o script funciona:
- É definida uma nova impressora padrão (a que se deseja imprimir os arquivos);
- Todos os arquivos do diretório são enviados para esta impressora;
- Por último define-se a impressora padrão antiga;
Crie um arquivo com a extensão .vbs e cole o seguinte conteúdo:
' Script para impressão de documentos ' Modificado por Rafael Zottesso ' ****************************** ' Cria a variável para definir a impressora padrão Set objPrinter = CreateObject("WScript.Network") ' Para impressora da rede utilize "\servidorNome da Impressora" objPrinter.SetDefaultPrinter "Nome da Impressora" ' Define o diretório TargetFolder = "C:UserszOttEssODesktoptestelog" Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(TargetFolder) ' Lista os arquivos Set colItems = objFolder.Items For Each objItem in colItems ' Imprime os arquivos encontrados objItem.InvokeVerbEx("Print") Next ' Define-se a impressora padrão após 5 segundos Wscript.Sleep 5000 Set oldPrinter = CreateObject("WScript.Network") oldPrinter.SetDefaultPrinter "Nome da Impressora Padrão Antiga"
Não tenho conhecimento em VBScript. Esta solução foi a que consegui para meu problema.