Estoy buscando una manera de obtener una lista o cantidad de trabajos de una impresora en particular. En el mejor de los casos, me gustaría tener un "Objeto de trabajo" que represente un trabajo de impresión y su nombre en la cola de impresión.¿Cómo recupero una lista o número de trabajos de una cola de impresora?
Esto es necesario porque necesito hacer un seguimiento del estado de una impresora para que pueda volver a llenar la cola de impresión con un nuevo lote de documentos sin desbordar la cola de impresión
Gracias de antemano!
Editar: añadido fragmento de código de solución
private int GetNumberOfPrintJobs()
{
LocalPrintServer server = new LocalPrintServer();
PrintQueueCollection queueCollection = server.GetPrintQueues();
PrintQueue printQueue = null;
foreach (PrintQueue pq in queueCollection)
{
if (pq.FullName == PrinterName)
printQueue = pq;
}
int numberOfJobs = 0;
if (printQueue != null)
numberOfJobs = printQueue.NumberOfJobs;
return numberOfJobs;
}
Ya he echado un vistazo a esta. Pero requiere un objeto PrintServer para crear instancias. Estoy usando impresoras que están instaladas localmente. ¿Esto supondría un problema? Pero esta sería sin duda una solución ideal. Ya tengo una construcción while() para sondear mientras imprimo en un hilo y necesito una construcción de bloqueo. Además, esta impresora es muy lenta;) –
Utilice la clase LocalPrintServer. –
¿Podría ser tan obvio? Gracias por mostrarme lo que Google no pudo encontrar :) –