Извлечено из документации 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"