【发布时间】:2018-03-06 08:29:29
【问题描述】:
PrintQueue 或 PrintTicket 是否有任何属性或方法来确定所选打印机是虚拟打印机? 例如,该进程应限制 M/S Xps Document Writer、Fax、Send To OneNote、PDF Printer 等。 只有实际的打印机应该从 LocalPrintServer 中过滤掉并动态提供一个列表。
using (var _LocalPrintServer = new LocalPrintServer())
{
foreach (PrintQueue _pq in _LocalPrintServer.GetPrintQueues())
{
// To Find some way to determine this _pq is NOT a virtual printer
}
}
【问题讨论】:
-
你看文档了吗,这就是我们必须做的事情
-
我的感觉是这不容易确定,如果有某种方法可以做到这一点,您将需要使用 WMI 和打印机类,并且可能不会 100% 可靠msdn.microsoft.com/en-us/library/aa394363(v=vs.85).aspx
-
我试图参考很多博客,但我没有找到我真正需要的。问题是我需要找到本地安装的物理打印机,而不是那些保存页面并需要用户交互来提供文件名的打印机,再次不是“传真”项目。同样,如果 System.Drawing.Printing 中的任何组件可以为我提供对我来说应该没问题的预期结果。谢谢!
标签: c# printing printqueue