0
我正在爲WPF中的窗口服務創建一個設置。該服務始終在我的系統中運行。我想獲得打印頁數。如果我打算從我的電腦上打印doc,PDF,excel等任何文檔,服務將自動計算打印頁數和當前日期時間。然後它會爲它創建日誌。如何使用WPF中的C#編碼獲取打印頁數。C#中打印頁數的跟蹤計數
我正在爲WPF中的窗口服務創建一個設置。該服務始終在我的系統中運行。我想獲得打印頁數。如果我打算從我的電腦上打印doc,PDF,excel等任何文檔,服務將自動計算打印頁數和當前日期時間。然後它會爲它創建日誌。如何使用WPF中的C#編碼獲取打印頁數。C#中打印頁數的跟蹤計數
這可能會幫助你得到兩者
try
{
string PrinterJobs = "SELECT * FROM Win32_PrintJob";
ManagementObjectSearcher FindPrintJobs = new ManagementObjectSearcher(PrinterJobs);
ManagementObjectCollection prntJobCollection = FindPrintJobs.Get();
foreach (ManagementObject prntJob in prntJobCollection)
{
string jobName = prntJob.Properties["Name"].Value.ToString();
string documentName = prntJob.Properties["Document"].Value.ToString();
string nbcopie = prntJob.Properties["TotalPages"].Value.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
你也可以做對PrintMonitor – A C# print spooler monitor
看看編輯
剛剛申請IList<ManagementBaseObject>
以獲取列表打印的次數在您的PC上安裝的所有網絡打印機。正如您的評論中所建議的。
try
{
IList<ManagementBaseObject> printers = new List<ManagementBaseObject>();
string PrinterJobs = "SELECT * FROM Win32_PrintJob";
ManagementObjectSearcher FindPrintJobs = new ManagementObjectSearcher(PrinterJobs);
ManagementObjectCollection prntJobCollection = FindPrintJobs.Get();
foreach (ManagementObject prntJob in prntJobCollection)
{
if ((bool)printer["Network"])
{
printers.Add(printer);
}
string jobName = prntJob.Properties["Name"].Value.ToString();
string documentName = prntJob.Properties["Document"].Value.ToString();
string nbcopie = prntJob.Properties["TotalPages"].Value.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
感謝您的回覆。該編碼工作正常,但我無法獲得共享打印機。我配置了共享打印機。該打印機只有傳真,Microsoft XPS文檔編寫器,發送到一個註釋才能獲得其他打印機。這些東西只有。 – Lawrence
@勞倫斯:看看編輯。由於我只理解了我的一半評論,因此我做了修改。看看它是否有幫助 –