从 Microsoft Word 打印时 dmCopies 值错误

发布于 2024-11-12 14:26:32 字数 506 浏览 3 评论 0原文

我正在编写工具,用于监视打印机。我需要获取该作业的打印页数。我正在使用打印机事件系统(FindFirstPrinterChangeNotification、FindNextPrinterChangeNotification,...)。

我可以使用 dmCopies 值 (JOB_NOTIFY_FIELD_DEVMODE) 获取 DEVMODE 结构。但当使用 Microsoft Word 打印文档时,该值不正确。这与Word bug(功能)有关。 Word 通过 SP (http://support.microsoft.com/kb/919736/en-us) 修复了此错误。但SP并不总是可以安装在系统上。

如何获得正确的 dmCopies 值?

一种解决方案是读取假脱机文件 (SPL) 并从中获取正确的 DEVMODE 结构。但为此,需要支持 RAW 打印机格式(PCL、PostScript、ESC-P、CaPSL、Prescribe 等)(因为某些打印机仅生成 RAW 格式的假脱机文件)。

也许有人知道其他解决方案?

I'm writing tool, that monitors printers. I need to get printed pages count for the job. I'm using printer events system (FindFirstPrinterChangeNotification, FindNextPrinterChangeNotification, ...).

I can get DEVMODE structure with dmCopies value (JOB_NOTIFY_FIELD_DEVMODE). But this value is incorrect when Microsoft Word are used to print documents. This related with Word bug (feature). Word are fixed this bug with SP (http://support.microsoft.com/kb/919736/en-us). But SP is not always can be installed on the system.

How can I get correct dmCopies value?

One solution is to read spool files (SPL) and get correct DEVMODE structure from them. But for that it is need to support RAW printers formats (PCL, PostScript, ESC-P, CaPSL, Prescribe, ...) (because some printers generates spool files only in RAW).

Maybe anyone knows other solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文