c#中打印页面的跟踪计数
本文关键字:跟踪 打印 | 更新日期: 2023-09-27 18:14:59
我正在创建WPF中的窗口服务设置。该服务一直在我的系统中运行。我想知道打印页数。如果我要从我的电脑上打印任何文档,如doc, PDF, excel,该服务将自动获得打印页数和当前日期时间。然后它将为它创建日志。如何在WPF中使用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——一个c#打印假脱机监视器
编辑
Just Applied 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);
}