PrintQueue或PrintTicket是否有任何属性或方法来确定所选的打印机是虚拟打印机?

时间:2018-03-06 08:29:30

标签: c# printing printqueue

PrintQueue或PrintTicket是否有任何属性或方法来确定所选的打印机是虚拟打印机? 例如,该过程应限制M / S Xps文档编写器,传真,发送到OneNote,PDF打印机等。 只应从LocalPrintServer过滤掉实际的打印机并动态提供列表。

[a.decode('utf-8').replace("\xa0","") for a in data]

1 个答案:

答案 0 :(得分:0)

您需要在Win32_Printer

中探测属性
How to write a sync adapter for synchronizing data from your server to the Contacts Provider

也许您可以检查System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_Printer"); ManagementObjectSearcher mos = new ManagementObjectSearcher(oq); ManagementObjectCollection moc = mos.Get(); foreach( ManagementObject mo in moc ) { string name = mo["Name"].ToString(); string language = mo["DefaultLanguage"].ToString(); MessageBox.Show(String.Format("Printer: {0} -- Language: {1}", name, language); } 字段中的postscipt或pcl(只是猜测),但您可能只需要检查所有打印机之间的差异,以找到松散的指示性方式。

在任何情况下,我都相当自信没有办法确切地检查你想要什么,因为没有关于你的规格的虚拟打印机字段。