Как печатать с 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 без запроса (за исключением, конечно, если принтер подключен к файлу:)

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