2011-08-05 2 views
9

문서를 인쇄 할 수는 있지만 상태를 얻는 방법을 모르겠습니다. 많은 리소스 (MSDN, Links for checking Job Status)를 거쳤지만 답변을 찾을 수 없었습니다.C#을 사용하여 인쇄 작업 상태를 얻는 방법

실제로 프린터에서 문서가 성공적으로 인쇄되었는지 여부를 확인하고 싶습니다. 또한, 용지 걸림과 같이 프린터에서 오류 신호를받을 수 있다면 관심이 있습니다.

인쇄용으로 보내는 프린터 이름과 문서 이름이 있습니다. 아무도이 분야에 대한 연구를 수행하지 않았으며이를 수행하는 방법을 알려 줄 수 있습니까?

+1

System.Printing는 .NET 3.0 컷을 한 안 아마 .NET 2.0 절단을하지 않았다. 실제로 비난하는 것은 아니지만 기본 Windows API는 강력하지 않습니다. 요구 사항을 변경하십시오. –

답변

3

로 시작하는 좋은 글/샘플입니다 (PJL은 프린터 작업 언어를 의미) "PJL은 C#에서 명령을 보내"구글 ... 온라인 샘플이 있습니다 이를 위해 WMI를 사용합니다. Win32_PrintJob을 포함하여 여러 개의 printing-related classes을 제공합니다.

이 안된이지만,이 같은 당신은 시작해야

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... 
    } 
관련 문제