Кто-нибудь знает, можно ли удерживать задание на печать с помощью Microsoft API диспетчера очереди печати?
Я хотел бы придержать его перед отправкой на печать.
Возможно ли это?
Кто-нибудь знает, можно ли удерживать задание на печать с помощью Microsoft API диспетчера очереди печати?
Я хотел бы придержать его перед отправкой на печать.
Возможно ли это?
Это зависит от того, насколько вы контролируете процесс печати. Команда SetJob позволяет вам приостановить отдельное задание, но вам нужно будет войти, прежде чем какие-либо данные будут потенциально отправлены через порт на принтер.
Когда приложение печатает задание, обычный путь печати выглядит примерно так:
Если вы можете ввести команду SetJob перед первым путем WritePrinter, вы сможете приостановить задание до того, как какие-либо данные будут отправлены на устройство.
К сожалению, если вы используете что-то вроде класса C# PrintDocument, он скрывает большую часть этого и не предоставляет никакого способа получить параметр JobId и дескриптор принтера, которые вам потребуются для вызова команды SetJob.
Если вы используете AddJobW() и ScheduleJob(), то да.
AddJobW() создает задание, а ScheduleJob() запускает его. (Пример кода см. здесь.)
So...