c 實現印表機狀態查詢與阻塞列印

2022-10-06 02:24:07 字數 1071 閱讀 8863

在使用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...