在使用winform編寫自動列印服務的過程中,發現只要進行了列印命令的呼叫,文件就會進入到列印等待佇列,如果印表機無法正常工作,則會影響到相關業務資料的正確轉換,所以需要檢查印表機的狀態來保障每次列印時印表機處於空閒狀態,列印時佇列中也只能有乙個文件,本文是通過引用system.management來實現對印表機狀態的查詢
enum printerstatus
///
/// 獲取印表機的當前狀態
///
/// 程式設計客棧gt;印表機裝置名稱
/// 印表機狀態
private static printerstatus getprinterprinterstatus(string printerdevice)
public static bool checkprinter(string bindprintname)
if (printer["workoffline"].tostring().tolower().equals("true"))
else}}
return false;
}這裡主要是通過乙個while迴圈來不停的獲取印表機的狀態,空閒時才會進行下一次列印,通過兩個標誌位來配合輪詢的外部介入退出
finishwait標誌位是任務內部的標識,如果印表機檢查到了錯誤狀態則進行輪詢退出
globalinfo.isglobalexist標誌位是程式全域性標識,如果介面上通知使用者等待時間過長,可以進行人工手動干預退出
//檢查印表機狀態
if (!checkprinter(printname))
printerstatus state = getprinterprinterstatus(printname);
if (state == printerstatus.空閒)
else if (state == printerstatus.列印 || state == printerstatus.預熱)
if (state == printerstatus.列印 || state == printerstatus.預熱 || state == printerstatus.空閒)
}else
}
c 餐飲系統印表機 C 呼叫小票印表機
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.drawin...
C 呼叫印表機列印檔案
c 呼叫印表機列印檔案,通常情況下,例如word excel pdf等可以使用一些對應的元件進行列印,另 乙個通用的方式是直接啟用乙個列印的程序進行列印。示例 如下 using system.diagnostics string filepath 檔案路徑 string printer 印表機 pr...
electron 靜默列印,及 印表機狀態彙總
electron 獲取印表機列表 winprints new browserwindow console.log winprints.webcontents.getprinters 獲取到的結果為 設定靜默列印 winprints.webcontents.print 引數介紹 silent bool...