Imprimir vários arquivos em mais de uma impressora com VBScript

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.