如何使用 C# 获取打印作业状态

2023-12-25

我可以打印文档,但不知道如何获取其状态。我查阅了很多资源(MSDN http://support.microsoft.com/kb/322091, 检查工作状态的链接 https://stackoverflow.com/questions/5563788/how-to-check-a-print-job-status-with-c),但无法找到答案。

我实际上想从打印机那里得到文档是否成功打印的确认。此外,我也很感兴趣是否可以从打印机收到错误信号,例如卡纸。

我有要发送用于打印的打印机名称和文档名称。有人在这方面做过一些研究并可以告诉我如何实现这一目标吗?


您也许可以使用 WMI 来实现此目的。它提供了几种打印相关类 http://msdn.microsoft.com/library/aa389273.aspx#_hmm_printing_classes, 包括Win32_PrintJob http://msdn.microsoft.com/library/aa394370.aspx.

这是未经测试的,但类似这样的事情应该可以帮助您开始:

SelectQuery query = new SelectQuery("Win32_PrintJob");

using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
using (ManagementObjectCollection printJobs = searcher.Get())
    foreach (ManagementObject printJob in printJobs)
    {
        // The format of the Win32_PrintJob.Name property is "PrinterName,JobNumber"
        string name = (string) printJob["Name"];
        string[] nameParts = name.Split(',');
        string printerName = nameParts[0];
        string jobNumber = nameParts[1];
        string document = (string) printJob["Document"];
        string jobStatus = (string) printJob["JobStatus"];

        // Process job properties...
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 C# 获取打印作业状态 的相关文章

随机推荐

  • Nuget 包已安装但引用未解析

    我有一个多项目解决方案 在多个项目中安装了 Prism Nuget 包 然后 我尝试使用 Nuget Package Manager UI 将 Prism Mef 扩展包添加到其中一个项目 我已经将其添加到其他项目之一 我第一次尝试添加软件
  • ng-switch-when 与 ng-repeat

    我的 HTML 代码是 tr td span Ordering Mode span onlineCredentials mode br span Intermedtiary Group span onlineCredentials name
  • 如何检查 CLLocationCooperative2D 是否在四个 CLLocationCooperative2D 正方形内?在 Objective C 中使用 Google 地图

    我想测试 CLLocationCooperative2D 是否位于由其他四个 CLLocationCooperative2D 创建的 Square 内 我有一个这样的结构 typedef struct CLLocationCoordinat
  • 如何更改请求的标头?

    是否可以更改标题Request https developer mozilla org en US docs Web API Request接收到的对象fetch https developer mozilla org en US docs
  • 如何在 Ruby 中生成 n 个唯一随机数的列表?

    这是我到目前为止所拥有的 myArray map rand max 然而 显然有时列表中的数字并不唯一 如何确保我的列表仅包含唯一的数字 而不必创建一个更大的列表 然后我只需从中选择 n 个唯一的数字 Edit 我真的很希望看到这个没有循环
  • 内部测试时 ITSAppUsesNonExemptEncryption 导出合规性?

    我在选择内部测试构建时收到此消息 它说有关设置ITSApp 使用非豁免加密在info plist中是什么意思 有必要吗 基本上
  • 无法查看 plunker 结果

    突然 当我从过去 4 天开始尝试运行时 我的一些笨蛋出现了以下错误 statusCode 404 error Not Found 请参考我的一个笨蛋http plnkr co edit wWJx3zU3Sm1cN9ZCtvoh p prev
  • 更新在 dynamodb 中添加属性的项目

    dynamodb 中不能动态添加属性吗 当我尝试时 我得到了这个错误 提供的关键元素与架构不匹配 设想 id 123 imageName elephant jpg 我想向上述数据添加一个属性 imagePath path to image
  • 如何记录所有传入数据包

    我尝试使用预路由规则将传入数据包重定向到内部虚拟 IP 地址 如何在传入数据包被重定向之前记录该数据包 iptables t nat A PREROUTING d 46 X XX XX s 78 XX XX XX p tcp dport 8
  • vscode launch.json 调试并打开特定url

    给定以下自动生成的 Visual Studio Code launch json 配置 我想启动浏览器localhost 5000 swagger当我调试时 但我尝试了六种不同的方法 但没有任何效果 它只是打开到localhost 5000
  • 从 MPICH 切换到 OpenMPI

    我的 Ubuntu 20 04 中有 mpich 和 openmpi dpkg l grep mpi grep lib ii libmpich dev amd64 3 3 2 2build1 amd64 Development files
  • 如何在Unity顶部显示ui元素

    如何在其他元素之上显示我的 ui 元素 http prntscr com brjccg http prntscr com brjccg您可以看到面板的右侧 但左侧位于地图对象下方 如何解决我想看到它的两面 这是它当前拥有的组件http pr
  • dp-sp与PX的关系

    我不是问 dp sp 和 px 之间有什么区别 我正在设计一个基于谷歌新材料设计的网站 所有尺寸均以 dp 用于网格 和 sp 用于文本 为单位 我的问题是它们如何转换为像素 我设计网站已有 4 年多了 所有尺寸 网格和字体 均以像素为单位
  • Git 无法从 ownCloud 的 webdav 界面克隆存储库

    我在自己的云上有一些个人 git 存储库 我可以通过访问 ownClouds webdav url 从 2 台 ubuntu 机器和一台 Windows PC 克隆它 http myserver a remote php webdav re
  • 在 Thunderbird 扩展中获取邮件发件人

    我正在开发一个非常简单的 Thunderbird 扩展 它应该在发送邮件时提醒发件人的姓名以及收件人的姓名 问题是下面代码片段中的 gMsgCompose compFields from 字段为空 to 字段按预期工作 它处理 compos
  • 动态滚动文本区域

    我的页面上有一个 textarea html 元素 可以通过 ajax 重新加载 每次都会返回整个文本区域 而不仅仅是其内容 并且内容会随着时间的推移而增长 除了文本区域之外 我还返回以下 javascript 片段 在 firefox 3
  • JavaFX 8 中的日期选择器

    默认 JavaFX 8 包中是否有日期选择器和时间选择器的实现 我可以在不使用第三方解决方案的情况下使用它 日期选择器 是的 Java 8 有一个日期选择器 http download java net jdk8 jfxdocs javaf
  • 使用 JQuery 缓慢更改/淡入淡出/动画更改图像

    这是我的img img src one png 当用户将鼠标悬停在使用 jQuery 上时 我想慢慢地将这个图像 src 更改为 oneHovered png 哪种 jQuery 方法最适合执行此操作 我看到很多例子都要求我改变 CSS 背
  • javadoc 工具能否识别方法内的注释?

    我在我的业务逻辑中写了很多这样的评论 Do some important stuff param pDog param pAllDogTraining return Overwrite public Map
  • 如何使用 C# 获取打印作业状态

    我可以打印文档 但不知道如何获取其状态 我查阅了很多资源 MSDN http support microsoft com kb 322091 检查工作状态的链接 https stackoverflow com questions 55637