Cómo: Imprimir gráficos en formularios Windows Forms
Actualización: noviembre 2007
Con frecuencia, deseará imprimir gráficos en las aplicaciones para Windows. La clase Graphics proporciona métodos para dibujar objetos en un dispositivo tal como una pantalla o una impresora.
Para imprimir gráficos
Agregue un componente PrintDocument al formulario.
En el controlador del evento PrintPage, utilice la propiedadGraphics de la clase PrintPageEventArgs para indicar a la impresora el tipo de gráficos que se va a imprimir.
En el ejemplo de código siguiente se muestra un controlador de eventos utilizado para crear una elipse azul dentro de un rectángulo delimitador. El rectángulo tiene la ubicación y dimensiones siguientes: comenzando en 100, 150 con un ancho de 250 y un alto de 250.
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.FillEllipse(Brushes.Blue, New Rectangle(100, 150, 250, 250)) End Sub
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.Graphics.FillRectangle(Brushes.Blue, new Rectangle(100, 150, 250, 250)); }
private void printDocument1_PrintPage(Object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.get_Graphics().FillRectangle(Brushes.get_Blue(), new Rectangle(100, 150, 250, 250)); }
private: void printDocument1_PrintPage(System::Object ^ sender, System::Drawing::Printing::PrintPageEventArgs ^ e) { e->Graphics->FillRectangle(Brushes::Blue, Rectangle(100, 150, 250, 250)); }
(Visual C#, Visual J# y Visual C++) Coloque el código siguiente en el constructor del formulario para registrar el controlador de eventos.
this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler (this.printDocument1_PrintPage);
this.printDocument1.add_PrintPage(new System.Drawing.Printing.PrintPageEventHandler( this.printDocument1_PrintPage));
this->printDocument1->PrintPage += gcnew System::Drawing::Printing::PrintPageEventHandler (this, &Form1::printDocument1_PrintPage);