4

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

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

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

Однако мое требование - заставить Ghostscript просто печатать, молча подавляя диалог печати.

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

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

1 ответ1

7

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

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

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

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

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

В зависимости от того, как должен работать финальный процесс, возможно, вам также понадобятся -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"     

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .