ESCOLHER IMPRESSORA

HELIO.COSTA 21/07/2016 15:27:13
#465007
Boa tarde,

Tenho este código para impressão de um arquivo.
Mas ele está imprimindo somente na impressora padrão.
Gostaria de imprimir direcionando a impressora como por exemplo (\\Epson).

Private Sub btnImprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click
Try
Dim ArqDestino = Application.StartupPath & [Ô]\[Ô] & [Ô]Dados.txt[Ô]
ArquivoFonte = New StreamReader(ArqDestino)
Try
Fonte = New Font([Ô]Arial[Ô], 11)
Dim pd As New PrintDocument()
AddHandler pd.PrintPage, AddressOf Me.ImprimirPagina
pd.Print()
Finally
ArquivoFonte.Close()
btnFinalizar.PerformClick()
End Try
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Public Sub ImprimirPagina(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
Dim LinhaPorPagina As Single = 0
Dim yPos As Single = 0
Dim Contador As Integer = 0
Dim MargemEsquerda As Single = 5 [ô]ev.MarginBounds.Left
Dim MargemSuperior As Single = ev.MarginBounds.Top
Dim Linha As String = Nothing

LinhaPorPagina = ev.MarginBounds.Height / Fonte.GetHeight(ev.Graphics)
While Contador < LinhaPorPagina
Linha = ArquivoFonte.ReadLine()
If Linha Is Nothing Then Exit While
yPos = MargemSuperior + Contador * Fonte.GetHeight(ev.Graphics)
ev.Graphics.DrawString(Linha, Fonte, Brushes.Black, MargemEsquerda, yPos, New StringFormat())
Contador += 1
End While
If (Linha IsNot Nothing) Then
ev.HasMorePages = True
Else
ev.HasMorePages = False
End If
End Sub


KURTGU 21/07/2016 16:30:04
#465010
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
EscolherImpressora()
End Sub

Private HandlePrinter As IntPtr
Private ps As PrinterSettings



Public Property PrinterName() As String
Get
Return ps.PrinterName
End Get
Set(ByVal value As String)
ps.PrinterName = value
End Set
End Property

Public Function EscolherImpressora() As Boolean
Dim pd As New PrintDialog()
pd.PrinterSettings = ps
If pd.ShowDialog() = DialogResult.OK Then
ps = pd.PrinterSettings
Return True
Else
Return False
End If
End Function
HELIO.COSTA 21/07/2016 17:33:31
#465015
KURTGU, obrigado pela resposta.

Nesta função, ela abri um formulário para indicar a impressora.
Gostaria de definir qual a impressora em uma campo na tabela ou em um arquivo [Ô].ini[Ô].
quando clicar em imprimir, direcionar para a impressora pré-definida.
HELIO.COSTA 22/07/2016 11:17:11
#465028
Ninguém???
KURTGU 22/07/2016 13:32:13
#465031
Amigo vc leu o código que te passei? Viu que tem uma function printname e ela retorna um valor já tentou passar o nome da impressora nessa fuction? Isso que vc está tentando fazer faço aqui com esse mesmo código...
HELIO.COSTA 22/07/2016 14:14:21
#465033
Desculpe.
Teria como mostrar um exemplo.
a função Public Property PrinterName() As String, vai em uma classe
a função : Public Function EscolherImpressora() As Boolean, vai no formulário.
No botão: EscolherImpressora().

Caminho da minha impressora: [Ô]\\Servidor\LX300[Ô]
Teria como incluir nesta função?
KURTGU 22/07/2016 17:35:46
#465052
Resposta escolhida
Ja tentou pd.PrinterSettings.PrinterName([Ô][Ô])
HELENO 24/07/2016 20:13:42
#465098
Eu faço da seguinte maneira:

- Preencho um ComboBox com as impressoras instaladas.

Dim xPRINTERS As Printer

For Each xPRINTERS In Printers
cboIMPRESSORA.AddItem xPRINTERS.DeviceName
Next xPRINTERS


- Na hora da impressão eu aponto para a impressora selecionada.

Set Printer = cboIMPRESSORA.text


HELIO.COSTA 25/07/2016 14:39:29
#465115
Deu certo. pd.PrinterSettings.PrinterName
Obrigado a todos.
Tópico encerrado , respostas não são mais permitidas