printing - Ghostscript - 如何在 Windows10 或 Windows Server 2012 上抑制打印对话框
问题描述
我正在从 Windows 10 或 Windows Server 2012 下的 Windows 服务调用以下内容(用于执行命令的 C# 程序),但没有打印任何内容。我可以将发送的命令复制并粘贴到命令提示符中,但它会弹出一个打印对话框,我必须单击“确定”才能打印文件(它确实如此)。我需要添加什么开关以使对话框不会出现并且文件将直接打印而无需用户干预,因为其目的是作为 Windows 服务在无人值守的情况下工作?这是 Ghostscript 9.50,它是今天最新的。在较早版本的 ghostscript 中,如果设备设置为 ljet4,这会起作用,但这会导致 9.50 出现错误。此外,输出文件在输出文件上没有 %printer% 前缀,之前它的前缀是 \\spool\。我已经尝试了所有这些组合。是导致不需要的对话框的 mswinpr2 吗?我猜这是阻止打印发生的原因。
gswin64c -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies#1 -sDEVICE#mswinpr2 -sOutputFile#"%%printer%%HP LaserJet Professional P1109w" "\\2-DYQJKC2\c$\Webs\myfolder\Public\Reports\HIPAACert\189\H01519447A2191016103332.pdf"
解决方案
我最近遇到了同样的问题。我添加了一个 -dQueryUser=3 参数。有关使用 -dQueryUser=N 的文档可在以下位置找到: https ://www.ghostscript.com/doc/9.25/Devices.htm#Win 在 10.2 支持的选项(设备属性)部分。
在 Windows 10 上的批处理文件中说明这一点的代码是:
SET MY_EXECUTABLE_PATH=C:\Program Files\gs\gs9.53.3\bin
for %%i in (*.pdf) do "%MY_EXECUTABLE_PATH%"\gswin64c.exe -sDEVICE=mswinpr2 -dBATCH -dNOPAUSE -dPDFFitPage -dQueryUser=3 -sOutputFile="%printer%Printer_Name" "%%i"
推荐阅读
- mysql - 在 MySQL Workbench 中导入 CSV 文件时未正确识别源列
- avaloniaui - AvaloniaUI 中的 xaml 编译问题
- c - 使用指针对数组进行排序 - C 编程
- django - 将用户输入从一个模板传递到多个其他模板
- java - 从 512 位字符串创建 PublicKey
- python - 如何使用python模块将一种json格式转换为另一种格式
- c++ - 如果在 C++ 中,如何将 gcc __is_class 与预处理器一起使用
- node.js - 具有 RedBird.js 和 Node.js 的 SSL 证书,在一台服务器上具有两个域
- r - 你如何打印上面的时间序列描述?
- javascript - 代码在控制台上运行良好,但在通过浏览器扩展注入时出错(适用于 chrome 而不是 Firefox)