Página 1 de 1

Duvida MP 4200 Nao Fiscal

Enviado: 10 Mai 2016 09:35
por andrelucass
Ola a todos
Tenho uma rotina de impressão de cupom nao fiscal, na impressora epson tm -t20 imprime corretamenta, agora na impressora mp 4200 da bematech a impressão sai diferente.


Atenciosamente
André Lucas souza

Duvida MP 4200 Nao Fiscal

Enviado: 10 Mai 2016 09:50
por AutomoSistema
Bom dia, tem como vê o codigo fonte da impressão ou você criou es código com win32prn?

Duvida MP 4200 Nao Fiscal

Enviado: 10 Mai 2016 09:53
por andrelucass
Não usei a win32prn

Duvida MP 4200 Nao Fiscal

Enviado: 10 Mai 2016 09:56
por AutomoSistema
Tenho aplicativo que trabalha com win32prn e não tenho problema nenhum com mudança de impressora a unica diferença esta na gaveta
com a impressora bematech abertura é automotico e com a epson tenho que informar que a impressora vai trabalhar com gaveta

Duvida MP 4200 Nao Fiscal

Enviado: 10 Mai 2016 09:57
por andrelucass
Daria pra mostrar um exemplo.

Duvida MP 4200 Nao Fiscal

Enviado: 10 Mai 2016 10:06
por AutomoSistema
Exemplo de Impressão de cupon não fiscal com uso do win32prn

Código: Selecionar todos

local oPrinter,linha,desenho
local cFileName, oWin32Bmp,nome_impressora,xcalculo,xcopia
local xempresa,xendereco,xbairro,xcidade,xtelefone
dbselectarea(9) // data
dbsetorder(1)
dbseek("1")
xempresa  := field -> cliente
xendereco := field -> endereco
xbairro   := field -> bairro
xcidade   := field -> cidade
xtelefone := field -> telefone
xcalculo := xtotal := 0
xcopia := 1
nome_impressora := GetDefaultPrinter()
// Create printer object and configure print job
oPrinter                 := Win32Prn():new( nome_impressora )
oPrinter:landscape       := .f.
oPrinter:formType        := DMPAPER_A4
oPrinter:copies          := xcopia
// Create device context
IF .NOT. oPrinter:create()
  Alert( "Cannot create device context" )
  QUIT
ENDIF
// Create print job
if ! oPrinter:startdoc( "Emissão de Pedido" ) // nome do arquivo para impressao
  Alert( "Cannot create document" )
  QUIT
ENDIF
linha := 1
desenho := 320
oPrinter:newline()
oPrinter:newline()
oPrinter:setfont('courier new',10,{1,13}, 700 ,.F.,.F.)     
oPrinter:setprc( oPrinter:Prow() , Pcol() + 8 )
oPrinter:textout( alltrim(xempresa) )
oPrinter:newline()
oPrinter:setfont('courier new',8,{1,13}, 700 ,.F.,.F.)     
oPrinter:setprc( oPrinter:Prow() , Pcol() + 2 )
oPrinter:textout( alltrim(xendereco) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() + 2 )
oPrinter:textout( alltrim(xbairro) + " - " + alltrim(xcidade) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() + 2 )
oPrinter:textout( alltrim(xtelefone) )
oPrinter:newline()
oPrinter:newline()
if xforma = "CREDIÁRIO"
   dbselectarea(5) // cliente
   dbsetorder(1)
   dbseek( xcodcliente )
   oPrinter:setprc( oPrinter:Prow() , Pcol() )
   oPrinter:textout( "Cliente : " + alltrim(f_cliente) )   
   oPrinter:newline()
   oPrinter:setprc( oPrinter:Prow() , Pcol() )
   oPrinter:textout( "End : " + left( field -> end,30) )    
   oPrinter:newline()
   oPrinter:setprc( oPrinter:Prow() , Pcol() )
   oPrinter:textout( "Bairro : " + left( field -> bairro,30) )
   oPrinter:newline()
   if field -> cnpj = space(1)
      oPrinter:setprc( oPrinter:Prow() , Pcol() )
      oPrinter:textout( "C.P.F : " + field -> cpf )
   else
      oPrinter:setprc( oPrinter:Prow() , Pcol() )
      oPrinter:textout( "CNPJ : " + field -> cnpj )      
   endif
   oPrinter:newline()
   oPrinter:setprc( oPrinter:Prow() , Pcol() )
   oPrinter:textout( "Telefone : " + field -> telefone )
else   
   oPrinter:setprc( oPrinter:Prow() , Pcol() )
   oPrinter:textout( "Cliente : " + alltrim(f_cliente) )
endif
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Pedido N° : " + alltrim(str(xpedido)) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Emissão : " + dtoc(xdata) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "Meios de Pagamento : " + alltrim(xforma) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( replicate( "-" , 76 ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() + 10 )
oPrinter:textout( "DESCRIÇÃO" )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "QTD" )
oPrinter:setprc( oPrinter:Prow() , Pcol() + 10 )
oPrinter:textout( "PR. UNIT." )
oPrinter:setprc( oPrinter:Prow() , Pcol() + 29 )
oPrinter:textout( "TOTAL" )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( replicate( "-" , 76 ) )
oPrinter:newline()
dbselectarea(7) // his_vend
dbsetorder(1)
OrdScope( 0 , xpedido )
OrdScope( 1 , xpedido )
dbgotop()
do while ! eof()
  if deleted()
    dbskip()
    loop
  endif
  if field -> quantidade <> 0
     linha += 2     
     oPrinter:setprc( oPrinter:Prow() , Pcol() )
     oPrinter:textout( field -> produto )
     oPrinter:newline()
     oPrinter:setprc( oPrinter:Prow() , Pcol() )
     oPrinter:textout( alltrim( str( field -> quantidade ) ) )
     oPrinter:setprc( oPrinter:Prow() , Pcol() + 7 )
     oPrinter:textout( "X" )     
     oPrinter:setprc( oPrinter:Prow() , Pcol() + 10 )
     oPrinter:textout( transform( field -> valor , "@E 99,999.99" ) )
     oPrinter:setprc( oPrinter:Prow() , Pcol() + 25 )
     oPrinter:textout( transform( field -> total , "@E 99,999.99" ) ) 
     oPrinter:newline()
     xcalculo += field -> total
     if linha = 62
        linha := 0
        oPrinter:newpage()
     endif
  endif   
  dbskip()
enddo
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( replicate( "-" , 76 ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "VALOR DA COMPRA R$ " + transform( xcalculo , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "DESCONTO        R$ " + transform( xdesconto , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "ACRÉSCIMO       R$ " + transform( xacrescimo , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "ENTRADA         R$ " + transform( xentrada , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "TOTAL           R$ " + transform( xpagar , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "DINHEIRO        R$ " + transform( xdinheiro , "@E 99,999.99" ) )
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "TROCO           R$ " + transform( xtroco , "@E 99,999.99" ) )
if xforma = "CREDIÁRIO"
   oPrinter:newline()
   oPrinter:newline()
   oPrinter:newline()
   oPrinter:newline()
   oPrinter:setprc( oPrinter:Prow() , Pcol() + 5 )
   oPrinter:textout( replicate( "-" , 23 ) )   
   oPrinter:newline()
   oPrinter:setprc( oPrinter:Prow() , Pcol() + 5 )
   oPrinter:textout( "Assinatura do Cliente" )
endif
oPrinter:newline()
oPrinter:newline()
oPrinter:setprc( oPrinter:Prow() , Pcol() )
oPrinter:textout( "." )
oPrinter:endDoc()
oPrinter:destroy()

Duvida MP 4200 Nao Fiscal

Enviado: 10 Mai 2016 10:17
por andrelucass
Obrigado vou testar aqui

Duvida MP 4200 Nao Fiscal

Enviado: 12 Mai 2016 21:08
por andrelucass
Ainda estou precisando de outro exemplo, usando os proprios comandos do esc/bema

Duvida MP 4200 Nao Fiscal

Enviado: 13 Mai 2016 10:42
por asimoes
Esse modelo da Bematech eu uso através da dll mp3032.dll com funções do harbour
Usando Win_Prn() não dá um eject no final??

Duvida MP 4200 Nao Fiscal

Enviado: 13 Mai 2016 21:26
por andrelucass
Uso essa rotina para imprimir um cupom não fiscal na epsom tm t20, gostaria de imprimir na mp 4200

Código: Selecionar todos

procedure ICupomNaoFiscal(cNumPed)
    local nContador := 1,nDesc := 0,cTelefone

    Clientes->(dbsetorder(1),dbseek(Pedidos->CodCli))
    Vendedor->(dbsetorder(1),dbseek(Pedidos->CodVen))
    Plano->(dbsetorder(1),dbseek(Pedidos->CodPla))
    Cidades->(dbsetorder(1),dbseek(cEmpCodcid))
    set printer tO ( GetDefaultPrinter() ) && PARA COMPILAR EM CLIPPER RETIRAR ESSA LINHA   
    set device to print
    SET MARGIN TO 0
    SETPRC( 0, 0 )
    @ prow(),pcol() say chr(27)+chr(64) // ** Inicializa a impressora
    @ prow()+1,00 say padc(left(rtrim(clNome),38), 48 )
    @ prow(),pcol() say CHR(27) + CHR(33) + CHR(1) // ** Muda para a FontB para que o Texto seja impresso em 1 linha
    @ PROW()+1,00 say rtrim(cEmpEndereco)+","+cEmpNumero+rtrim(cEmpBairro)+" "+rtrim(Cidades->NomCid)+"-"+;
                    Cidades->EstCid
    @ prow()+1,00 say "Fone: "+transform(cEmpTelefone1,"@r (999)99999-9999")+" "+;
                    transform(cEmpTelefone2,"@r (999)99999-9999")
    @ prow(),pcol() say CHR(27) + CHR(33) + CHR(0) // ** Volta para a FontA
    @ PROW()+1,00 SAY REPLI( "-", 48 )    
    @ PROW()+1,00 SAY PADC( "CUPOM NAO FISCAL", 48 )
    @ PROW()+1,00 SAY "Proposta No: "+cNumPed+" "+dtoc(Pedidos->Data)+" "+time()
    @ prow()+1,00 say " Cliente: "+Pedidos->CodCli+" "+left(Clientes->NomCli,30) 
    @ prow()+1,00 say "Vendedor: "+Pedidos->CodVen+" "+Vendedor->Nome
    @ prow()+1,00 say replicate("-",48)
    @ PROW()+1,0 SAY "#|COD|DESC|QTD|UN|VL UN R$|(VLTR R$)*|VL ITEM R$" 
    @ PROW()+1,0 SAY REPLI( "-", 48 )
   
    @ prow(),pcol() say CHR(27) + CHR(33) + CHR(1) // ** Muda para a FontB para que o Texto seja impresso em 1 linha 
    ItemPed->(dbsetorder(1),dbseek(cNumPed))
    do while ItemPed->NumPed == cNumPed .and. ItemPed->(!eof())
        Produtos->(dbsetorder(1),dbseek(ItemPed->CodPro))
        
        @ prow()+1,00 say strzero(nContador,3,0)+space(01)+;
                            ItemPed->CodItem+space(01)+;
                            left(Produtos->FanPro,30)+space(01)+;
                            transform(ItemPed->QtdPro,"@e 999,999.999")+space(01)+;
                            Produtos->EmbPro+space(01)+;
                            "X"+space(01)+;  
                            transform(ItemPed->PcoVen,"@e 99,999.999")+space(01)+;
                            transform(ItemPed->PcoLiq*ItemPed->QtdPro,"@e 999,999.99") 
        ItemPed->(dbskip())
        if ItemPed->(eof())
            exit
        endif
        nContador += 1
   enddo
   @ prow(),pcol() say CHR(27) + CHR(33) + CHR(0) // Muda para fontA
   @ PROW()+1,00 SAY REPLI( "-", 48 )
   @ prow()+1,00 say "Itens: "+strzero(nContador,3,0)
   @ prow()  ,20 say "Sub-Total: "+transform(Pedidos->SubTotal,"@e 999,999.99")
    if Pedidos->ValDesc > 0
        nDesc := Pedidos->ValDesc
    endif
    if Pedidos->PerDesc > 0
        nDesc := Pedidos->SubTotal*(Pedidos->PerDesc/100)
    endif
    @ prow()+1,20 say "Desconto:  "+transform(nDesc,"@e 999,999.99")
    @ prow()+1,20 say "   Total:  "+transform(Pedidos->SubTotal-nDesc,"@e 999,999.99")
    @ prow()+1,00 say "Pagamento: "+Plano->DesPla
    if !empty(Sequencia->MCupom1) .or. !empty(Sequencia->MCupom2) .or. !empty(Sequencia->MCupom3)
        @ prow()+1,00 say replicate("-",48)
        if !empty(Sequencia->MCupom1)
            @ prow()+1,00 say padc(rtrim(Sequencia->MCupom1),48)
        endif
        if !empty(Sequencia->MCupom2)
            @ prow()+1,00 say padc(rtrim(Sequencia->MCupom2),48)
        endif
        if !empty(Sequencia->MCupom3)
            @ prow()+1,00 say padc(rtrim(Sequencia->MCupom3),48)
        endif
    endif
    @ PROW()+7,00 SAY ""
    @ PROW(),0 SAY CHR(29) + CHR(86) + CHR(0) // Aciona Guilhotina
    set device to screen
    set printer to
    return
// *****************************************************************************


Duvida MP 4200 Nao Fiscal

Enviado: 14 Mai 2016 01:28
por rochinha
Amiguinhos,

Esta impressoras usam ESC/POS e/ou ESC/POS Bema.

Use o Bematech User Interface para verificar qual configuração está ativa para ela. Geralmente ela vem padronizada para ESC/POS Bema onde o formato da impressão é diferente do ESC/POS padrão.