Захват потока данных задания принтера — Windows

Я буду работать с несколькими сетевыми и локальными принтерами, и мне нужно собирать фактические данные, отправляемые для печати на локальные или сетевые принтеры.

Я просмотрел API-интерфейс диспетчера очереди печати, и некоторые из них выглядят многообещающе, но похоже, что для этого потребуется получить идентификатор задания и найти соответствующий файл (если вы включите сохранение в файл для печати).

Я также видел приложение под названием redmon, которое могло бы работать для моих целей, но я надеялся написать уникальное приложение C# для сбора данных и их обработки.

Моя цель: собрать данные для печати, отправленные из приложения, к которому у меня нет доступа. Затем мне нужно будет работать с этими данными и, возможно, сохранить их для последующего использования. Я, очевидно, предпочел бы собирать это с помощью вызовов API диспетчера очереди печати, но похоже, что это не встроенная в него функциональность. Любая помощь будет оценена по достоинству.


person In the stars    schedule 08.03.2017    source источник
comment
Вот ответ, который может оказаться полезным. На SO есть несколько похожих вопросов, если вы посмотрите вокруг. К сожалению, API печати не делает это особенно простым.   -  person Nick Westgate    schedule 10.03.2017
comment
Выполнение этого на С# в основном усложнит вашу жизнь. Кроме того, имейте в виду, что RedMon и аналогичные решения, использующие мониторы портов, не будут работать с драйверами печати версии 4. Так что да, это большой сложный проект у вас есть.   -  person Carey Gregory    schedule 16.03.2017