我是 C# 新手,被指派控制打印服务器上的打印作业(暂停、身份验证、恢复),该服务器连接了近 50 台 IP 打印机。
现在,我可以在运行时使用 printServer 类暂停和访问开发 PC 上特定打印机的打印作业的详细信息,例如:
PrintServer myprintServer = new PrintServer();
foreach (var job in myprintServer.GetPrintQueue("printerA").GetPrintJobInfoCollection())
job.pause();
当我的程序正在运行并且打印作业来自打印机B或打印机C时,它们不受控制。我必须为所有不可能的事情运行单独的循环。
有没有办法控制和暂停所有打印作业,无论它们是来自打印机 A、b、c 等,这些作业在打印服务器上接收并检查身份验证。要么我没有在 System.Printing 命名空间中找到所需的方法,要么任务无法实现。
最佳答案
GetPrintQueues
应返回打印机上所有打印队列的集合:
PrintServer myprintServer = new PrintServer();
foreach (var queue in myprintServer.GetPrintQueues)
foreach (var job in queue.GetPrintJobInfoCollection())
job.pause();
请注意,有一个 overload它采用有效打印队列类型的列表
或者使用 Linq 中的 SelectMany
:
foreach (var job in queue.GetPrintQueues.SelectMany(q => GetPrintJobInfoCollection())
job.pause();
关于c# - 如何使用 PrintServer 类和 PrintQueue 类控制 PrintServer 上的所有打印作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20615592/