VB.NET - Listando e definindo impressoras


 
Nesta dica estou mostrando como listar as impressoras instaladas , exibir a impressora padrão e definir uma impressora como padrão.

 

Inicie um novo projeto no VS.NET do tipo Windows Application e no formulário padrão insira os controles conforme o layout abaixo:

 

- Os componentes são :

- Button1 - lista as impressoras instaladas
- Button2 - exibe a impressora padrão
- Button3 - define uma impressora como padrão

- ListBox1 - exibe as impressoras

- TextBox1 - exibe a impressora padrão

 

Estamos usando duas clases :  PageSettings e PrinterSettings

 

- PageSettings é usada para definir configurações que se aplicam a página impressa. Ela pertence ao namespace System.Drawing.Printing.

 

- PrinterSettings é a responsável por definir informações sobre como um documento é impresso , incluindo a impressora que o imprime.

 

Para saber mais leia também os artigos :

Abaixo o código no evento Click de cada componente Button:

 

 'este codigo obtem a impressora padrão dos sistema.
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim prn As New Printing.PageSettings()
        TextBox1.Text = prn.PrinterSettings.PrinterName()
    End Sub

    'obtem uma lista de cada impressora definida na maquina
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim prn As New Printing.PageSettings()
        Dim b As System.Drawing.Printing.PrinterSettings.StringCollection = prn.PrinterSettings.InstalledPrinters
        Dim X As Integer
        ListBox1.Items.Clear()
        For X = X To b.Count - 1
            ListBox1.Items.Add(b.Item(X))
        Next
    End Sub

    'define a impressora selecionada como a padrão
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        If ListBox1.SelectedIndex <> -1 Then
            Dim prn As New Printing.PageSettings()
            prn.PrinterSettings.PrinterName = ListBox1.SelectedItem
            TextBox1.Text = ListBox1.SelectedItem
        Else
            MessageBox.Show("Você deve selecionar uma impressora!", "Selecione uma impressora", _
                  MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub

Por hoje é só. Até a próxima dica VB.NET


José Carlos Macoratti