Clipper On Line • Ver Tópico - BEMATECH MP-4200 TH comprimir e negritar

BEMATECH MP-4200 TH comprimir e negritar

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

Moderador: Moderadores

 

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor porter » 01 Mai 2017 15:09

olá pessoal, estou gerando um arquivo texto, antes de imprimir com PrintFileRaw, com o comando abaixo,
consigo imprimir corretamente em modo comprimido, mas não estou conseguindo imprimir comprimido e
negritado em uma BEMATECH MP-4200 TH não fiscal, ja tentei com CHR(27) + "E", mas somente negrita mas
não comprime, alguem ja conseguiu imprimir comprimido+negritado ?
HARBOUR 3.2.0dev

SET DEVICE TO PRINT
SET PRINT ON
SET PRINTER TO C:\ESTOQUE\arq
? CHR(27) + CHR(33) + CHR(01)
? "LINHA 1"
? "LINHA 2"
? "LINHA 3"
cImpressora := GetDefaultPrinter()           // Pego a Impressora Padrão
PrintFileRaw(cImpressora, arq, [Teste])
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor gilbertosilverio » 01 Mai 2017 16:14

Ola Porter,

Uso estes comando pra imprimir na MP4200

PRIVATE INICIO :=chr(29) + chr(249) + chr(32) + chr(0) + chr(27) + chr(116) + chr(8)
PRIVATE EXPANDE :=chr(27) + chr(87) + chr(1)
PRIVATE cancelaEXPANDE:=chr(27) + chr(87) + chr(0)
PRIVATE CONDENSA:=chr(15)
PRIVATE NORMAL :=CHR(18)
PRIVATE NEGRITO :=chr(27) + chr(69)
PRIVATE cancelaNEGRITO:=chr(27) + chr(70)
PRIVATE DIREITA :=CHR(27) + CHR(97) + CHR(2) // ALINHA A DIREITA
PRIVATE CENTRO :=CHR(27) + CHR(97) + CHR(1) // ALINHA CENTRO
PRIVATE ESQUERDA:=CHR(27) + CHR(97) + CHR(0) // ALINHA A ESQUERDA
PRIVATE CORTA :=CHR(27) + CHR(119)

Tenta usar assim:

condensa+negrito+[teste teste]+normal+cancelaNEGRITO
gilbertosilverio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 332
Data de registro: 18 Jan 2009 09:39
Cidade/Estado: Ribeirao Pires - SP
Curtiu: 1 vez
Mens.Curtidas: 23 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor porter » 02 Mai 2017 09:59

ola Gilberto,
Cada linha que você vai imprimir, você atribui a uma variável, ou você gera um arquivo texto
e imprime com PrintFileRaw ?
Porque apenas criando um arquivo texto e imprimir não está dando certo, não consigo comprimir e negritar, só estou
conseguindo só comprimir ou só negritar, os dois juntas não da certo.

Obrigado.
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor gilbertosilverio » 02 Mai 2017 10:15

Porter,

Tenta usar esta rotina de teste:

FUNCTION TESTE_BEMA()
   PRIVATE TXTARQ, WLINHA, nTAMANHO
   PRIVATE AAA:=[C:\CUPON.PRN]
   PRIVATE ARQTESTE:=FCREATE( AAA, 0 )
   //TXT01:=chr(29) + chr(249) + chr(32) + chr(0) + chr(27) + chr(116) + chr(8)              // inicializa o ESC BEMA
   //TXT02:=chr(27) + chr(87) + chr(1) + "TESTE Medicamentos" + chr(27) + chr(87) + chr(0)  // EXPANDIDO
   //TXT03:=chr(15) + '**************************************************'+ chr(18)          // CONDENSADO/NORMAL
   INICIO  :=chr(29) + chr(249) + chr(32) + chr(0) + chr(27) + chr(116) + chr(8)
   EXPANDE :=chr(27) + chr(87) + chr(1)
   cEXPANDE:=chr(27) + chr(87) + chr(0)
   CONDENSA:=chr(15)
   NORMAL  :=CHR(18)
   NEGRITO :=chr(27) + chr(69)
   cNEGRITO:=chr(27) + chr(70)
   CORTA   :=CHR(27)+CHR(119)
   TXT01:=INICIO
   TXT02:=EXPANDE + "TESTE Medicamentos" + cEXPANDE
   TXT03:=CONDENSA+"12345678901234567890123456789012345678901234567890123456789012345"+NORMAL // 65 CRTS
   TXT04:='12345678901234567890123456789012345678901234567890'                                // 50 CRTS
   TXT05:=chr(15) +'modo condensado'+ CHR(18)
   TXT06:=NEGRITO + "Modo Negrito"                               //+ chr(27) + chr(70) CANCELA NEGRITO
   TXT07:= EXPANDE + "1234567890123456789012345" + cEXPANDE      // 25 CRTS
   TXT08:='1234567890123456789012345678901234567890' + cNEGRITO  //+ chr(27) + chr(70)
   TXT09:='Teste teste teste'
   TXT10:='Teste teste teste teste'
   TXT11:=CORTA   // CORTE DO PAPEL
   FCLOSE(ARQTESTE)
   TXTARQ:=FOPEN( AAA, 2 )
   A:=1
   DO WHILE A <= 11
      xTXT   := [TXT]+ALLTRIM(STRZERO(A,2))
      WLINHA := &xTXT+CHR(13)+CHR(10)
      FSEEK ( TXTARQ, 0, 2 )
      FWRITE( TXTARQ, ALLTRIM(WLINHA), LEN(WLINHA))
      A++
   ENDDO
   FCLOSE(ARQTESTE)
   cArquivo := AAA
   cImpressora := GetDefaultPrinter()                 // Pego a Impressora Padrão
   PrintFileRaw(cImpressora, cArquivo, [Teste]) // Jogo o arquivo nela, ela pode estar LPT1, USB q vai embora...

RETURN NIL


Faz tempo que fiz esta rotina, o segredo se não me engano e ativar o modo ESC BEMA...

E um exemplo meia boca, mais da pra voce ter uma noção de como funciona.
gilbertosilverio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 332
Data de registro: 18 Jan 2009 09:39
Cidade/Estado: Ribeirao Pires - SP
Curtiu: 1 vez
Mens.Curtidas: 23 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor porter » 02 Mai 2017 11:11

Muito obrigado Gilberto, agora deu certo.
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor dbdc5554 » 06 Mai 2017 12:19

gilberto silverio, porter e quem + souber (rs)

essa MP-4200 só imprime no maxi 40 colunas ??

ou tem Jeito de imprimir 80 colunas comprimidas ?

poderia colocar um ex: ?

com o chr(15) só imprime 48

ob

Paiva
dbdc5554
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 149
Data de registro: 03 Dez 2012 07:49
Cidade/Estado: uberlandia-MG
Curtiu: 0 vez
Mens.Curtidas: 1 vez

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor dbdc5554 » 07 Mai 2017 15:56

o maximo que consegui foi 77 colunas com chr(15)

usando o printfileprn
paiva
dbdc5554
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 149
Data de registro: 03 Dez 2012 07:49
Cidade/Estado: uberlandia-MG
Curtiu: 0 vez
Mens.Curtidas: 1 vez

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor asimoes » 07 Mai 2017 18:32

Eu tenho um utilitário de impressão para esse modelo da bematech é só adaptar a função abaixo:
Este exemplo foi feito em MiniGui então algumas funções são da minigui como por exemplo msgtop, substituir para a que costuma usar

FUNCTION PrintWin( cPrinter, cArq )
LOCAL oPrn:=Nil, aPrn:=Win_PrinterList( .T., .F. ), __nColFixed, cLinha, oElemento, lImp:=.F.

   cPrinter := hb_DefaultValue( cPrinter, Win_PrinterGetDefault() )
   cArq     := hb_DefaultValue( cArq, "" )
   
   IF Empty( cArq )
      MsgStop( "Arquivo de impressão deve ser informado", "Erro" )
      RETURN .F.
   ENDIF

   IF Empty( aPrn )
      MsgStop( "Não há impressoras instaladas", "Erro" )
      RETURN .F.
   ENDIF
   
   FOR EACH oElemento IN aPrn
      IF Upper( oElemento[1] ) = Upper( cPrinter )
         //oElemento[1] //Nome da impressora
         //oElemento[2] //Porta onde a impressora está ligada
         lImp:=.T.
      ENDIF
   NEXT
 
   IF ! lImp
      MsgStop( "Impressora " + cPrinter + " não está instalada." + hb_Eol() + "Entre em contato com o helpdesk", "Erro" )
      RETURN Nil
   ENDIF
 
   oPrn := Win_Prn():New( cPrinter )

   oPrn:FormType   := WIN_DMPAPER_USER
   
   oPrn:PaperWidth := 3*26.4*10
   
   oPrn:Copies := 1

   IF ! oPrn:Create()
      MsgStop( "Não foi criado documento.", "Erro de Impressão" )
      oPrn:Destroy()
      RETURN Nil
   ENDIF
 
   IF ! oPrn:StartDoc( "DocPrint" )
      MsgStop( "Erro na Impressora.", "Erro de Impressão" )
      oPrn:Destroy()
      RETURN Nil
   ENDIF

   oPrn:SetFont( "Lucida Console", 8, 0 )

   __nColFixed := 0

    PrintCabec( .T., oPrn, hb_DirBase() + "fazenda.bmp" )
 
   FT_FUSE( cArq )
   
   DO WHILE ! FT_FEOF()
      cLinha := FT_FREADLN()
      cLinha := IF( Empty( cLinha ), " ", cLinha )
      oPrn:SetPos( __nColFixed )
      oPrn:Textout( cLinha, .T. )
      FT_FSKIP()
   ENDDO
 
   FT_FUSE()
   
   PrintCabec()

   oPrn:EndDoc()
   
   oPrn:Destroy()
   
   oPrn:=Nil

RETURN .T.

FUNCTION PrintCabec( lInicio, oPrn, cBitFile )
LOCAL __nLinha := 50, __nColuna := 100, __nHandleFile, _i, I 

STATIC __oBMP
STATIC __nWidth
STATIC __nHeight

   lInicio  := hb_DefaultValue( lInicio, .F. )
   cBitFile := hb_DefaultValue( cBitFile, "" )
   
   IF lInicio

      IF ! Empty( cBitFile ) .AND. __oBMP = Nil
         fi_Initialise()
         __nHandleFile := fi_Load( FIF_BMP, cBitFile, BMP_DEFAULT )
         __nWidth      := fi_GetWidth( __nHandleFile )
         __nHeight     := fi_GetHeight( __nHandleFile )
         fi_DeInitialise()
      ENDIF

      oPrn:SetPrc( 0, 0 ) // 1, 0
     
      oPrn:SetPrc( oPrn:pRow(), 4 )

      FOR I:=1 TO 10
         oPrn:Textout( " ", .T. )
      NEXT
     
      IF ! Empty( cBitFile )
         IF hb_vfExists( cBitFile )
            IF __oBMP = Nil
               __oBMP := Win_BMP():New()
               IF !__oBMP:loadFile( cBitFile )
                  RETURN Nil
               ENDIF
               //oBmp:Draw( oPrn, { nColuna, nLinha, nWidth, nHeight } )
               /* Note: Can also use this method to print bitmap */
               //__oBmp:Rect := { __nColuna, __nLinha, __nWidth, __nHeight }
               //oPrn:DrawBitmap( __oBmp )
            ENDIF
            __oBMP:Draw( oPrn, { __nColuna, __nLinha, __nWidth, __nHeight } )
         ENDIF
      ENDIF
   ELSE
      IF __oBMP != Nil
         __oBMP:Destroy()
         __nWidth  := Nil
         __nHeight := Nil
         __oBMP    := Nil
      ENDIF   
   ENDIF
RETURN Nil
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor dbdc5554 » 07 Mai 2017 19:28

Usando a win32prn consigo imprimir + fica muito feio(inlegível)

que M. Eu que mandei comprar essa impressora rs

vou ver aqui e PROVAVELMENTE Terei que diminuir o pedido para 77 colunas

com 77 colunas posso usar o printfileRaw pelo menos fica Mais LEGíVEL

Paiva
dbdc5554
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 149
Data de registro: 03 Dez 2012 07:49
Cidade/Estado: uberlandia-MG
Curtiu: 0 vez
Mens.Curtidas: 1 vez

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor asimoes » 07 Mai 2017 19:33

Usando a win32prn consigo imprimir + fica muito feio(inlegível)


Comigo isso não acontece.
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor dbdc5554 » 07 Mai 2017 21:03

vc poderia tirar uma foto e mandar pelo WhatsApp ?

034 99971 2578

Paiva
dbdc5554
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 149
Data de registro: 03 Dez 2012 07:49
Cidade/Estado: uberlandia-MG
Curtiu: 0 vez
Mens.Curtidas: 1 vez

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor asimoes » 07 Mai 2017 22:19

Amanhã eu mostro aqui a impressão
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor asimoes » 08 Mai 2017 07:52

Respondendo,
Feito com a rotina que eu postei
a térmica já foi bastante usada, mas ainda tem qualidade,
Instalação do Client Oracle com Ole DB.jpg
Impressora

IMG_20170508_074320879_HDR.jpg
demo 1

IMG_20170508_074327755_HDR.jpg
demo 2

IMG_20170508_074334753_HDR.jpg
demo 3
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor asimoes » 08 Mai 2017 08:22

Forçando muito a barra 80 cpp, tem que fornecer uma lupa para o usuário kkkk
IMG_20170508_081918469_HDR.jpg
demo 4
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

BEMATECH MP-4200 TH comprimir e negritar

Mensagempor asimoes » 08 Mai 2017 08:47

Outro exemplo:
IMG_20170508_084406438_HDR.jpg
demo 5
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 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