ENVIAR COMANDO ESC/POS PARA IMPRESSORA DE REDE

MARCELOAMIGO 10/08/2009 10:52:41
#319442
Ola

Estou testando 2 impressoras padrão Epson, uma lpt1 e uma Tcp/Ip.
Fiz algumas impressões de teste na lpt1, segue o código

  Private Sub subExemplo1()

1 Dim x As Integer

2 Open [Ô]LPT1[Ô] For Output As #1

3 Print #1, Chr$(&H1B); [Ô]@[Ô]; [ô]Inicializa a impressora
4 Print #1, Chr$(&H1B); [Ô]a[Ô]; Chr$(1); [ô]Centraliza a impressão
5 Print #1, Chr$(&H1B); [Ô]![Ô]; Chr$(0); [ô]Fonte 9x9
6 Print #1, Chr$(&H1B); [Ô]J[Ô]; Chr$(4); [ô]Ajusta o Espaçamento
7 Print #1, [Ô]19 de Janeiro de 2009 15:00[Ô];
8 Print #1, Chr$(&H1B); [Ô]d[Ô]; Chr$(3);
9 Print #1, Chr$(&H1B); [Ô]a[Ô]; Chr$(0); [ô]Impressão a esquerda
10 Print #1, Chr$(&H1B); [Ô]![Ô]; Chr$(1); [ô]Fonte 7x9
11 Print #1, [Ô]VIDEO-GAME R$200,00[Ô]; Chr$(&HA);
12 Print #1, [Ô]JOGOS R$21,00[Ô]; Chr$(&HA);
13 Print #1, [Ô]CONTROLE R$17.00[Ô]; Chr$(&HA);
14 Print #1, Chr$(&HA);
15 Print #1, Chr$(&H1B); [Ô]![Ô]; Chr$(17); [ô]Seleciona o modo dobrar altura
16 Print #1, Chr$(&H1B); [Ô]U[Ô]; Chr$(1); [ô]Seleciona impressão unidirecional
17 Print #1, [Ô]TOTAL R$238,00[Ô]; Chr$(&HA);
18 Print #1, Chr$(&H1B); [Ô]U[Ô]; Chr$(0); [ô]Cancela impressão unidirecional
19 Print #1, Chr$(&H1B); [Ô]![Ô]; Chr$(0); [ô]Cancela modo dobrar altura
20 Print #1, [Ô]------------------------------[Ô]; Chr$(&HA);
21 Print #1, [Ô]PAGO R$250,00[Ô]; Chr$(&HA);
22 Print #1, [Ô]TROCO R$12,00[Ô]; Chr$(&HA);
23 Print #1, Chr$(&H1D); [Ô]V[Ô]; Chr$(66); Chr$(0); [ô]Avança o papel e ativa o cutter

24 Close #1

End Sub


Alguém pode me dar uma dica de como fazer essa mesma impressão na impressora de rede??

obrigado
JAILDOCC 10/08/2009 11:01:56
#319443
vc deve instalar uma impressora generica na maquina onde a impressora esta conectada e compartilhar ela, o nome do compartilhamento não deve conter espacos, ex: CUPOM, no compando q vc abre a porta de impressão vc coloca no nome da maquina
ome da impressora, ex: SERVIDOR\CUPOM..

Open [Ô]SERVIDOR\CUPOM[Ô] For Output As #1

Ja tive alguns caso q funcionou apenas colocar o nome do computador e a porta de impressão, testa ae se funfar intaum ta blz ex: SERVIDOR\LPT1
MARCELOAMIGO 10/08/2009 15:29:47
#319465
obrigado pela ajuda,

Porém, para fazer dessa forma, devo ter a impressora instalada, e quero enviar os comandos diretamente para a impressora,
Fiz o teste usando o hyperterminal, conectei na impressora (pesquisei e descobri que a porta padrão para impressoras é 9100) e funcionou.
então fiz o seguinte código
  
1 sckImp.RemoteHost = [Ô]192.168.48.253[Ô]
2 sckImp.LocalPort = 5000
3 sckImp.RemotePort = 9100
4 Call sckImp.Connect
5 Do While sckImp.State < sckConnected
6 DoEvents
7 Loop
8 If sckImp.State = sckConnected Then
9 sckImp.SendData [Ô]teste[Ô] & vbCrLf
10 Else
11 MsgBox [Ô]erro[Ô]
12 End If


porém o state do socket fica em 6 (connecting), e da erro no método senddata

alguma dica???
MARCELOAMIGO 11/08/2009 08:21:47
#319539
Resolvido

  Private Sub subExemplo5()
1 Call sckImp.Connect
2 Do While sckImp.State < sckConnected
3 DoEvents
4 Loop
End Sub

Private Sub sckImp_Connect()
1 sckImp.SendData [Ô]TESTE[Ô] & vbCrLf
End Sub
Tópico encerrado , respostas não são mais permitidas