Как пропустить диалог печати в printDocument.print() и распечатать страницу напрямую?
Когда я использую MyPrintDocument.print()
в приложении Windows, написанном на С#, отображается диалоговое окно для процедуры обработки печати Windows с кнопкой отмены. Я не хочу показывать это диалоговое окно, возможно ли это?
Если нет, то каким образом я должен использовать? Моя программа использует термопринтер.
Ответы
Ответ 1
Какой PrintController вы используете.
.NET Framework включает три контроллера печати, которые получены из PrintController
, которые помогают выполнять общие задачи. StandardPrintController
печатает документ на принтере. PreviewPrintController
создает предварительный просмотр того, как будет выглядеть документ при печати, и используется классами PrintPreviewControl
и PrintPreviewDialog
. PrintControllerWithStatusDialog
обеспечивает диалоговое окно состояния печати во время процесса печати.
Похоже, вы используете PrintControllerWithStatusDialog
PrintController
.
Предостережение: я не могу проверить, что основной PrintController
не действует одинаково.
В соответствии с этой публикацией форума MSDN PrintControllerWithStatusDialog
по умолчанию:
Он предлагает что-то вроде этого:
MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController();
Ответ 2
Если вы не назначили свойство PrintDocument.PrintController
, вы получите стандартный контроллер печати. Экземпляр PrintControllerWithStatusDialog
, который отображает диалог прогресса, подсчет страниц и обычно информирует пользователя о том, что программа не отвечает за причину, но в противном случае не висела.
Просто переназначьте его в конструкторе формы. Код котла:
Public Class Form1
Public Sub New()
InitializeComponent()
PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController
End Sub
End Class
И вам нужно будет сделать что-то еще, чтобы сообщить пользователю, что печать выполняется. По крайней мере, покажите часовой стрелок.