I've been trying to use System.Drawing.Printing;
in order to get the queue status of a network printer.
I can retrieve the properties of the printer but I can't really seem to get the queue status.
This is what I've tried so far:
PrinterSettings ps = new PrinterSettings();
ps.PrinterName = "ES5461 MFP(PCL)"; // Load the appropriate printer's setting
From there I can see that the Printer is valid since ps.IsValid
is true
but I can't go any further.
I've tried as well to use System.Management
to retrieve the status but I just know how to dump the information and there's no queue information as well.
string printerName = "ES5461";
string query = string.Format("SELECT * from Win32_Printer WHERE Name LIKE '%{0}%'", printerName);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection coll = searcher.Get();
foreach (ManagementObject printer in coll)
{
foreach (PropertyData property in printer.Properties)
{
Console.WriteLine(string.Format("{0}: {1}", property.Name, property.Value));
}
}
Do you know of any way to retrieve the queue status (number of documents) using any .dll?
Thanks to Nissim I could solve it:
As you can see using the
PrintServer
(System.Printing
) combined with thePrintQueue
as suggested by Nissim I can actually access to the queue information.