Página 1 de 2
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 01 Mai 2017 15:09
por porter
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
Código: Selecionar todos
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])
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 01 Mai 2017 16:14
por gilbertosilverio
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
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 02 Mai 2017 09:59
por porter
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.
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 02 Mai 2017 10:15
por gilbertosilverio
Porter,
Tenta usar esta rotina de teste:
Código: Selecionar todos
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.
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 02 Mai 2017 11:11
por porter
Muito obrigado Gilberto, agora deu certo.
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 06 Mai 2017 12:19
por dbdc5554
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
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 07 Mai 2017 15:56
por dbdc5554
o maximo que consegui foi 77 colunas com chr(15)
usando o printfileprn
paiva
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 07 Mai 2017 18:32
por asimoes
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
Código: Selecionar todos
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
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 07 Mai 2017 19:28
por dbdc5554
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
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 07 Mai 2017 19:33
por asimoes
Usando a win32prn consigo imprimir + fica muito feio(inlegível)
Comigo isso não acontece.
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 07 Mai 2017 21:03
por dbdc5554
vc poderia tirar uma foto e mandar pelo WhatsApp ?
034 99971 2578
Paiva
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 07 Mai 2017 22:19
por asimoes
Amanhã eu mostro aqui a impressão
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 08 Mai 2017 07:52
por asimoes
Respondendo,
Feito com a rotina que eu postei
a térmica já foi bastante usada, mas ainda tem qualidade,

- Impressora

- demo 1

- demo 2

- demo 3
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 08 Mai 2017 08:22
por asimoes
Forçando muito a barra 80 cpp, tem que fornecer uma lupa para o usuário kkkk

- demo 4
BEMATECH MP-4200 TH comprimir e negritar
Enviado: 08 Mai 2017 08:47
por asimoes
Outro exemplo:

- demo 5