Impressão de arquivo em lote

8

Eu tenho um usuário que precisa imprimir cerca de 220 documentos, com média de 2 a 3 páginas cada. Quando impresso usando o método padrão do Windows de Selecionar tudo - Clique com o botão direito do mouse - Imprimir, sobrecarrega o servidor de impressão ou a própria impressora. Estou procurando um utilitário que me permita processar, digamos, 5 documentos por vez que farão todos os documentos em um determinado diretório. Espero que isso alivie a tensão no servidor de impressão e também permita que o usuário não precise cuidar de seus trabalhos de impressão. Encontrei um que permite agendar um trabalho de impressão por um certo tempo, mas (e talvez isso não seja um rompimento de contrato) a ortografia no programa é atroz.

chrispt
fonte

Respostas:

4

Você pode experimentar o manipulador de impressão em lote do DarkStorm Its Free! :-)

O manipulador de impressão em lote do DarkStorm é um aplicativo .Net que irá imprimir em lote documentos. O manipulador de impressão em lote do DarkStorm automatiza o Word / Excel e o Adobe Reader para ajudar no processo de impressão em lote, também fornece suporte para alguns formatos populares de imagem.
Eu ainda não fui capaz de testá-lo

Alternativamente:

Você pode escrever um script simples que pega nomes de um arquivo de texto e os imprime em determinados intervalos. Você pode consultar o conteúdo da pasta de impressão para obter os nomes dos documentos, colocá-los em um arquivo de texto e depois percorrer o arquivo de texto com uma espera até que todos os documentos sejam impressos.

O pseudo-código seria algo parecido com isto.

Populate Text File Function ()  
{  
  Set Folder Path  
  Get Document Names in folder  
  Write Document Names to Text File  
}  
Print Function  
{  
  While Not End of File{  
  Get Document Name  
  Print Document Name  
  Move down 1 line  
      Wait a timed interval  
 }  
}

Minha codificação não é o que costumava ser, então eu posso ter perdido alguns bits, mas acho que está razoavelmente aí. Eu recomendaria Guys Scripting Enzine a procurar amostras de código. Você deve poder recortar e colar a maior parte do código necessário.

Joe Taylor
fonte
uau - DarkStorm's batch print handleré legal.
Sathyajith Bhat
Fazendo o download agora. Todo o script é bom, mas eu prefiro não seguir esse caminho. Indo testar o DarkStorm.
precisa
Eu acho que o aplicativo DarkStorm será bom. A única coisa que seria interessante se eles adicionassem a funcionalidade é a capacidade de agendar o lote para execução em um determinado horário, para que você inicie automaticamente quando sair do dia.
Chrispt
3

Este é um trabalho para a linha de comando.

Com o Cygwin , o script a seguir (que você pode digitar em uma linha de comando do bash) imprimirá todos os arquivos PDF no diretório atual, um a cada 5 segundos.

for x in *.pdf; do cygstart -p -- "$x"; sleep 5; done

Se você não deseja instalar o Cygwin (que é útil para muitas outras coisas), consulte a resposta de Sathya de uma maneira cmd (é um pouco menos direta). A ferramenta de escolha seria o Powershell, que certamente possui todos os componentes necessários (mas eu não falo Powershell).

Gilles 'SO- parar de ser mau'
fonte
cmd has an equivalent of sleep-> substituição bruta seria `ping localhost -n 6> NUL
Sathyajith Bhat
Além disso, startlança um novo aplicativo - ele não possui recursos de impressão.
Sathyajith Bhat
@Sathya: Obrigado. Não estou surpreso que cygstarttenha mais recursos do que o início, mas achei que havia uma maneira de disparar uma ação de impressão do cmd (a ação de impressão chama o aplicativo registrado no registro, solicitando que ele imprima em vez de abrir para edição). Você sabe se existe uma maneira de imprimir em cmd ( printtambém não parece ser isso)?
Gilles 'SO- stop be evil'
@Gilles - uma maneira é copiar os arquivos pdf para a impressora, se estiver configurada como um compartilhamento (de rede) - copy *.pdf \\printer\name. Para processamento em lote cmd tem um forcomando, mas eu estou preso em como fazê-lo executar vários comandos
Sathyajith Bhat
@Sathya: Eu acho algo parecido for %x in (*.pdf) do ( ; command1 ; command2 ; )com as novas linhas em que escrevi ;. Se você pode fazê-lo funcionar, faça uma resposta.
Gilles 'SO- stop be evil'
2

Se você realmente deseja seguir o caminho da linha de comando, copie e cole-o em um arquivo em lotes, altere o caminho e adicione o caminho completo a AcroRd32.exe

cd\path\to\pdf\files
for %%f in ("*.pdf") do AcroRd32.exe /t %%f "\\servername\printername" & ping localhost -n 6 >NUL

Isso mudará o diretório para o que contém arquivos PDF, inicie o Acrobat Reader no modo silencioso, imprima-os e aguarde 5 segundos. Outra alternativa se a impressora for compartilhada é

cd\path\to\pdf\files
for %%f in ("*.pdf") do copy %%f "\\servername\printername" & ping localhost -n 6 >NUL

O que faz o mesmo, mas na minha experiência anterior não obtive bons resultados com essa abordagem - mas é porque os arquivos PDF não possuem as fontes incorporadas.

Sathyajith Bhat
fonte
0

Um ótimo aplicativo de impressão em lote que uso o tempo todo é o SilentPrint. Você pode descobrir mais sobre isso em http://www.silentprint.com . Espero que você ache tão útil quanto eu.

Jimmi Kin
fonte
11
Se você está associado a esse produto, por favor divulgar sua afiliação acordo com o FAQ , caso contrário, suas mensagens pode ser removido como promocional
slhck