Como imprimir um formulário (Windows Forms .NET)
Como parte do processo de desenvolvimento, você normalmente desejará imprimir uma cópia do seu formulário do Windows. O exemplo de código a seguir mostra como imprimir uma cópia do formulário atual usando o CopyFromScreen método.
Exemplo
Para executar o código de exemplo, adicione dois componentes a um formulário com as seguintes configurações:
Objeto | Propriedade\Evento | Valor |
---|---|---|
Botão | Name |
Button1 |
Click |
Button1_Click |
|
Documento de impressão | Name |
PrintDocument1 |
PrintPage |
PrintDocument1_PrintPage |
O código a seguir é executado quando o Button1
é clicado. O código cria um Graphics
objeto a partir do formulário e salva seu conteúdo em uma Bitmap
variável chamada memoryImage
. O PrintDocument.Print método é chamado, o que invoca o PrintPage evento. O manipulador de eventos de impressão desenha o memoryImage
bitmap no objeto da Graphics
página da impressora. Quando o código do manipulador de eventos de impressão retorna, a página é impressa.
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
Programação robusta
As seguintes condições podem causar uma exceção:
Você não tem permissão para acessar a impressora.
Não há impressora instalada.
Segurança do .NET
Para executar este exemplo de código, você deve ter permissão para acessar a impressora que usa com o computador.
Confira também
.NET Desktop feedback