ToB企服应用市场:ToB评测及商务社交产业平台

标题: c#获取惠普打印机状态 [打印本页]

作者: 罪恶克星    时间: 2024-8-1 17:12
标题: c#获取惠普打印机状态
近来遇到一个项目,由于客户指定了打印机型号:HP LaserJet Pro M501n ,原来想着参考网上的代码,利用System.Management来实现对打印机状态的查询,测试过程中发现无论是缺纸、空闲,获取到的统统都是空闲状态,咨询售后也是说无法获取状态,也不提供SDK;后面在社区看见可以通过网页访问打印机状态,输入IP即可,索性试了下,页面如下图:

 
从图上可以看到有打印机当前的状态为【已打开睡眠模式】,其他状态例如缺纸也测试过,是可以正常显示的,所以想着能通过网页访问的方式,找到对应元素下面的内容,
通过后台
代码如下:
  1.    using HtmlAgilityPack;
  2.    public static bool GetWebPageContent(string url)
  3.         {
  4.             try
  5.             {
  6.                 // 创建 HtmlWeb 实例
  7.                 HtmlWeb web = new HtmlWeb();
  8.                 // 加载网页内容
  9.                 HtmlDocument doc = web.Load(url);
  10.                 // 查找指定 <td> 标签下 id 为 deviceStatus_tableCell 的内容
  11.                 HtmlNode node = doc.DocumentNode.SelectSingleNode("//td[@id='deviceStatus_tableCell']");
  12.                 if (node != null)
  13.                 {
  14.                     string content = node.InnerText.Trim();
  15.                     if (content.Contains("\n"))
  16.                     {
  17.                         int lastIndex = content.IndexOf("\n");
  18.                         content = content.Substring(0, lastIndex).Trim();
  19.                     }
  20.                   //根据每种状态自行判断该如何执行业务............
  21.                     return true;
  22.                 }
  23.                 else
  24.                 {
  25.                     return false;
  26.                 }
  27.             }
  28.             catch (Exception e)
  29.             {
  30.                 //MessageBox.Show($"解析HTML时发生错误: {e.Message}");
  31.                 return false;
  32.             }
  33.         }
复制代码
运行代码可以看到获取到了状态内容,如图:

这样也算是实现了获取打印机状态了。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4