Impresión de archivo por lotes

8

Tengo un usuario que tiene que imprimir unos 220 documentos con un promedio de 2-3 páginas cada uno. Cuando se imprime utilizando el método estándar de Windows de Seleccionar todo - Hacer clic con el botón derecho - Imprimir, abruma al servidor de impresión o a la impresora. Estoy buscando una utilidad que me permita procesar, por ejemplo, 5 documentos a la vez que haga todos los documentos en un directorio determinado. Espero que esto alivie la tensión en el servidor de impresión y también permita que el usuario no tenga que cuidar de sus trabajos de impresión. Encontré uno que le permite programar un trabajo de impresión para un cierto tiempo, pero (y tal vez esto no es un factor decisivo) la ortografía en el programa es atroz.

cristo
fuente

Respuestas:

4

Puede probar el controlador de impresión por lotes de DarkStorm ¡ Es gratis! :-)

El controlador de impresión por lotes de DarkStorm es una aplicación .Net que imprimirá documentos por lotes. El controlador de impresión por lotes de DarkStorm automatiza Word / Excel y Adobe Reader para ayudar en el proceso de impresión por lotes, también proporciona soporte para algunos formatos de imagen populares.
Aunque no he podido probarlo

Alternativamente:

Podría escribir un script simple que tome nombres de un archivo de texto y los imprima a ciertos intervalos. Puede consultar el contenido de la carpeta de impresión para obtener los nombres de los documentos, ponerlos en un archivo de texto y luego recorrer el archivo de texto con una espera intermedia hasta que se impriman todos los documentos.

El pseudocódigo se vería así.

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  
 }  
}

Mi codificación no es lo que solía ser, así que puede haber perdido algunos bits, pero creo que está razonablemente allí. Recomendaría Guys Scripting Enzine para buscar muestras de código. Debería poder cortar y pegar la mayor parte del código que necesita.

Joe Taylor
fuente
wow, DarkStorm's batch print handlerestá bien.
Sathyajith Bhat
Descargando ahora. Todas las secuencias de comandos son agradables, pero prefiero no seguir esa ruta. Voy a probar DarkStorm.
Chris
Creo que la aplicación DarkStorm será buena. Lo único que sería bueno si agregaran la funcionalidad es la capacidad de programar el lote para que se ejecute en un momento determinado para que pueda iniciarlo automáticamente cuando se vaya por el día.
cristo
3

Este es un trabajo para la línea de comando.

Con Cygwin , el siguiente script (que puede escribir en una línea de comando bash) imprimirá cada archivo PDF en el directorio actual, uno cada 5 segundos.

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

Si no desea instalar Cygwin (que es útil para muchas otras cosas), vea la respuesta de Sathya para una forma cmd (es un poco menos sencillo). La herramienta de elección sería Powershell, que seguramente tiene todos los bloques de construcción necesarios (pero no hablo Powershell).

Gilles 'SO- deja de ser malvado'
fuente
cmd has an equivalent of sleep-> el reemplazo crudo sería `ping localhost -n 6> NUL
Sathyajith Bhat
Además, startlanza una nueva aplicación: no tiene ninguna capacidad de impresión.
Sathyajith Bhat
@Sathya: Gracias. No me sorprende que cygstarttenga más capacidades que el inicio, pero pensé que había una manera de activar una acción de impresión desde cmd (la acción de impresión invoca la aplicación registrada en el registro, diciéndole que imprima en lugar de abrir para editar). ¿Sabes si hay una forma de imprimir en cmd ( printparece que tampoco lo es)?
Gilles 'SO- deja de ser malvado'
@Gilles: una forma es copiar los archivos pdf a la impresora, si está configurado como un recurso compartido (de red) copy *.pdf \\printer\name. Para el procesamiento por lotes, cmd tiene un forcomando, pero estoy atascado en cómo hacer que ejecute múltiples comandos
Sathyajith Bhat
@Sathya: Creo que es algo parecido for %x in (*.pdf) do ( ; command1 ; command2 ; )a las nuevas líneas donde escribí ;. Si puede hacer que funcione, por favor, responda.
Gilles 'SO- deja de ser malvado'
2

Si realmente quiere ir por la línea de comando, copie y pegue esto en un archivo por lotes, cambie la ruta y agregue la ruta completa a AcroRd32.exe

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

Esto cambiará el directorio a uno que contenga archivos PDF, inicie Acrobat Reader en modo silencioso, imprímalos y espere 5 segundos. Otra alternativa si la impresora es compartida es

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

Lo que hace lo mismo, pero en mi experiencia pasada no obtuve buenos resultados con este enfoque, pero es porque los archivos PDF no tienen las fuentes incrustadas en ellos.

Sathyajith Bhat
fuente
0

Una gran aplicación de impresión por lotes que uso todo el tiempo es SilentPrint. Puede obtener más información al respecto en http://www.silentprint.com . Espero que lo encuentres tan útil como yo.

Jimmi Kin
fuente
1
Si está asociado con ese producto, divulgue su afiliación según las preguntas frecuentes , de lo contrario, sus publicaciones podrían eliminarse como promocionales
slhck