如何在静音模式下使用 ghostscript 打印

Cha*_*MSV 4 printer printing ghostscript ps

我正在使用以下 Ghostscript 命令打印 postscript 文档:

C:\Program Files\gs\gs9.14\bin>gswin64c.exe -sDEVICE=mswinpr2 testprinter.ps
Run Code Online (Sandbox Code Playgroud)

此命令将打开一个打印对话框,我可以在其中更改打印机、指定打印范围和份数,以及使用确定和取消按钮。

但是,我的要求是让 Ghostscript 只是静默打印以抑制打印对话框。

是否有一个命令开关可以让我静默打印?所以我可以发出命令,打印机打印出来。

我无法从 Google 或互联网上提供的其他各种 Ghostscript 文档中获取任何信息。所以我想与友好且知识渊博的超级用户社区核实一下。

MC *_* ND 9

ghostscript 文档中提取,MS Windows 打印机

如果在 -sOutputFile 中未指定 Windows 打印机名称,Ghostscript 会使用标准的“打印设置”对话框提示输入 Windows 打印机。...

例如,如果使用格式“%printer%printer_name”在 -sOutputFile 中指定了 Windows 打印机名称

gs ... -sOutputFile="%printer%Apple LaserWriter II NT" 
Run Code Online (Sandbox Code Playgroud)

然后 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"     
Run Code Online (Sandbox Code Playgroud)