Неправильное значение dmCopies при печати из Microsoft Word - PullRequest
3 голосов
/ 02 июня 2011

Я пишу инструмент, который контролирует принтеры. Мне нужно получить количество распечатанных страниц для работы. Я использую систему событий принтера (FindFirstPrinterChangeNotification, FindNextPrinterChangeNotification, ...).

Я могу получить структуру DEVMODE со значением dmCopies (JOB_NOTIFY_FIELD_DEVMODE). Но это значение неверно, когда Microsoft Word используются для печати документов. Это связано с ошибкой Word (функция). В Word исправлена ​​эта ошибка с SP (http://support.microsoft.com/kb/919736/en-us). Но SP не всегда можно установить в системе.

Как я могу получить правильное значение dmCopies?

Одним из решений является чтение файлов спула (SPL) и получение из них правильной структуры DEVMODE. Но для этого необходимо поддерживать форматы принтеров RAW (PCL, PostScript, ESC-P, CaPSL, Prescribe, ...) (поскольку некоторые принтеры генерируют файлы спула только в формате RAW).

Может, кто-нибудь знает другое решение?

...