C# 打印时 如何获取发送到打印队列里的jobid
C# 打印时 如何获取打印队列里指定的jobid
我已经能获取到打印队列里所有的jobid,代码如下:
public static StringCollection GetPrintJobsCollection(string printerName)
{
StringCollection printJobCollection = new StringCollection();
string searchQuery = "SELECT * FROM Win32_PrintJob";
/*searchQuery can also be mentioned with where Attribute,
but this is not working in Windows 2000 / ME / 98 machines
and throws Invalid query error*/
ManagementObjectSearcher searchPrintJobs =
new ManagementObjectSearcher(searchQuery);
ManagementObjectCollection prntJobCollection = searchPrintJobs.Get();
foreach (ManagementObject prntJob in prntJobCollection)
{
System.String jobName = prntJob.Properties["Name"].Value.ToString();
//Job name would be of the format [Printer name], [Job ID]
char[] splitArr = new char[1];
splitArr[0] = Convert.ToChar(",");
string prnterName = jobName.Split(splitArr)[0];
string printJobId = jobName.Split(splitArr)[1];
string documentName = prntJob.Properties["Document"].Value.ToString();
if (String.Compare(prnterName, printerName, true) == 0)
{
printJobCollection.Add(printJobId);
}
}
return printJobCollection;
}
我有一个dataGridView,里面有很多条要打印的订单数据,可以随时打印其中任意一个,或者暂停打印
每次点打印,会往打印队列里发一个指令,请问如何获取是哪个指令的任务?