AJUDA COM O OBJECT PRINTER

ELMO01 08/07/2010 12:05:12
#346846
Estou tentando fazer um relatório utilizando o Object Printer, só que estou apanhando e muito.
* - Primeiro gostaria de saber como faço para q a impressão saia na impresseroa deseja e não a padrão.
PS: Fiz um combo com todas as impressoras instaladas no meu computador, até normal, só que ao pressionar o botão OK, a impressão não vai para a impressora desejada.

No código abaixo é como estou enviando os dados para a impressora:


Set Printer = Trim(CboImpressora.Text)

Printer.Copies = TxtCopias.Text
Printer.FontSize = [Ô]8[Ô]
Open [Ô]Lpt1[Ô] For Output As #2
Print #1, Chr(27) & Chr(15) [ô] Condensado
DoEvents
Print #1, Tab(0); String(40, [Ô]_[Ô]) [ô]imprime linha
Print #1, Tab(50); [Ô] - [Ô] & EMPRES & [Ô] - [Ô];
Print #1, Tab(0); [Ô][Ô] [ô] Salta uma Linha
Print #1, Tab(50); ENDERE & [Ô] - [Ô] & BAIRRO & [Ô] - Tel.: [Ô] & FONCON;
Print #1, Tab(0); [Ô][Ô] [ô] Salta uma Linha
Print #1, Tab(50); [Ô]CNPF: [Ô] & CGCCON
Print #1, Tab(0); [Ô][Ô] [ô] Salta uma Linha
Print #1, Tab(0); String(40, [Ô]_[Ô]) [ô] Imprime linha
Print #1, Chr(27) & Chr(18) [ô] Volta ao Normal
Close #1

O que estou fazendo de errado neste código.

Obrigado,
LLAIA 08/07/2010 12:16:59
#346848
brother a parte em vermelho que destaquei está enviando pra porta sem passar pelo spooler de impressão, que é o que o Printer trabalha

Set Printer = Trim(CboImpressora.Text)

Printer.Copies = TxtCopias.Text
Printer.FontSize = [Ô]8[Ô]
[txt-color=#e80000]Open [Ô]Lpt1[Ô] For Output As #2[/txt-color]
[txt-color=#e80000]Print #1, Chr(27) & Chr(15) [ô] Condensado[/txt-color]
DoEvents
[txt-color=#e80000]Print #1, Tab(0); String(40, [Ô]_[Ô]) [ô]imprime linha[/txt-color]
[txt-color=#e80000] Print #1, Tab(50); [Ô] - [Ô] & EMPRES & [Ô] - [Ô];
Print #1, Tab(0); [Ô][Ô] [ô] Salta uma Linha
Print #1, Tab(50); ENDERE & [Ô] - [Ô] & BAIRRO & [Ô] - Tel.: [Ô] & FONCON;
Print #1, Tab(0); [Ô][Ô] [ô] Salta uma Linha
Print #1, Tab(50); [Ô]CNPF: [Ô] & CGCCON
Print #1, Tab(0); [Ô][Ô] [ô] Salta uma Linha
Print #1, Tab(0); String(40, [Ô]_[Ô]) [ô] Imprime linha
Print #1, Chr(27) & Chr(18) [ô] Volta ao Normal
Close #1[/txt-color]


faça isso:

Set Printer = Trim(CboImpressora.Text)

Printer.Copies = TxtCopias.Text
Printer.FontSize = [Ô]8[Ô]
DoEvents
Printer.Print Tab(0); String(40, [Ô]_[Ô]) [ô]imprime linha
Printer.Print Tab(50); [Ô] - [Ô] & EMPRES & [Ô] - [Ô];
Printer.Print Tab(0); [Ô][Ô] [ô] Salta uma Linha
Printer.Print Tab(50); ENDERE & [Ô] - [Ô] & BAIRRO & [Ô] - Tel.: [Ô] & FONCON;
Printer.Print Tab(0); [Ô][Ô] [ô] Salta uma Linha
Printer.Print Tab(50); [Ô]CNPF: [Ô] & CGCCON
Printer.Print Tab(0); [Ô][Ô] [ô] Salta uma Linha
Printer.Print Tab(0); String(40, [Ô]_[Ô]) [ô] Imprime linha

Printer.EndDoc
LLAIA 08/07/2010 12:19:40
#346849
vai testando aos poucos, e pegando os [Ô]segredos[Ô] do Printer com a galera aqui.

eu costumo dizer que esse artigo do Macoratti, é um dos melhores sobre Printer que eu já vi.

http://www.macoratti.net/printer.htm
ELMO01 08/07/2010 12:44:31
#346851
Obrigado por ter respondido, tentei sua sugestão, só que me retorna o seguinte erro: RUN-TIME ERRO [ô]424[ô] - Object required, isto está acontencendo quando passa pela linha Set Printer = Trim(CboImpressora.Text)

Onde: CboImpressora.Text = [Ô]Epson LQ-2170 ESC/P2 ( em CPD)[Ô]

Se retirar esta linha, assume a impressora padrão e não a que estou querendo.

Como faço para quando escolho uma impressora, assuma o lugar da impressora padrão??

Obrigado,
EDERMIR 08/07/2010 13:16:58
#346853
Resposta escolhida
Eu utilizo este recurso:

Wpadrao = printer.devicename
Wimpressora = [Ô]Kyocera FV[Ô]
For Each x In Printers
Wimpressfind = InStr(x.DeviceName, Wimpressora)
If Wimpressfind <> 0 Then
Set Printer = x
Exit For
End If
Next x


Ao final da impressão, retorno para a impressora padrão:

For Each x In Printers
Wimpressfind = InStr(x.DeviceName, Wpadrao)
If Wimpressfind <> 0 Then
Set Printer = x
Exit For
End If
Next x


ELMO01 08/07/2010 14:10:18
#346866
Pessoal, deu certo, agradeço a vcs pela ajuda
Tópico encerrado , respostas não são mais permitidas