Как получить статус задания печати с помощью C #

Я могу распечатать документ, но я не знаю, как получить его статус. Я прошел через множество ресурсов ( MSDN , Links для проверки статуса работы ), но не смог найти ответ.

Я действительно хочу получить подтверждение от принтера, был ли документ успешно напечатан или нет. Более того, меня также интересует, могу ли я получить сигнал ошибки от принтера, например, если бумага замялась.

У меня есть имя принтера и имя документа, которое я отправляю для печати. Кто-нибудь сделал некоторые исследования в этой области и может рассказать мне, как это сделать?

есть образцы онлайн … google “отправка команд PJL в c #” (PJL означает язык задания принтера)

codeproject Чтение данных Непосредственно из принтера – хорошая статья / образец, чтобы начать с

Возможно, вы сможете использовать WMI. Он предоставляет несколько classов , связанных с печатью , включая Win32_PrintJob .

Это не проверено, но что-то вроде этого должно начать:

SelectQuery query = new SelectQuery("Win32_PrintJob"); using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query)) using (ManagementObjectCollection printJobs = searcher.Get()) foreach (ManagementObject printJob in printJobs) { // The format of the Win32_PrintJob.Name property is "PrinterName,JobNumber" string name = (string) printJob["Name"]; string[] nameParts = name.Split(','); string printerName = nameParts[0]; string jobNumber = nameParts[1]; string document = (string) printJob["Document"]; string jobStatus = (string) printJob["JobStatus"]; // Process job properties... }