c++ - 无法打开 Windows GDI 打印机驱动程序

标签 c++ windows printing ghostscript

我安装了虚拟打印机,它通过重定向端口进行打印,并通过 gsview\gsprint.exe 将文档发送到真实打印机。当我从普通的 C++ 应用程序中使用 gsprint 时,它可以正常工作。但是,如果通过 Windows 服务(以 SYSTEM 身份运行)调用相同的内容,则会出现以下错误。它可以看到打印机,但可能无法访问它。我使用的是 Windows 10,但 Windows 7 也有同样的问题。我该如何解决这个问题?

2006-02-24 gsprint 1.9 无法打开 Windows GDI 打印机驱动程序 请求的打印机:“SupplyDep”

可用的打印机: “发送到 OneNote 2010” “虚拟打印机” 「供应部」 “微软 XPS 文档编写器” “传真”

最佳答案

我在尝试以 NT 权限/系统用户身份运行 gsprint 时遇到了类似的问题。最后一篇文章在这个link帮了很多忙。基本上,我在我的用户下设置打印机,然后将打印机的注册表项复制到默认用户。

Below are the registry keys I copied from HKEY_CURRENT_USER to HKEY_USERS\.DEFAULT

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts
    HKEY_CURRENT_USER\Printers

您需要重新启动 Print Spooler 服务(或仅重新启动服务器)才能使更改生效。

关于c++ - 无法打开 Windows GDI 打印机驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39569685/

相关文章:

javascript - 如何使用 PHP 或 JavaScript 同时在两台不同的打印机上打印?

c++ - SDL 自身和其他窗口崩溃

c++ - 使用 HWND 切换应用程序全屏

C++ 指向指针数组的指针(具有 LinkedList 冲突处理的哈希表)

c - 在 C (Windows) 中创建新进程和子进程的区别

node.js - 使用 Electron Packager 打包的 Windows Electron 应用程序无法在任务栏中正确显示

.net - RDLC 在半张 A4 上打印

html - 当单元格具有 rowspan 和 colspan 时,Chrome 表格会出现故障

c++ - 将像素更改为符号/字符

windows - 如何在windows 7下安装Skipfish Security scanner?