Imprimir un form en c# con PrintDocument

Imprimir un form en c# con PrintDocument

Hoy vamos a ver cómo imprimir un form en c# con PrintDocument para cuando en nuestros sistemas necesitemos poner a disposición de nuestros usuarios la posibilidad de imprimir como tal la ventana, veamos un simple y sencillo código para hacer esto.

Hoy veremos un tema muy sencillo y fácil de implementar pero a la vez muy solicitado por nuestros clientes, imprimir una ventana de nuestro software.

Posiblemente lo mejor sería preparar un documento especial para imprimir información.

Aun así muchos usuarios solicitan poder imprimir una determinada pantalla o incluso por costos pueden optar por esta opción.


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

Es por esto que hoy veremos cómo imprimir un form en c# con la función PrintDocument e imprimir de forma inmediata con nuestra impresora predeterminada.

Cómo imprimir un form en c#

Antes que nada recuerda que necesitamos agregar algún botón para poner a disposición de nuestros usuarios la funcionalidad.

Una vez lo tengamos vamos a incluir lo siguiente:

PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(ImprimirForm);
//pd.DefaultPageSettings.Landscape = true;
pd.Print();

La línea que tenemos comentada,

pd.DefaultPageSettings.Landscape = true;

podemos descomentarla si queremos imprimir en formato landscape u horizontal nuestra ventana.

Por cierto, ya hemos visto cómo exportar información de un DataGridView a excel.

Ahora vamos a ver la función ImprimirForm:

void ImprimirForm(object o, PrintPageEventArgs e)
        {
            int x = SystemInformation.WorkingArea.X;
            int y = SystemInformation.WorkingArea.Y;
            int ancho = this.Width;
            int alto = this.Height;

            Rectangle bounds = new Rectangle(x, y, ancho, alto);

            Bitmap img = new Bitmap(ancho, alto);

            this.DrawToBitmap(img, bounds);
            Point p = new Point(100, 100);
            e.Graphics.DrawImage(img, p);
        }

La cual lo que hace es obtener el área de nuestro formulario y obtener una captura para poder imprimirla.

Ahora cuando nuestros usuarios hacen clic sobre este botón podrán imprimir en su impresora predeterminada la ventana o form deseada, ¿fácil no?

Preguntas frecuentes

¿Cómo seleccionar la impresora donde imprimir?

Tendrás que ir a las propiedades de tus impresoras y seleccionar una predeterminada.

¿Cómo imprimir en landscape?

En el contenido del post se explica cómo imprimir en portrait y en landscape.

¿Donde puedo encontrar más información?

Siempre puedes encontrar más información en la documentación de .Net en: https://docs.microsoft.com/en-us/dotnet/api/system.drawing.printing.printdocument?view=netframework-4.8

Si esta información sobre cómo imprimir un form en c# con PrintDocument te fue de utilidad no olvides compartirla en tus redes sociales o dejarnos un comentario en la sección de abajo con cualquier duda relacionada con el tema.

¡Hasta luego!

Clic para valorar esta información
[Total: 1 Promedio: 5]