我按照这里的建议开始我的解决方案 GhostScript 以静音模式打印到网络打印机
并将其作为命令行
gswin32c.exe -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=mswinpr2 -sOutputFile="%printer%\\printserver\testprinter" "C:\absolute\file\path.pdf"
当打印机可用时,它工作得很好。当打印机不可用(或不存在)时,它会生成一个打印对话框。此命令由自定义 cron 服务运行,因此当对话框在非交互式用户上打开时会卡住。
是否有一个命令行开关可以告诉它发送到 STDERR 并使打印作业失败?
或者,有没有办法让 ghostscript 输出可用的设备,然后我可以在打印之前搜索该设备?
答案1
我找到了一个解决方案。
使用该命令,wmic printer get Name
我获得了打印机名称列表。然后,如果所需的打印机在列表中,我允许 ghostscript 命令运行,如果不在,则阻止它。这有助于降低非交互式用户弹出打印机选择对话框导致锁定的可能性。