Estoy usando el siguiente comando de Ghostscript para imprimir un documento postscript:
C:\Program Files\gs\gs9.14\bin>gswin64c.exe -sDEVICE=mswinpr2 testprinter.ps
Este comando abre un cuadro de diálogo Imprimir donde puedo cambiar la impresora, especificar el rango de impresión y las copias, y con los botones Aceptar y Cancelar.
Sin embargo, mi requisito es hacer que Ghostscript simplemente imprima silenciosamente suprimiendo el cuadro de diálogo Imprimir.
¿Existe algún interruptor de comando que me permita imprimir en silencio? Entonces puedo emitir el comando y la impresora lo imprime.
No pude obtener ninguna información de Google ni de otros documentos de Ghostscript disponibles en Internet. Así que me gustaría consultar con el amable y conocedorsuperusuariocomunidad.
Respuesta1
Extraído dedocumentación de script fantasma, Impresoras MS Windows
Si no se especifica ningún nombre de impresora de Windows en -sOutputFile, Ghostscript solicita una impresora de Windows mediante el cuadro de diálogo estándar Configuración de impresión. ...
Si se especifica un nombre de impresora de Windows en -sOutputFile usando el formato "%printer%printer_name", por ejemplo
gs ... -sOutputFile="%printer%Apple LaserWriter II NT"
luego Ghostscript intenta abrir la impresora de Windows sin que se le solicite (excepto, por supuesto, si la impresora está conectada a ARCHIVO:)
Dependiendo de cómo debería funcionar el proceso final, tal vez también necesites los interruptores -dBATCH
y-dNOPAUSE
notas: %printer%
es un literal de Ghostscript pero la sintaxis colisionará con cmd
el analizador que lo ve %printer%
como una operación de lectura de variable.
Dentro de los archivos por lotes, los signos de porcentaje se pueden escapar duplicándolos ( %%printer%%
), pero en el modo de línea de comando no hay ninguna manera de escapar del signo de porcentaje si está dentro de una cadena entre comillas (como se muestra en la documentación, son necesarios para manejar espacios en argumentos).
En modo línea de comando existen dos alternativas:
- Asegúrese de que la
printer
variable de entorno no exista (si no existe, entonces la operación de lectura no se ejecuta y el literal%printer%
se mantiene en el comando final ejecutado). - Defina alguna variable de entorno para que cuando se ejecute la operación de lectura el comando resultante sea correcto.
Sólo algunos ejemplos de línea de comando:
rem ensure the variable does not exist
set "printer="
gs ... -sOutputFile="%printer%Apple LaserWriter II NT"
rem store the full literal
set p=%^printer%
gs ... -sOutputFile="%p%Apple LaserWriter II NT"
rem store the percent sign
set "p=%"
gs ... -sOutputFile="%p%printer%p%Apple LaserWriter II NT"