简体   繁体   English

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

[英]Track count of Printing Pages in C#

I am creating a set-up for window service in WPF. 我正在为WPF中的窗口服务创建一个设置。 The service is always running in my system. 该服务始终在我的系统中运行。 I want to get the count of printing pages. 我想获得打印页面的数量。 If I am going to take print any documents like doc, PDF, excel from my computer, the service will get automatically count of printing pages and current date-time. 如果我要从计算机上打印doc,PDF,excel等任何文档,该服务将自动获得打印页数和当前日期时间。 Then it will create the log for it. 然后它将为其创建日志。 How to get the count of Printing pages using C# coding in WPF. 如何在WPF中使用C#编码获取打印页面数。

This probably might help you to get the count of Prints Taken 这可能会帮助您获得已打印的张数

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);
}

You can also do have a look on PrintMonitor – AC# print spooler monitor 您也可以看看PrintMonitor – AC#打印后台处理程序监视器

Edit 编辑

Just Applied IList<ManagementBaseObject> to get the list of all the network printers installed on ur PC. 只需应用IList<ManagementBaseObject>即可获取您的PC上安装的所有网络打印机的列表。 As suggested in your comment. 如您评论中所建议。

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);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM