我有一个由 Microsoft Reporting 创建的报表文档,但我没有使用它的查看器来显示文档并打印它,而是使用 PrintDocument 类直接打印它而不向用户显示任何窗口。
在我安装了热敏打印机并禁用了它的 Spooler 之前,它运行良好。现在偶尔我会收到一个 Win32Exception 指示“设备未准备好”。我想这是因为我禁用了 Spooler,但由于打印机问题,我无法启用它。
那么,我对这个问题是否正确?如果是这样,是否有在发送打印命令之前检查打印机?
我有一个由 Microsoft Reporting 创建的报表文档,但我没有使用它的查看器来显示文档并打印它,而是使用 PrintDocument 类直接打印它而不向用户显示任何窗口。
在我安装了热敏打印机并禁用了它的 Spooler 之前,它运行良好。现在偶尔我会收到一个 Win32Exception 指示“设备未准备好”。我想这是因为我禁用了 Spooler,但由于打印机问题,我无法启用它。
那么,我对这个问题是否正确?如果是这样,是否有在发送打印命令之前检查打印机?
GetPrinter()返回的PRINTER_INFO_2结构应该返回打印机状态。Microsoft 知识库文章“如何获取打印机和打印作业的状态”包括用 C 编写的示例代码。