Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En el transcurso del diseño de una aplicación, puede diseñar un formulario de tal manera que represente una página impresa. En el ejemplo de código siguiente se muestra cómo imprimir una copia del formulario actual mediante el CopyFromScreen método .
Ejemplo
Para ejecutar el código de ejemplo, agregue dos componentes a un formulario con la siguiente configuración:
Objeto | Propiedad\Eventos | Importancia |
---|---|---|
Botón | Name |
Button1 |
Click |
Button1_Click |
|
PrintDocument | Name |
PrintDocument1 |
PrintPage |
PrintDocument1_PrintPage |
El código siguiente se ejecuta cuando se hace clic en Button1
. El código crea un Graphics
objeto a partir del formulario y guarda su contenido en una Bitmap
variable denominada memoryImage
. Al método PrintDocument.Print se llama, el cual invoca el evento PrintPage. El controlador de eventos de impresión dibuja el memoryImage
mapa de bits en el objeto de la página de la impresora Graphics
. Cuando se devuelve el código del controlador de eventos de impresión, se imprime la página.
namespace Sample_print_win_form1
{
public partial class Form1 : Form
{
Bitmap memoryImage;
public Form1()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
printDocument1.Print();
}
private void PrintDocument1_PrintPage(
System.Object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
}
}
Public Class Form1
Dim memoryImage As Bitmap
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myGraphics As Graphics = Me.CreateGraphics()
Dim s As Size = Me.Size
memoryImage = New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
memoryGraphics.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, s)
PrintDocument1.Print()
End Sub
Private Sub PrintDocument1_PrintPage(
ByVal sender As System.Object,
ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawImage(memoryImage, 0, 0)
End Sub
End Class
Programación sólida
Las condiciones siguientes provocan una excepción:
- No tiene permiso para acceder a la impresora.
- No hay ninguna impresora instalada.
Seguridad de .NET
Para ejecutar este ejemplo de código, debe tener permiso para acceder a la impresora que usa con el equipo.
Consulte también
.NET Desktop feedback