Я использую специальную печать, используя PrintDocument в своем приложении. У меня есть требование регистрации, когда наши товары успешно печатаются. Я изначально достигал этого с чем-то вроде:
print_doc.EndPrint += (o,e) => printed_callback ();
Чтобы сделать мой printed_callback
доступным при завершении печати. Однако теперь, когда я добавляю поддержку предварительного просмотра, я передаю PrintDocument
, построенный точно таким же образом, в PrintPreviewDialog. Это приводит к тому, что событие EndPrint
вызывается после первоначальной рендеринга распечатки, необходимой для предварительного просмотра.
В результате, даже если пользователь нажимает "Предварительный просмотр", а затем просто закрывает предварительный просмотр, вызывается наш код регистрации.
Любые предложения о том, как отличить реальную распечатку и "предварительную печать"? К сожалению, я не могу просто не подключиться к EndPrint
для PrintDocument
, переданного в PrintPreviewDialog
, так как пользователь может нажать кнопку "Печать" в диалоговом окне предварительного просмотра и запустить распечатку.