Перехват файлов отправленных на печать

204
15 декабря 2019, 13:40

Есть задача создать службу которая будет перехватывать файл отправленных на печать, или как минимум путь до файла который был отправлен на печать. Это нужно, чтобы потом скопировать файл на сервер. Подскажите пожалуйста решение. Не могу понять можно ли это сделать. Среда выполнения windows 7/10.

Желательно пример реализации на C#.

Answer 1

Сам я таким не занимался.

На сколько я понимаю, тебе нужен Print Spooler API: https://docs.microsoft.com/en-us/windows/desktop/printdocs/printing-and-print-spooler-functions

Про теоретическую реализацию ты можешь почитать вот здесь: https://stackoverflow.com/questions/2693133/how-to-convert-a-printer-driver-to-a-stand-alone-console-application-which-can-ge/2752125#2752125

и вот здесь: https://stackoverflow.com/questions/3067245/how-to-create-own-xp-printer-driver/3104084#3104084

То есть следишь за PrintQueue и вытягиваешь информацию одтуда (а она там быть теоретически должна )

Если не получится, то как другой вариант можно создать свой виртуальный принтер, который будет делать что нужно и перенаправлять печатаемые страницы уже настоящим принтером. Но, через Print Spooler API должно и так все выйти как нужно...

Да, ответ линками, да это плохая практика. Но лучше чем отсутствие ответа и хотя бы как-то может помочь автору вопроса. :)

Я тут еще софт нашел: https://www.papercut.com

оч похоже что это готовая реализация того, что ты хочешь писать. Там есть фича Print Archiving при чем работать будет, даже, с сетевыми принтерами когда их много подключено.

READ ALSO
Как изменить порядок в DEC значении?

Как изменить порядок в DEC значении?

Подскажите, как поменять местами DEC значения, чтобы они имели порядок Little endian (обратный порядок), на изображении, значения выделены желтым:

201
Как вызывать TextBox из другого класса

Как вызывать TextBox из другого класса

Если создавать в классе Form метод, то вызов TextBox не создает проблем

197
Поведение параметров компонента bitrix

Поведение параметров компонента bitrix

В параметр компонента передается строка

171
Добавить значения в бд по нажатию кнопки

Добавить значения в бд по нажатию кнопки

Есть таблица, в которой выводятся данные из mysqlВ самой таблице есть 3 поля, в которые можно добавить значения и кнопка

171