Como imprimir com ghostscript no modo silencioso

4

Estou usando o seguinte comando do Ghostscript para imprimir um documento de postscript:

C:\Program Files\gs\gs9.14\bin>gswin64c.exe -sDEVICE=mswinpr2 testprinter.ps

Este comando abre uma caixa de diálogo Imprimir, na qual eu posso alterar a impressora, especificar o intervalo de impressão e cópias, e com os botões Ok e Cancelar.

No entanto, minha exigência é fazer com que o Ghostscript apenas imprima silenciosamente a caixa de diálogo Imprimir.

Existe uma chave de comando que me permite imprimir silenciosamente? Então, posso simplesmente emitir o comando e a impressora imprimi-lo.

Não consegui nenhuma informação do Google ou de outros documentos do Ghostscript disponíveis na Internet. Por isso, gostaria de verificar com a comunidade amigável e bem informada de super usuários .

    
por Chaitanya MSV 04.09.2014 / 06:19

1 resposta

7

Extraído de documentação do ghostscript , Impressoras MS Windows

If no Windows printer name is specified in -sOutputFile, Ghostscript prompts for a Windows printer using the standard Print Setup dialog box. ...

If a Windows printer name is specified in -sOutputFile using the format "%printer%printer_name", for instance

gs ... -sOutputFile="%printer%Apple LaserWriter II NT" 

then Ghostscript attempts to open the Windows printer without prompting (except, of course, if the printer is connected to FILE:)

Dependendo de como o processo final deve funcionar, talvez você também precise dos -dBATCH e -dNOPAUSE switches

notas : %printer% é um literal do Ghostscript, mas a sintaxe colidirá com cmd analisador que vê %printer% como uma operação de leitura variável.

Dentro dos arquivos em lote, os sinais de porcentagem podem ser ignorados, dobrando-os ( %%printer%% ), mas no modo de linha de comando não há como escapar do sinal de porcentagem se estiver dentro de uma string (como mostrado na documentação, eles são necessários para manipular espaços em argumentos).

No modo de linha de comando, existem duas alternativas:

  • Assegure-se de que a variável de ambiente printer não exista (se ela não existir, a operação de leitura não será executada e o literal %printer% será mantido no comando final executado).
  • Defina alguma variável de ambiente para que, quando a operação de leitura for executada, o comando resultante esteja correto.

Apenas alguns exemplos de linha 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"     
    
por 04.09.2014 / 09:08