PROBLEMA COM IMPRESSAO - PRINTER

MADMAX 10/12/2009 15:02:14
#329474
Tenho uma rotina que necessito imprimir um Texto simples em uma laser, porem não é na impressora padão da maquina , sendo assim fiz assim

no load set a impressoa que quero
ImpressoraPadrao = Prn.DeviceName
If ImpressoraPadrao <> sCaminhoImpressora Then
For Each Prn In Printers
If sCaminhoImpressora = Prn.DeviceName Then
Set Printer = Prn
End If
Next
End If
na hora de imprimir
faço assim
Printer.Print = Dados
Printer.EndDoc
na hora de sair seto a impressoa de volta
For Each Prn In Printers
If ImpressoraPadrao = Prn.DeviceName Then
Set Printer = Prn
End If
Next

Porem isso da erro de x em quando no Printer.EndDoc , sendo que o texto e o mesmo .. alguem sabe uma outra maneira de fazer isso ou o porque de estar dando erro
ALVAROVB2009 10/12/2009 15:32:50
#329475
MadMax, eu estou com um problema para entender como imprimir com um servidor de impressora, gerenciando a impressão.
Más acho que os comando que o Edermir passou para mim, pode te ajudar.
Da uma olhadinha na minha questão, quem sabe não tem ajuda
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=Abrir&varID=329396&varWorld=

Abraço
MADMAX 10/12/2009 15:55:10
#329477
ALVAROVB2009 estou fazendo justamente o que ele fala la , porem acho que eh isso que faz dar erro ja se não mudo a impressora padrão o erro não acontece .. agora vai saber porque ......

O problema maior e que preciso mudar ,ja que o componente que estou criando recebe o cominho da impressão para realizar as impressoes por ele mesmo.
DANIKULL 10/12/2009 18:43:19
#329489
MADMAX, boa tarde.

Da uma olhada neste artigo e veja se te ajda, blz??

Lista as Impressoras Instaladas

EDERMIR 10/12/2009 22:49:39
#329498
Printer.Print = Dados ???????

O comando correto para PRINTER.PRINT é :
printer.print [Ô]DADOS[Ô]


é estranho apresentar erro pois eu utilizo extamente da forma que indiquei.

Você pode mandar a rotina por PM ?
WHELLNET 11/12/2009 07:21:48
#329501
Fala MadMax
Bom, esse anexo ele muda a impressora padrão.

Pra mim foi util pois usava o reportx e em um determinado relatório eu tinha que imprimir em uma impressora não padrão, e pra evitar que o usuário tivesse que alterar, eu passava o comando pra alterar a impressora padrão.

Pra chamar ele [ô]no XP, NT e Vista
WinNTSetDefaultPrinter [Ô]NomeDaImpressora[Ô]

MADMAX 11/12/2009 08:33:26
#329504
EDERMIR dados é uma variavel


WHELLNET vou testar

MADMAX 11/12/2009 11:21:42
#329528
Então fiz uma Adaptação tecnica .. que funcionou pois peguem um exemplo no site da microsoft que era a respeito dete erro sendo assim tah ai pra quem presisar tambem


If RTxt_Dados.Text <> [Ô][Ô] Then
If Caminho <> [Ô][Ô] Then
If FSO.FileExists(Caminho) Then
bMudeiImpr = False
ImpressoraPadrao = Printer.DeviceName
If sCaminhoImpressora <> ImpressoraPadrao Then
WinNTSetDefaultPrinter sCaminhoImpressora
bMudeiImpr = True
End If
RTxt_Dados.LoadFile Caminho
Printer.Print [Ô][Ô]
EndDocError:
Printer.Print RTxt_Dados.Text
Printer.EndDoc
If bMudeiImpr Then
WinNTSetDefaultPrinter ImpressoraPadrao
End If
Unload Me
Else
MsgBox [Ô]Caminho para impressão inválido.[Ô], vbCritical, [Ô]Atenção[Ô]
Cmd_impr.Enabled = False
Unload Me
End If
End If
Exit Sub
Erro_Impr:
If Err.Number = 482 Or Err.Number = -2147417848 Then
Printer.EndDoc
GoTo EndDocError
Else
SG_Erro [Ô]TEF[Ô], [Ô]Impressao TEF[Ô]
End If
Tópico encerrado , respostas não são mais permitidas