我可以打印文檔,但我不知道如何獲取其狀態。我經歷了許多資源(MSDN,Links for checking Job Status),但無法找到答案。如何使用C獲得打印作業狀態
我實際上想從打印機得到確認文檔是否成功打印。此外,如果我可以從打印機得到錯誤信號,例如紙張被卡住,我也很感興趣。
我有打印機名稱和文檔名稱,我正在發送打印。有沒有人在這個領域做過一些研究,可以告訴我如何做到這一點?
我可以打印文檔,但我不知道如何獲取其狀態。我經歷了許多資源(MSDN,Links for checking Job Status),但無法找到答案。如何使用C獲得打印作業狀態
我實際上想從打印機得到確認文檔是否成功打印。此外,如果我可以從打印機得到錯誤信號,例如紙張被卡住,我也很感興趣。
我有打印機名稱和文檔名稱,我正在發送打印。有沒有人在這個領域做過一些研究,可以告訴我如何做到這一點?
有樣本在線...谷歌「發送PJL在C#中的命令」(PJL代表打印機作業語言)
CodeProject上Reading Data Directly from the Printer是一個很好的文章/樣本入手
你也許能夠爲此使用WMI。它提供了幾個printing-related classes,包括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...
}
System.Printing沒有獲得晉級的.NET 2.0,也許不應該做出的削減.NET 3.0。這並不是真正的責任,底層的Windows API並不強大。取消你的要求。 –