Это зависит от того, насколько вы контролируете процесс печати. Команда SetJob позволяет приостановить отдельное задание, но вам нужно будет войти до того, как какие-либо данные будут потенциально отправлены через порт на принтер.
Когда приложение печатает задание, обычный путь печати выглядит примерно так:
- StartDocPrinter
- StartPagePrinter
- WritePrinter
- ....
- EndPagePrinter
- ...
- EndDocPrinter
Если вы можете получить команду SetJob перед первым путем WritePrinter, вы сможете приостановить задание до отправки любых данных на устройство.
К сожалению, если вы используете что-то вроде класса C # PrintDocument, он скрывает большую часть этого и не предоставляет какого-либо способа получения параметра JobId и дескриптора принтера, которые вам понадобятся для вызова команды SetJob.