Jump to content
Fivewin Brasil

Impressão na USB


kapiaba

Recommended Posts

Galera como voces fazem para imprimir em uma impressora MATRICIAL na porta USB?

Exemplo:

Algumas impressoras de CUPOM NÃO FISCAL, são para porta USB.

A tdosprn.prg não funciona em USB, é possivel fazer o relatório usando PRINTER.PRG sem PREVIEW, usando a fonte courier, disparando direto para a USB? Se sim, como?

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR WorkShop.Exe

intidi.jpg?rnd=0.11765248559762154

Link to comment
Share on other sites

Galera como voces fazem para imprimir em uma impressora MATRICIAL na porta USB?

Exemplo:

Algumas impressoras de CUPOM NÃO FISCAL, são para porta USB.

A tdosprn.prg não funciona em USB, é possivel fazer o relatório usando PRINTER.PRG sem PREVIEW, usando a fonte courier, disparando direto para a USB? Se sim, como?

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR WorkShop.Exe

intidi.jpg?rnd=0.11765248559762154

Link to comment
Share on other sites

Essa é uma configuração que faço para Impressora Daruma DR700

1.Requisitos:

1.1.Impressora DUAL DR700

1.2.Windows XP SP2 ou superior

1.3.Drive daruma

2.A Comunicação da impressora DR 700 deve ser via USB conforme a seqüência abaixo.

2.1.Conecte os cabos USB e de força corretamente ao computador e impressora.

2.2.Após esse procedimento ligue a impressora e posteriormente o Windows mostrará uma janela solicitando a instalação da impressora.,instale a mesma utilizando o drive requisitado acima

3.Após a conclusão da instalação da impressora é necessário verificar se foi criada uma porta COM (Virtual) no Gerenciador de dispositivos do Windows.

4.Verificada a criação da porta COM virtual, agora e necessário alterar sua transferência de bits por segundo.

4.1.Essa alteração é feita acessando as propriedades da porta e selecionando a taxa de transferência para 115200.

4.2.Para confirmar a instalação acesse o prompt DOS utilizando os seguintes comandos

4.3.mode com n da porta:115200,n,8,1

4.4.dir>com4

5.Agora será necessário adicionar uma impressora Genérica somente texto.

5.1.Painel de Controle > Impressora e aparelhos de fax > Adicionar uma Impressora. Na adição da impressora é necessário selecionar uma porta de comunicação “COM†(definida acima) a qual a impressora vai ser instalada.

5.2.Apos a adição da impressora imprima uma pagina de teste.

6.Apos o funcionamento da impressora compartilhe ela na rede.

7.Agora e necessário mapear a impressora pela porta (LPT1) ou a que estiver disponível através dos seguintes comandos no “prompt do dosâ€.

net use lpt1: /del

net use lpt1: \computador\nome da impressora compartilhada

8.Depois teste se a impressão está configurada corretamente.

Fivewin 8.12 + XHarbour Build 1.1.0 + WorkShop + vLib + SqlLib + MySQL 5.0.27 + xDev Studio + FWPPC

E-mail: leandrolopes@success.inf.br

Msn: leandroptu@ada.com.br

Paracatu/MG

vasco3d.gif

Link to comment
Share on other sites

Leandro, esta Impressora Daruma DR700. É NÃO FISCAL?

Se sim, você usa a TDOSPRN.PRG para gerar o CUPOM NÃO FISCAL?

Para Impressorar ELGIN NÃO FISCAL, é a mesma coisa?

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR WorkShop.Exe

intidi.jpg?rnd=0.11765248559762154

Editado por - kapiaba on 12/04/2010 10:21:40

Link to comment
Share on other sites

Sim uso o TDOSPRN.PRG, a logica será a mesma para impressora não fiscal elgin, a FS700 é uma impressora não fiscal.

Fivewin 8.12 + XHarbour Build 1.1.0 + WorkShop + vLib + SqlLib + MySQL 5.0.27 + xDev Studio + FWPPC

E-mail: leandrolopes@success.inf.br

Msn: leandroptu@ada.com.br

Paracatu/MG

vasco3d.gif

Link to comment
Share on other sites

citação:

Sim uso o TDOSPRN.PRG, a logica será a mesma para impressora não fiscal elgin, a FS700 é uma impressora não fiscal.

Fivewin 8.12 + XHarbour Build 1.1.0 + WorkShop + vLib + SqlLib + MySQL 5.0.27 + xDev Studio + FWPPC

E-mail: leandrolopes@success.inf.br

Msn: leandroptu@ada.com.br

Paracatu/MG

vasco3d.gif


id=quote>id=quote>

Obrigado, estou passando este link, para um amigo que está com problemas com a Impressora ELGIN, vou pedir para ele fazer como voce indica, se não funcionar, ele postará aqui.

Obrigado.

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR WorkShop.Exe

intidi.jpg?rnd=0.11765248559762154

Link to comment
Share on other sites

Ok João, um abraço irmão.

Aquela dica que vc deu no domingo, me chamou a atenção para que eu revisse a tdosprn.

Achei em dicas, uma tdosprn que diz imprimir em usb, que eu não consegui imprimir, mas que consegui ver na tela, o preview funciona.

Fiz então o seguinte, peguei a velha tdosprn e fiz algumas alterações pegando da nova tdosprn e incluir uma classe txtview que vem com a nova tdosprn.

consegui imprimir, mas fazendo um malabarismo danado, pois quando vc usa o preview imprime, mas se não usa o preview não imprime.

essa solução atende a todos os casos de impressão continua, pois existem impressoras não fiscais, usb, paralela, porta serial, com adaptadores usb p/ paralela e tudo se resume a enviar a impressão, primeiro para a porta certa, e, depois e windows,

um abraço

Link to comment
Share on other sites

Existe duas formas de trabalhar com impressora matricial usb

Uma é escrever relatórios usando a classe tprinter, que vai funcionar normalmente, como qualquer impressora, nesse caso, faz-se o serviço duas vezes.

Outra, é usar a classe tdosprn, abrir a porta LPT1, e trabalhar como se estivesse imprimindo na porta LPT1, como de costume, mas antes, deve-se compartilhar a porta USB, assim:

net use lpt1 \\nomedocomputador\nomedaimpressora

o nomedaimpressora deve estar instalada na porta USB

Espero ter ajudado.

Pompeo

Guaratinguetá - SP

(12) 9777-9386

E-Mail: mkyx@ig.com.br

MSN: mkyx@ig.com.br

Skype: pardes.mky

www.adentech.com.br

www.rmahost.com

xH 1.1.0 Hb 8.02 - BCC 55

Link to comment
Share on other sites

Pompeo, eu posso fazer isto:

net use lpt1 \\nomedocomputador\nomedaimpress

Diretamente via programa, ou somente VIA DOS? (hehehe)

Obrigado.

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR WorkShop.Exe

intidi.jpg?rnd=0.11765248559762154

Editado por - kapiaba on 13/04/2010 09:27:03

Link to comment
Share on other sites

Vc pode mapear via DOS ou via programa

Via programa, ainda não testei, mas vai o comando abaixo:

** AQUI CANCELA UM MAPEAMENTO ANTERIOR, FAÇA ISSO PARA EVITAR ERROS E MAPEAMENTOS FUTUROS

wNetDelConnection("LPT1",.T.)

** AQUI VC MAPEA A IMPRESSORA COMPARTILHADA NA USB

wnetaddcon("\\NOMEDOCOMPUTADOR\NOMEDAIMPRESSORA","","LPT1")

Pompeo

Guaratinguetá - SP

(12) 9777-9386

E-Mail: mkyx@ig.com.br

MSN: mkyx@ig.com.br

Skype: pardes.mky

www.adentech.com.br

www.rmahost.com

xH 1.1.0 Hb 8.02 - BCC 55

Link to comment
Share on other sites

Eu faço o seguinte Kapiaba

Usando a mesma logica do ImpSpoll da TdosPrn

Utilizo o PrintFileRaw q. resolve o problema de impressão em usb , com ou ate mesmo em impressoras de rede como as da bematech

ELSEIF Left( Upper(cPorta),3) = "USB" .OR. Left( Upper(cPorta),3) = "COM" + "NOVAPORTA.ARQ") // Impressao em impressoras de rede com im

Set Printer To ( cPorta ) // Somente para setar a impressora

PrintFileRaw( cPorta , cFileTxt)

Set Printer To ( cImpPadrao )

FErase( cFileTxt )

Um abraço

Marcelo Ferro

Petrópolis - Rj

Fwh9.01/xHarbour 1.1.0 Simplex /SqlLib /xMate/WS e Pelles

marca.jpg

Link to comment
Share on other sites

citação:

Eu faço o seguinte Kapiaba

Usando a mesma logica do ImpSpoll da TdosPrn

Utilizo o PrintFileRaw q. resolve o problema de impressão em usb , com ou ate mesmo em impressoras de rede como as da bematech

ELSEIF Left( Upper(cPorta),3) = "USB" .OR. Left( Upper(cPorta),3) = "COM" + "NOVAPORTA.ARQ") // Impressao em impressoras de rede com im

Set Printer To ( cPorta ) // Somente para setar a impressora

PrintFileRaw( cPorta , cFileTxt)

Set Printer To ( cImpPadrao )

FErase( cFileTxt )

Um abraço

Marcelo Ferro

Petrópolis - Rj

Fwh9.01/xHarbour 1.1.0 Simplex /SqlLib /xMate/WS e Pelles

marca.jpg


id=quote>id=quote>

Marcelo, meu piglio, esta é uma idéia bem interessante e inteligente.

Obrigado.

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR WorkShop.Exe

intidi.jpg?rnd=0.11765248559762154

Link to comment
Share on other sites

Olá Kapi,

Testei hoje num cliente, a mapeamento de uma impressora térmica, 40 colunas, elgin conectada na USB, via programa e funcionou direitinho.

** AQUI CANCELA UM MAPEAMENTO ANTERIOR, FAÇA ISSO PARA EVITAR ERROS DE MAPEAMENTOS FUTUROS

wNetDelConnection("LPT1",.T.)

** AQUI VC MAPEA A IMPRESSORA COMPARTILHADA NA USB

wnetaddcon("\\SERVIDOR\ELGIN40","","LPT1")

Depois disso trabalho como se fosse uma LPT1 normal.

Pompeo

Guaratinguetá - SP

(12) 9777-9386

E-Mail: mkyx@ig.com.br

MSN: mkyx@ig.com.br

Skype: pardes.mky

www.adentech.com.br

www.rmahost.com

xH 1.1.0 Hb 8.02 - BCC 55

Link to comment
Share on other sites

citação:

Olá Kapi,

Testei hoje num cliente, a mapeamento de uma impressora térmica, 40 colunas, elgin conectada na USB, via programa e funcionou direitinho.

** AQUI CANCELA UM MAPEAMENTO ANTERIOR, FAÇA ISSO PARA EVITAR ERROS DE MAPEAMENTOS FUTUROS

wNetDelConnection("LPT1",.T.)

** AQUI VC MAPEA A IMPRESSORA COMPARTILHADA NA USB

wnetaddcon("\\SERVIDOR\ELGIN40","","LPT1")

Depois disso trabalho como se fosse uma LPT1 normal.

Pompeo

Guaratinguetá - SP

(12) 9777-9386

E-Mail: mkyx@ig.com.br

MSN: mkyx@ig.com.br

Skype: pardes.mky

www.adentech.com.br

www.rmahost.com

xH 1.1.0 Hb 8.02 - BCC 55


id=quote>id=quote>

Excelente Pompeo. Very thanks!!

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR WorkShop.Exe

dentinho.jpg?rnd=0.830315402649066

Link to comment
Share on other sites

Ok, amigos, gostaria de saber se a solução indicada funciona para os casos abaixo:

1-Impressora Elgin não fiscal wind com adaptador de usb para paralela;

2-Impressora não fiscal instalada na porta serial com6.

Pergunto, por que já fiz de tudo inclusive solução indicada e não consegui resultado positivo.

Estou usando uma Gambiarra de muito baixo nível, mas foi o que consegui:

Peguei em dicas uma tdosprn que diz imprimir em usb e fiz um bem bolado com uma tdosprn mais antiga que o joão conhece e, mando a impressão para o preview da tdosprn que diz imprimir em usb, e de lá fiz um bem bolado de forma forma que imprime sem que o cliente tenha que teclar nada, mas não indico pra ninguem.

Edvaldo

Link to comment
Share on other sites

Olá amigos,

A solução indicada, de mapeamento da impressora, funciona para impressoras matriciais térmicas ou não, conectadas na porta USB, usando cabo USB nos dois lados, ou cabo USB(computador) e paralela (impressora).

Para a porta serial, não precisa mapear a impressora é só usar o comando direto oPrn:=TDosPrn():New("COM1"), e trabalhar normalmente.

Através do programa abaixo, eu uso impressoras com conexão LPT e USB, sem problema nenhum. Relembrando para as impressora matriciais termicas ou nao, conectadas na USB, eu mapeio a impressora.

oPrn:=TDosPrn():New("LPT1")

oPrn:startpage()

N_LIN:=1

oPrn:Say(0,0, CHR(27)+CHR(64) )

ABRIR_C="A"

** PP:="ORCAMENTO: "+ALLTRIM(STR(NUM_VD,10))

PP:=ALLTRIM(NOM_FIR)

P:=(32-LEN(ALLTRIM(PP)))/2

oPrn:Say(N_LIN,P, CHR(14)+PP+CHR(20) )

N_LIN:=N_LIN+1

PP:=ALLTRIM(END_FIR)+" - "+ALLTRIM(BAI_FIR)

P:=(48-LEN(ALLTRIM(PP)))/2

oPrn:Say(N_LIN,P,CHR(27)+CHR(18)+PP+CHR(20) )

N_LIN:=N_LIN+1

PP:=ALLTRIM(CID_FIR)+" - "+ALLTRIM(UF_FIR)+" - "+ALLTRIM(TEL_FIR)

P:=(48-LEN(ALLTRIM(PP)))/2

oPrn:Say(N_LIN,P, CHR(27)+CHR(18)+PP+CHR(20) )

N_LIN:=N_LIN+1

PP:="CX:"+COD_CX+"-"+COD_PERI+" DATA:"+DTOC(DATE())+" HORA:"+LEFT(TIME(),5)+" OPERADOR:"+ALLTRIM(LEFT(USER000,9))

P:=(60-LEN(ALLTRIM(PP)))/2

oPrn:Say(N_LIN,P, CHR(27)+CHR(15)+PP+CHR(27)+CHR(18) )

N_LIN:=N_LIN+2

ENDIF

OPRN:SAY(N_LIN,0,CHR(27)+CHR(18)+COD+" "+LEFT(DESCR,55))

N_LIN:=N_LIN+1

OPRN:SAY(N_LIN,0,CHR(27)+CHR(18)+IF(ESTA00="D","(DEVOLUÇÃO) ",SPACE(14))+TRANSFORM(QTD,"@E 999999.999")+" "+LEFT(UNID,6)+" x "+TRANSFORM(PRU,"@E 9999,999.99")+" = "+TRANSFORM(PT,"@E 999999,999.99")+IF(ESTA00="D"," -"," +"))

oPrn:EndPage()

oPrn:End()

RETURN .T.

Pompeo

Guaratinguetá - SP

(12) 9777-9386

E-Mail: mkyx@ig.com.br

MSN: mkyx@ig.com.br

Skype: pardes.mky

www.adentech.com.br

www.rmahost.com

xH 1.1.0 Hb 8.02 - BCC 55

Link to comment
Share on other sites

Pessoal... Por que preocupar-se em que porta ou qual tipo de cabo a impressora usa se este trabalho o windows já faz perfeitamente? E se for uma impressora conectada através de uma conexão web? E se for um Terminal Server ?

Definitivamente o mais óbvio e racional caminho é gerar um arquivo texto da forma que melhor lhe agradar e depois usar a função PRINTFILERAW para enviar a impressão pro windows e a partir daí o próprio windows se vira. Garantido. Testado e comprovado.

A única exigência deste método é que a impressora a qual receberá o texto deve estar instalada no windows. Nada mais.

Ex.:

SET PRINTER TO "RELAT.PRN"

SET DEVICE TO PRINT

@01,10 SAY "teste"

@02,10 SAY "-----"

SET DEVICE TO SCREEN

SET PRINTER TO

PRINTFILERAW( "Epson LX-300", "RELAT.PRN", "Relatório" )

No exemplo acima o arquivo PRG não possui o #include "fivewin.ch" e por este motivo o @SAY irá funcionar exatamente como no clipper. A função PRINTFILERAW recebeu três parâmetros onde o primeiro é o nome da impressora que deve ser idêntico ao nome que a mesma possui no gerenciador de impressoras do WINDOWS, o segundo é o nome do arquivo texto e o terceiro é o nome que o relatório terá no gerenciador de impressão do windows.

O nome da impressora pode ser obtido através da função GETPRINTERS que retorna um ARRAY com todas as impressoras instaladas. Usando GETPRINTERS( .T. ) a função retorna além do nome da impressora a porta das mesmas.

Em resumo. TDosPrn, mapeamento, NODOSIMP e todo o resto são completamente dispensáveis usando a PRINTFILERAW como descrito acima.

SharkAbraços!

Shark - FWH 8.09 / xharbour 1.1.0 / xMate 1.15 / Resource WorkShop

figura21fd4.jpg

http://www.superdownloads.com.br/download/41/programa-de-auto-escola-automax/

Link to comment
Share on other sites

É verdade, consegui resolver o problema de impressão usando o net use lpt1: \\nome do computador\noma da impressora. É que já tinha tentado sem sucesso, algo estava errado. Mas, parece realmente que sendo impressora windows não importa a porta.

Obrigado a todos que colaboraram, em especial ao professora joão.

Edvaldo

Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...