2011-08-05 9 views
9

Mogę wydrukować dokument, ale nie wiem, jak uzyskać jego status. Przeszedłem przez wiele zasobów (MSDN, Links for checking Job Status), ale nie byłem w stanie znaleźć odpowiedzi.Jak uzyskać status zadania drukowania za pomocą C#

Rzeczywiście chcę uzyskać potwierdzenie od drukarki, czy dokument został wydrukowany pomyślnie, czy nie. Co więcej, jestem również zainteresowany, czy mogę uzyskać sygnał błędu z drukarki, np. Czy papier zaciął się.

Mam nazwę drukarki i nazwę dokumentu, które wysyłam do druku. Czy ktoś zrobił jakieś badania w tej dziedzinie i może mi powiedzieć, jak to osiągnąć?

+1

System.Printing nie dokonać cięcia dla .NET 2.0 i prawdopodobnie nie powinien mieć wykonane cięcie dla .NET 3.0. To nie jest tak naprawdę wina, bazowy Windows API po prostu nie jest silny. Określ swoje wymagania. –

Odpowiedz

3

Możesz być w stanie używać WMI do tego. Zapewnia kilka printing-related classes, w tym Win32_PrintJob.

To niesprawdzone, ale coś jak to powinno Ci zacząć:

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... 
    } 
Powiązane problemy