Como: Criar trabalhos de impressão padrão do Windows Forms

O fundamento da impressão nos Formulários do Windows é o componente PrintDocument — mais especificamente, o evento PrintPage.Ao escrever código para manipular o evento PrintPage, você pode especificar o que imprimir e como imprimir.

Para criar um trabalho de impressão

  1. Adicione um componente PrintDocument ao seu formulário.

  2. Escreva código para manipular o evento PrintPage.

    Você deverá codificar sua própria lógica de impressão.Além disto, você deverá especificar o material a ser impresso.

    No código exemplo a seguir, uma amostra de gráfico na forma de um retângulo vermelho criado no manipulador de eventos PrintPage para atuar como material a ser impresso.

    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
       e.Graphics.FillRectangle(Brushes.Red, New Rectangle(500, 500, 500, 500))
    End Sub
    
    private void printDocument1_PrintPage(object sender, 
    System.Drawing.Printing.PrintPageEventArgs e)
    {
       e.Graphics.FillRectangle(Brushes.Red, 
         new Rectangle(500, 500, 500, 500));
    }
    
    private void printDocument1_PrintPage(Object sender,
    System.Drawing.Printing.PrintPageEventArgs e)
    {
       e.get_Graphics().FillRectangle(Brushes.get_Red(),
          new Rectangle(500, 500, 500, 500));
    }
    
    private:
       void printDocument1_PrintPage(System::Object ^ sender,
          System::Drawing::Printing::PrintPageEventArgs ^ e)
       {
          e->Graphics->FillRectangle(Brushes::Red,
             Rectangle(500, 500, 500, 500));
       }
    

    (Visual C#, Visual J# e Visual C++) Coloque o seguinte código no construtor do formulário para registrar o manipulador 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));
    
    printDocument1->PrintPage += gcnew
       System::Drawing::Printing::PrintPageEventHandler
       (this, &Form1::printDocument1_PrintPage);
    

    Convém também escrever código para os eventos BeginPrint e EndPrint, talvez incluindo um inteiro representando o número total de páginas a serem impressas, que é decrementado cada vez que uma página é impressa.

    Observação:

    Você pode adicionar um PrintDialog componente ao seu formulário para fornecer uma interface limpa e eficiente do usuário (UI) para os usuários. Definir a propriedade Document do componente PrintDialog permite que você defina propriedades relacionadas ao documento de impressão com que você está trabalhando no seu formulário.Para mais informações sobre o componente PrintDialog. consulte O componente de PrintDialog (Windows Forms).

    Para mais informações sobre as especificidades dos trabalhos de impressão dos Formulários do Windows, inclusive como criar um trabalho de impressão via programação, consulte PrintPageEventArgs.

Consulte também

Referência

PrintDocument

Outros recursos

Suporte a Impressão em Formulários do Windows