我正在尝试在静默模式下从命令行将 PDF 打印到网络打印机。
不幸的是,Ghost Script 打开了 Windows 打印机对话框。
我用Windows 2008 R2 Server
。
我的命令是:
gswin64c.exe -dBATCH -dNOPAUSE -dNumCopies=1 -sDEVICE=mswinpr2 -sOutputFile="%printer%MEasyCoder PC4 (203 dpi) on aino1" "pdf.pdf"
打印机名称为:MEasyCoder PC4 (203 dpi) on aino1
并且它是连接到AINO1
计算机的网络打印机。
打印机对话框如下所示:
在打印机面板中它看起来像:
什么是正确的命令行来避免此对话框并静默打印?
答案1
使用 GhostScript (gswin32c.exe) 在静默模式下打印到网络打印机的正确方法是使用 \\spool\,然后在 sOutput 上使用完整的 UNC 路径。所有参数都区分大小写。另外,请务必包含双引号。
gswin32c.exe -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=mswinpr2 -sOutputFile="\\spool\\\SRV-SBS01\iR-ADVC5030_PS_BW" "C:\Windows\Temp\~Packlist.pdf"
答案2
根据 Ghostscript 输出设备、MS Windows 打印机的详细信息:
如果在 -sOutputFile 中使用以下格式指定了 Windows 打印机名称
"%printer%printer_name"
,例如:gs ... -sOutputFile="%printer%Apple LaserWriter II NT"
然后 Ghostscript 会尝试打开 Windows 打印机而不提示(当然,除非打印机已连接到 FILE:)。Ghostscript 会尝试设置 Windows 打印机页面大小和方向以匹配 Ghostscript 的预期,但并不总是成功。它使用以下算法:(此处未引用)
示例命令为(来源):
gswin64c.exe -sDEVICE=mswinpr2 -dBATCH -dNOPAUSE -sOutputFile="%printer%\\printServer\printerNameWith Spaces" testprinter.ps
答案3
答案4
你必须使用\\
%printer%\\ainoMEasyCoder...