Clipper On Line • Ver Tópico - Impressora Termica Elgin i9

Impressora Termica Elgin i9

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Impressora Termica Elgin i9

Mensagempor Mario Mesquita » 29 Dez 2017 09:12

Bom dia.

Aproveitando o tópico, uma dúvida: Essas impressoras trabalham em modo gráfico, não? Diferente das matriciais, correto?

Pq eu tenho uma rotina para aquelas bematech matriciais, mas uso o @ SAY tradicional do Clipper.

Mas já tem gente usando essas térmicas e para coisas como QRCODE elas tem que trabalhar em modo gráfico, não é?

Sendo, não seria o caso de usar o @ PRINT? Ele é nativo do Harbour ou é do HMG?

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Impressora Termica Elgin i9

Mensagempor janio » 29 Dez 2017 13:10

#define FontGrande         CHR(27) + CHR(33) + CHR(16) // Para Impressoras Epson
#define FontGrande18       CHR(27) + CHR(33) + CHR(18) // Para Impressoras Epson
#define FontGrandeNegrito  CHR(27) + CHR(33) + CHR(17) // Para Impressoras Epson
#define FontNormal         CHR(27) + CHR(33) + CHR(2) // Para Impressoras Epson
#define FontNormalNegrito  CHR(27) + CHR(33) + CHR(10) // Para Impressoras Epson
#define FontPequena        CHR(27) + CHR(33) + CHR(1) // Para Impressoras Epson
#define FontPequenaNegrito CHR(27) + CHR(33) + CHR(15) // Para Impressoras Epson

/*--------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------*/
Function ImprimeMesa( NumeroControle, ValorRecebido)
Local ArqImp := cPathCriaSoft + "Mesa.txt"
Local nHandle
Local cHoraSaida
Local cPermanencia
Local gPrinterName := win_PrinterGetDefault()
Local cPrinterName

If NumeroControle = 0
   MyMsg("Nenhuma Mesa selecionada!")
   Return .f.
Endif

If !MyDeleteArquivo( ArqImp )
   MyMSG("Nao foi possivel apagar arquivo de impressao")
   Return .f.
Endif

AbreDB( [A17EMP],[EMPRESA] )

Select Comanda ; DbSetOrder(4)
DbGoTop()
DbSeek( NumeroControle )

cHoraSaida   := If( Empty(comanda->HorSai), Time(), comanda->HorSai )
cPermanencia := ElapTime( comanda->HorEmi, cHoraSaida )
cPermanencia := SubStr( cPermanencia,1,2 ) + "h" + SubStr( cPermanencia,4,2 ) + "min"

Select Vendedor ; DbSetOrder(1)
DbGoTop()
DbSeek( comanda->CodVed )

nTotalComissao := Round( comanda->TotCom * ( nComissao / 100 ), 2)

SET PRINT ON
SET PRINTER TO &ArqImp
SET DEVICE TO PRINTER
SET CONSOLE OFF

SetPrc(0,0)

@ PROW() + 01, 00 SAY FontGrandeNegrito + Padr(AllTrim(EMPRESA),48)
@ PROW() + 01, 00 SAY FontNormal + "Cnpj " + Trans(empresa->CGCEMP, "@R 99.999.999/9999-99" )
@ PROW() + 01, 00 SAY AllTrim(empresa->ENDERE) + ", " + AllTrim(empresa->NUMERO)
@ PROW() + 01, 00 SAY AllTrim(empresa->BAIRRO) + " - " + AllTrim(empresa->CIDADE) + "/" + empresa->ESTADO
@ PROW() + 01, 00 SAY REPLICATE("-",48)
@ PROW() + 01, 00 SAY "EXTRATO PARA SIMPLES CONFERENCIA"
@ PROW() + 01, 00 SAY Padc( " NAO EH DOCUMENTO FISCAL " ,48, "*" )
@ PROW() + 01, 00 SAY REPLICATE("-",48)
@ PROW() + 01, 00 SAY " Garcon : " + vendedor->NomRdz
@ PROW()     , 30 SAY "Chegada : " + comanda->HorEmi
@ PROW() + 01, 00 SAY "   Mesa : " + StrZero(comanda->CodCom,4)
@ PROW()     , 30 SAY "  Saida : " + cHoraSaida
@ PROW() + 01, 00 SAY "  Tempo : " + cPermanencia

@ PROW()     , 30 SAY "Emissao : " + hb_Dtoc(comanda->DatEmi, "DD/MM/YY")
@ PROW() + 01, 00 SAY REPLICATE("-",48)
@ PROW() + 01, 00 SAY Padc( "Numero de Controle " + StrZero(NumeroControle,6), 48)
@ PROW() + 01, 00 SAY REPLICATE("-",48)
@ PROW() + 01, 00 SAY "Descricao                  Qtde    Preco   Total"
@ PROW() + 01, 00 SAY REPLICATE("-",48) + FontPequena

SELECT DESDOcom ; DbSetOrder(1)
DbGoTop()
OrdScope( 0, NumeroControle )
OrdScope( 1, NumeroControle )
DbGoTop()
Do While !Eof()

   If FlgCan = "S"
      DbSkip()
      Loop
   Endif

     @ PROW() + 1, 00 SAY SubStr( DESPRD, 1, 31 )
     @ PROW()    , 33 SAY QTDPRD PICT "@E 9999.999"
     @ PROW()    , 42 SAY "x"
     @ PROW()    , 46 SAY VLRUNI PICT "@E 9999.99"
     @ PROW()    , 55 SAY VLRITM PICT "@E 9,999.99"
     DbSkip()
   
Enddo

OrdScope( 0, Nil )
OrdScope( 1, Nil )

@ PROW() + 01, 00 SAY FontNormal
@ PROW()     , 39 SAY "------------"

@ PROW() + 01, 28 SAY "SUB-TOTAL"
If comanda->STATUS = "C"
   @ PROW()     , 39 SAY comanda->TotCom - comanda->VlrAcr + comanda->VlrDes PICT "@E 99,999.99"
Else
   @ PROW()     , 39 SAY comanda->TotCom PICT "@E 99,999.99"
Endif

@ PROW() + 01, 00 SAY FontNormalNegrito

If comanda->STATUS = "C"
   @ PROW() + 01, 00 SAY FontNormal
   @ PROW() + 01, 28 SAY " RECEBIDO"
   @ PROW()     , 39 SAY ValorRecebido  PICT "@E 99,999.99"

   @ PROW() + 01, 28 SAY "T R O C O"
   @ PROW()     , 39 SAY (ValorRecebido - comanda->TotCom) PICT "@E 99,999.99"
Endif

@ PROW() + 02, 00 SAY FontNormal + Padc( " NAO EH DOCUMENTO FISCAL " ,48, "*" )

@ PROW() + 02, 00 SAY REPLICATE("-",48)

SET CONSOLE ON
SET PRINTER OFF
SET PRINTER TO
SET DEVICE TO SCREEN
SET DATE FORMAT TO "DD/MM/YYYY"
SET RELATION TO

If !Empty(gPrinterName)

   win_PrintFileRaw( gPrinterName, ArqImp, MsgCriaSoft)

Endif

Return .t.
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Impressora Termica Elgin i9

Mensagempor rochinha » 31 Dez 2017 14:03

Amiguinhos,

Para os que olharem o código e acharem, "...nossa que simples, é fácil..." devem entender que os comandos contidos no código expressam padrão ESC/ASCII para envio de comandos a saída de impressão.

Portanto deve verificar que a impressora já esteja pré-configurada para receber estes comandos, como é o padrão das Epsons.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Impressora Termica Elgin i9

Mensagempor rochinha » 03 Jan 2018 11:46

Amiguinhos,

hazael
Veja nas configurações da impressora pelo aplicativo de configuração qual o codepage ativo. Como o Brasil É o Único paÍs que usa acentuaÇÃo temos de fazer na unha a configuração.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 11 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro