Clipper On Line • Ver Tópico - impressora bematech não fiscal

impressora bematech não fiscal

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

impressora bematech não fiscal

Mensagempor kakamachado » 29 Jun 2022 01:15

Caros amigos, uso a Minigui e preciso imprimir numa impressora Bematech não fiscal (Sistema de Caixa). Alguém tem experiência com esta impressora? Poderia colocar um exemplo de impressão (código do programa)? Obrigado
kakamachado
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 07 Mar 2016 18:54
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

impressora bematech não fiscal

Mensagempor Mario Mesquita » 29 Jun 2022 08:22

Bom dia.

Matricial, né? Eu tenho uma rotina de impressão de um recibo. Nesse trecho tem o que precisa usar. Eu uso @ SAY como no clipper.

Ali em "SETFIRM->PATH_REC" é o path da impressora na máquina, deixei variável mas pode ser fixo tb. O resto é padrão.

   SET DEVICE  TO PRINTER

   IF TestesMario
      SET PRINTER TO RECIBO.TXT
   ELSE
      IF ! EMPT(SETFIRM->PATH_REC)
          IF Frm_Firmas.Rdg_ImpRec.Value == 1
              xImp := ALLTRIM(SETFIRM->PATH_ETQ)
          ELSE
              xImp := ALLTRIM(SETFIRM->PATH_REC)
          ENDIF   
          SET PRINTER ON
          SET PRINTER TO &(xImp)
      ELSE   
          RETURN .F.
      ENDIF   
   ENDIF

   SETPRC(0,0)

   @ 00,0 SAY PADC("ESTADO DO RIO DE JANEIRO",47)
   @ 01,0 SAY PADC(ALLTRIM(SETFIRM->CLIENTE), 47)
   @ 02,0 SAY PADC(ALLTRIM(SETFIRM->ENDCLI),  47)
   @ 03,0 SAY PADC(ALLTRIM(SETFIRM->COMPLM),  47)
   @ 04,0 SAY PADC(ALLTRIM(SETFIRM->CIDADE)+"/"+SETFIRM->ESTADO,47)
   @ 05,0 SAY PADC("CNPJ:"+TRANSFORM(SETFIRM->CNPJ,"@R 99.999.999/9999-99"),47)


Saudações,
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 bematech não fiscal

Mensagempor kakamachado » 29 Jun 2022 11:52

Bom dia Mario, obrigado pela atenção. Não é matricial não, é uma impressora Bematech não fiscal, modelo MP 4200-TH, de bobina. Ainda não comprei, daí não ter podido fazer testes. Não sei se os comandos de impressão no xarbour são os mesmos que uso para uma impressora comum laser. Ela tem comandos para corte de papel, etc.
kakamachado
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 07 Mar 2016 18:54
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

impressora bematech não fiscal

Mensagempor Ivone Lopes da Silva » 29 Jun 2022 20:41

Acho que aqui tem algumas informações sobre o assunto.
viewtopic.php?f=4&t=16918&hilit=mp4200

Se fizer uma pesquisa no fórum pelo nome da impressora vai aparecer bastante informação.
Fiz há algum tempo atrás essa pesquisa e lembro que encontrei bastante coisa e um dos materiais que pesquisei foi do link acima.
Ivone Lopes da Silva
Colaborador

Colaborador
 
Mensagens: 75
Data de registro: 23 Out 2004 21:57
Cidade/Estado: São João da Boa Vista/SP
Curtiu: 7 vezes
Mens.Curtidas: 8 vezes

impressora bematech não fiscal

Mensagempor carlaoonline » 01 Jul 2022 10:03

Bom dia!

kakamachado escreveu: uso a Minigui e preciso imprimir numa impressora Bematech não fiscal


Antigamente, na época de impressoras de agulhas, se programava em função das impressoras, enviando Chr(15), Chr(18), etc.... para imprimir em Negrito, Itálico, SubEscrito, Condensado, etc.....

Hoje não vejo a necessidade disso uma vez que as impressoras imprimem o que está no arquivo/tela.

Uma impressora térmica fiscal ou não, é a mesma coisa que uma impressora jato de tinta/laser normal com a diferença ficando apenas na quantidade de colunas para o papel usado.

Se você conectar uma impressora fiscal no PC e fizer um texto no Word ele vai imprimir normalmente nessa impressorinha, apenas tem que cuidar até onde irão escrita as frases no Word( até qual coluna a impressora aceita na mesma linha).

Se optar em programar enviando códigos específicos para a impressora, talvez uma nova impressora não aceite esses códigos e terá que ficar reinventando a roda a cada impressora utilizada.

No meu caso, eu crio os recibos e notas em PDF pelo meu app em Harbour, gravando em disco e em seguida mandando imprimir com outro aplicativo com um comando enviado pelo meu app Harbour.

A maioria dos visualizadores de PDF aceitam imprimir diretamente por linha de comando, abrindo um PDF e imprimindo na impressora selecionado, o Foxit Reader, o Sumatra e até mesmo o Adobe aceitam esses comandos. E você nem precisa instalar o esse visualizador no PC do cliente, basta apenas copiar o executável e deixar na pasta do seu app ou em outra que quiser, utilizando ele apenas pelo app.

Exemplo de linha de comando utilizando o Sumatrapdf.exe


        IMPRESSORA="Nome exato da sua impressora aqui como esta no Windows"
       TEMPORARIO="C:\CLIENTE_TAL"
       NET7="Arq_10"

        BB = "START &TEMPORARIO"+"sumatrapdf.exe -print-to "+CHR(34)+IMPRESSORA+CHR(34)+" &NET7"+".PDF"
        HB_RUN( BB )
        ALERT("Documento enviado para a impressora;"+ IMPRESSORA)

        // Na janela do CMD, você pode fazer o teste direto, apenas coloque o nome da sua impressora entra as aspas.
        // sumatrapdf.exe -print-to "Brother DCP-B753DW series Printer" Recibo.pdf

      //  ATENCAO:
       // HB_Run com o START, executa o programa em segundo plano, a parte, e não pausa a execução do app principal que fez a chamda.
       // HB_Run sem o START, aguarda o término da execução para voltar ao app principal que fez a chamada.



Caso quiser um recibo bem simples, apenas com letras e números, você pode salvar em um arquivo TXT e mandar imprimir direto do App Harbour, sem precisar usar PDF.

Exemplo de código
(Pode mudar os parâmetros de SetFont)


//  IMPRIME UM ARQUIVO TEXTO EM QUALQUER IMPRESSORA NO MODO TEXTO NORMAL
//  Chamar assim:   
//  PrintWinPrn("Recibo.txt", IMPRESSORA)
//  ou
//  PrintWinPrn( cArq , IMPRESSORA)

Function PrintWinPrn( cArq, cPrint )
Local oPrn, aPrn := GetPrinters(), n := 0

oPrn := Win_Prn():New(cPrint)
oPrn :Copies := 1
oPrn :CharSet(155)
oPrn :SetFont( "Lucida Console", 8, { 3, -50 } )
*oPrn:SetFont('courier new',17,{1,17}, 0,.F.,.F.)

If !oPrn:Create()
  Alert("Nao foi criado o documento de Impressao")
  Return nil
EndIf

If !oPrn:StartDoc("Imprimindo Documento")
  Alert("Erro na Impressora")
  Return nil
EndIf

*HB_CDPSelect("PT850")
   HB_SETCODEPAGE( "PT850" )
SetPrc(0,0)
cText := MemoRead( cArq )
nLinh := MlCount( cText )
For n := 1 to nLinh
  *oPrn:TextOut(HB_AnsiToOem(CHR(27) + CHR(33) + CHR(1)+MemoLine(cText,,n)),.t.)
  oPrn:TextOut(HB_AnsiToOem(MemoLine(cText,,n)),.t.)
Next
oPrn:EndDoc()

*HB_CDPSelect( "PTISO")

Return .t.



Não esqueça que é muito importante configurar a impressora nas configurações do Windows, caso contrário irá mandar imprimir um frase e o Windows ira dar um avanço gigante no papel.

-------------------------------------------------------------
Passei essas coordenadas para um amigo, talvez lhe ajude se tiver dificuldades em configurar a sua:
-------------------------------------------------------------
Clicar no Menu Iniciar
Ir em Dispósitivos e Impressoras
Localizar a impressora 'Sua impressora escolhida'

COM BOTAO DIREITO NA 'Sua impressora escolhida' vá em:
PROPRIEDADES DA IMPRESSORA->PORTAS->ESCOLHER USB001 ou USB002 e ENTER

NOVAMENTE COM BOTAO DIREITO NA 'Sua impressora escolhida' vá em:
PROPRIEDADES DA IMPRESSORA->GERAL->PREFERENCIAS->PAPEL/QUALIDADE->AVANCADO->TAMANHO DO PAPEL-> Escolher 210mm e de OK ate´sair.
-------------------------------------------------------------
Avatar de usuário

carlaoonline
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 190
Data de registro: 24 Ago 2014 22:38
Cidade/Estado: Porto Alegre-RS
Curtiu: 73 vezes
Mens.Curtidas: 22 vezes

impressora bematech não fiscal

Mensagempor Jamil » 23 Out 2022 15:21

Boa Tarde kakamachado

voce deveria usar esc/pos existe um manual da Bematech

com esc/pos, serveria para qualquer impressora 40 colunas termica não fiscal

o manual da Bematech esta no site, https://github.com/ElginDeveloperCommun ... -4200%20TH

dá um pouco de trabalho mais vale a pena.
Avatar de usuário

Jamil
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 14
Data de registro: 25 Set 2016 14:12
Cidade/Estado: Rio De Janeiro
Curtiu: 7 vezes
Mens.Curtidas: 3 vezes




Retornar para MiniGui

Quem está online

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