|
最近遇到一个项目,由于客户指定了打印机型号:HP LaserJet Pro M501n ,本来想着参考网上的代码,使用System.Management来实现对打印机状态的查询,测试过程中发现无论是缺纸、空闲,获取到的统统都是空闲状态,咨询售后也是说无法获取状态,也不提供SDK;后面在社区看见可以通过网页访问打印机状态,输入IP即可,索性试了下,页面如下图:
从图上可以看到有打印机当前的状态为【已打开睡眠模式】,其他状态例如缺纸也测试过,是可以正常显示的,所以想着能通过网页访问的方式,找到对应元素下面的内容,
通过后台
代码如下:- using HtmlAgilityPack;
- public static bool GetWebPageContent(string url)
- {
- try
- {
- // 创建 HtmlWeb 实例
- HtmlWeb web = new HtmlWeb();
- // 加载网页内容
- HtmlDocument doc = web.Load(url);
- // 查找指定 <td> 标签下 id 为 deviceStatus_tableCell 的内容
- HtmlNode node = doc.DocumentNode.SelectSingleNode("//td[@id='deviceStatus_tableCell']");
- if (node != null)
- {
- string content = node.InnerText.Trim();
- if (content.Contains("\n"))
- {
- int lastIndex = content.IndexOf("\n");
- content = content.Substring(0, lastIndex).Trim();
- }
- //根据每种状态自行判断该如何执行业务............
- return true;
- }
- else
- {
- return false;
- }
- }
- catch (Exception e)
- {
- //MessageBox.Show($"解析HTML时发生错误: {e.Message}");
- return false;
- }
- }
复制代码 运行代码可以看到获取到了状态内容,如图:
这样也算是实现了获取打印机状态了。
来源:https://www.cnblogs.com/fmclong/p/18336693
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|