2013-11-28 2 views
1

C#으로 인쇄 여부도문서 나 PDF를 인쇄하는 코드를 다음 사용

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) 
    { 
     Logger.LogInfo(""+property.Name, "" +property.Value); 
    } 
} 

및 인쇄 큐를 모니터링하기 위해 다음과 같은 시도 :

LocalPrintServer server = new LocalPrintServer(); 
PrintQueueCollection queueCollection =  server.GetPrintQueues(); 
PrintQueue printQueue = null; 
foreach (PrintQueue pq in queueCollection) 
{ 
    if (pq.FullName == "HP LaserJet P1505n") 
     printQueue = pq; 
} 

int numberOfJobs = 0; 
if (printQueue != null) 
    numberOfJobs = printQueue.NumberOfJobs; 

내가하고 싶은 일은 내가 인쇄 한 문서가 (1)을 사용하여 성공적으로 인쇄되었는지 여부입니다. (2) nd code Snippet은 동일한 속성 anme과 값을 항상 표시합니다. 인쇄 상태를 알릴 수 없습니다. (3) rd 코드 Snippet은 항상 대기열을 한 번 모니터하고 '0'numberofjobs를 말합니다.

인쇄 상태를 취소하는 실제 방법은 무엇입니까?

답변

0

인쇄 작업 상태를 알 수 있습니다 ..! 시도해보십시오.

SelectQuery qry = new SelectQuery("PrintJob"); 

    using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(qry)) 
    using (ManagementObjectCollection printJobs = searcher.Get()) 
    foreach (ManagementObject printJob in printJobs) 
     { 
    string name = (string) product["Name"]; 
    string[] nameParts = name.Split(','); 
    string printerName = nameParts[0]; 
    string jobNumber = nameParts[1]; 
    string document = (string) product["Document"]; 
    string jobStatus = (string) product["JobStatus"]; 
     } 

이 정보가 도움이되기를 바랍니다.

관련 문제