c#中打印页面的跟踪计数

本文关键字:跟踪 打印 | 更新日期: 2023-09-27 18:14:59

我正在创建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——一个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);
}