Как печатать с помощью ghostscript в бесшумном режиме

Как печатать с помощью ghostscript в бесшумном режиме

Я использую следующую команду Ghostscript для печати документа PostScript:

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

Эта команда открывает диалоговое окно «Печать», в котором я могу изменить принтер, указать диапазон печати и количество копий, а также воспользоваться кнопками «ОК» и «Отмена».

Однако мне нужно, чтобы Ghostscript просто печатал молча, подавляя диалоговое окно «Печать».

Есть ли переключатель команд, который позволит мне печатать бесшумно? Так что я могу просто дать команду, и принтер ее напечатает.

Я не смог получить никакой информации от Google или других различных документов Ghostscript, доступных в Интернете. Поэтому я хотел бы проверить с дружелюбным и знающимсупер пользовательсообщество.

решение1

Извлечен издокументация ghostscript, Принтеры MS Windows

Если в -sOutputFile не указано имя принтера Windows, Ghostscript запрашивает принтер Windows с помощью стандартного диалогового окна «Настройка печати».

Если имя принтера Windows указано в -sOutputFile с использованием формата "%printer%printer_name", например

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

затем Ghostscript пытается открыть принтер Windows без запроса (за исключением, конечно, случаев, когда принтер подключен к FILE:)

В зависимости от того, как должен работать конечный процесс, вам, возможно, также понадобятся переключатели -dBATCHи-dNOPAUSE

примечания: %printer%является литералом Ghostscript, но синтаксис будет конфликтовать с cmdсинтаксическим анализатором, который рассматривает его %printer%как операцию чтения переменной.

Внутри пакетных файлов знаки процента можно экранировать, удвоив их ( %%printer%%), но в режиме командной строки нет способа экранировать знак процента, если он находится внутри строки в кавычках (как показано в документации, они необходимы для обработки пробелов в аргументах).

В режиме командной строки есть две альтернативы:

  • Убедитесь, что printerпеременная окружения не существует (если она не существует, то операция чтения не выполняется, а литерал %printer%сохраняется в окончательной выполненной команде).
  • Определите некоторую переменную окружения, чтобы при выполнении операции чтения результирующая команда была корректной.

Вот несколько примеров командной строки:

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"     

Связанный контент