¿Cómo omitir el diálogo de impresión en printDocument.print () e imprimir página directamente?

Cuando uso MyPrintDocument.print() en una aplicación de Windows escrita en C #, se muestra un diálogo para la rutina de impresión de procesamiento de Windows con un botón de cancelar. No quiero que se muestre este diálogo, ¿es posible?

Si no, ¿qué camino debo usar? Mi progtwig usa una impresora térmica.

¿Qué PrintController estás usando?

.NET Framework incluye tres controladores de impresión derivados de PrintController que ayudan a realizar tareas comunes. StandardPrintController imprime un documento en una impresora. El PreviewPrintController genera una vista previa de cómo se verá el documento cuando se imprime y lo utilizan las clases PrintPreviewControl y PrintPreviewDialog . PrintControllerWithStatusDialog proporciona un cuadro de diálogo de estado de impresión durante el proceso de impresión.

Parece que está utilizando PrintControllerWithStatusDialog PrintController .


Advertencia: no estoy en condiciones de verificar que el PrintController básico no actúe de la misma manera.

De acuerdo con este foro de MSDN Publicar el PrintControllerWithStatusDialog es el valor predeterminado:

Él sugiere algo como esto:

 MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController(); 

Si no asigna la propiedad PrintDocument.PrintController , obtendrá un controlador de impresión predeterminado. Una instancia de PrintControllerWithStatusDialog que muestra el cuadro de diálogo de progreso, el recuento de páginas y, en general, informa al usuario de que el progtwig no responde por algún motivo, pero que no se cuelga.

Simplemente reasignarlo en el constructor de formulario. El código repetitivo es:

 Public Class Form1 Public Sub New() InitializeComponent() PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController End Sub End Class 

Y tendrá que hacer algo más para decirle al usuario que una impresión está en progreso. Al menos mostrar un cursor de reloj de arena .