Jump to content

dev botao

  • Este tópico foi criado há 2603 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Posted

Olá amigos.

 

Estou iniciando meu desenvolvimento em nfce. Já gerei o xml, mas estou apanhando na impressão>

 

Tenho uma mp 4200 para testes, e após instalar(via software da bematech), acionei: AcbrNfe1.imprimir,  e inicialmente não fez nada.

Pesquisando na internet, encontrei a necessidade de informar a porta, velocidade, e ativar.

Funcionou, a bematech cuspiu um cupom.

Mas continuando no desenvolvimento, ao inserir o token do certificado digital, já deu erro: impossível comunicar com impressora.

Então estou parado. Preciso da ajuda dos colegas, para utilizar esta impressora, como ativar.

Hoje ao ligar, o computador reconheceu a impressora e novamente pediu para instalar(que confusão isto) .

Pergunto: qual o passo-a-passo para usar esta ou outra impressora via AcbrNfeDanfeEscpos?

Já pesquisei outros posts mas não foi suficiente.

Marcio

Posted (edited)

Régys, obrigado pela atenção.

 

A resposta para minha dúvida estava no meu próprio computador, como você me relatou.

Muitas vezes, ficamos procurando respostas, e a resposta está na nossa frente.

Quando não existia a web, ficávamos muitas vezes, dias e dias, com uma dúvida ou bloqueio criativo. 

E então, num certo momento, depois de ler e reler todo o algoritmo, ir diversas vezes ao banheiro ou tomar um copo d'água, e voilá: a resposta.

Não sei se você programou antes da existência da Web, mas era um sufoco.

Hoje não, se depararmos com uma dúvida, postamos num fórum ou pesquisamos via google. E tem sempre uma alma caridosa e generosa para

compartilhar sua sapiência com seus semelhantes amigos virtuais. Pessoas como você, Régys, cuja existência e disponibilidade, é o que tem de melhor na web.

Muito obrigado pela sua gentileza.

E para aproveitar um pouco mais do amigo, uma dúvida: o exemplo(demoacbrnfedanfeescpos) não roda no meu computador, ela abre e se mexer em qualquer controle, ele fecha. O que pode estar acontecendo? Utilizo Dephi 7.

Um abraço 

Marcio

 

E esqueci  de falar o que estava fazendo errado: não estava desativando device, então dava erro, bastou ativar e desativar no final da impressão. Uma sugestão: no exemplo do acbrnfedemo, colocar a impressão e configuração do acbrnfedanfeescpos

Edited by marcio-carneiro
  • Like 1
  • Moderadores
Posted

Marcio, é estranho ele fechar sozinho assim, aqui eu tenho D7, D2007, D2010, XE6 e XE7 e rodei em todos eles sem problemas, você tentou rodar debugando para ver se alguma mensagem silenciosa aparece?

 

Quanto ao demo do acbrnfedemo, eu preferi fazer um em separado (aquele lhe citei anteriormente) devido as particularidades do componente já que ele conecta a uma impressora serial, etc, etc.

 

Obs.: Sou do tempo das telinhas verde/laranja/preto  :D

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • 4 weeks later...
Posted (edited)

Boa tarde,

 

Estou utilizando a Bematech MP-4200-TH para emissão do DANFE NFC-E, preciso diminuir o espaçamento entre linhas da impressão e não consegui encontrar o comando correto.

Eu sei que para a impressora fiscal que utiliza a DLL BemaFI32 existe uma função responsável por isso  (Bematech_FI_EspacoEntreLinhas), porém, para a NÃO FISCAL não existe essa função e também não encontrei o comando responsável. Será que alguém tem uma ideia de qual comando ou a impressão não permite esse ajuste? 

 

A dll da não fiscal é mp2032.

 

Para Epson TM-T20 eu consegui fazer utilizando o comando <cespl>35</cespl>  e utilizando a função ImprimeTextoTag da dll InterfaceEpsonNF.dll

Edited by Rubens-JP
  • 2 months later...
Posted

Boa tarde, estou tentando pelo demo imprimir um DANFE NFC-e  em uma Daruma DR-700 H e os acentos não são impressos corretamente, 

 Vi em uma das imagens deste post que vocês conseguiram imprimir. Existe alguma configuração especial ? Obrigado.

  • 2 months later...
Posted

Pessoal, boa tarde, postei em outros topicos, mas vi que talvez aqui esteja a solucao.

Alguem ja fez imprimir na mp-2500? Independente se saiu qr code ou nao, mas em si, apenas imprimir?

Nao consigo na minha 2500 atualizada e desatualiza, nao imprimi nada.

Se alguem ja fez, posta umas dicas por favor.

Obrigado

  • 3 weeks later...
  • 3 months later...
Posted

Boa tarde,

  Estou fazendo os testes na impressora MP-2500 TH.

  O cupom do NFC-e está saindo formatado porém sem o QR-CODE. 

  Tem alguma configuração nos componentes para fazer sair o QR-CODE no lugar da URL ?

 

  Obrigado.

 

  • 8 months later...
Posted
On 01/11/2014 at 10:11 AM, welkson said:

Pessoal,

 

A Bematech respondeu o e-mail e consegui resolver o problema.

 

Acredito que a solução ideal seria criar uma propriedade no componente TACBrNFeDANFeESCPOS para informar o padrão de QRCode deve ser impresso (já que no ESC/POS não tem um comando padronizado para imprimir QRCode, cada fabricante está fazendo do seu jeito).

 

Como não sou expert em criação de componentes, reutilizei uma propriedade do componente que na minha análise (rápida) não está sendo utilizado: Impressora

 

Se o campo estiver vazio, o componente vai considerar que a impressora ligada é uma Epson (set de comandos default), se o campo estiver preenchido com a string "Bematech" (acredito que seria mais interessante algum tipo de record: tQRCodeBematech, tQRCodeDaruma, etc.) o componente vai enviar o set de comandos do QRCode no padrão Bematech.

 

Na segunda-feira devo receber uma Daruma DR700 que compramos para NFCe, vou fazer os testes, e se necessitar de ajustes irei fazer e disponibilizar nesse mesmo tópico.

 

Para que a impressão seja feita corretamente é necessário configurar o set de comandos "ESC/POS" via aplicativo da Bematech (Bematech User Software).


procedure TACBrNFeDANFeESCPOS.GerarRodape(CortaPapel: Boolean = True; Cancelamento: Boolean = False);
var
  qrcode : string;
  cCaracter:AnsiString;
  i, cTam1, cTam2:Integer;
begin
  FBuffer.Add(cCmdFonteNormal+'------------------------------------------------');
  FLinhaCmd := cCmdAlinhadoCentro+'Consulta via leitor de QR Code';
  FBuffer.Add(FLinhaCmd);
  FBuffer.Add(' ');




  qrcode := NotaUtil.GetURLQRCode( FpNFe.ide.cUF, FpNFe.ide.tpAmb,
                                   FpNFe.infNFe.ID,
                                   DFeUtil.SeSenao(FpNFe.Dest.idEstrangeiro <> '',FpNFe.Dest.idEstrangeiro, FpNFe.Dest.CNPJCPF),
                                   FpNFe.ide.dEmi,
                                   FpNFe.Total.ICMSTot.vNF, FpNFe.Total.ICMSTot.vICMS,
                                   FpNFe.signature.DigestValue ,
                                   TACBrNFe( ACBrNFe ).Configuracoes.Geral.IdToken,
                                   TACBrNFe( ACBrNFe ).Configuracoes.Geral.Token);


  //bematech
  if (FImpressora = 'Bematech') then
     begin
        //formato Bematech (http://partners.bematech.com.br/2014/09/imprimindo-qrcode-na-impressora-mp-4200-th/)

        //OBS: para que o QRCode seja impresso na Bematech é necessário instalar o firmware 1.6 ou superior (http://partners.bematech.com.br/2013/03/edicao-139-mp-4200-th-com-qr-code/)
        //     essa implementação utiliza o set de comandos ESC/POS. Para habilitar na impressora utilize o aplicativo "Bematech User Software", e na aba "Configurações Adicionais" selecione
        //     o tipo de comando "Esc/POS"

        for i := 1 to length(qrcode) do
            begin
               cCaracter := cCaracter + Chr(Ord(qrcode[i]));
            end;

        if (length(qrcode) > 255) then
          begin
             cTam1 := length(qrcode) mod 255;
             cTam2 := length(qrcode) div 255;
          end
        else
          begin
             cTam1 := length(qrcode);
             cTam2 := 0;
          end;

        FLinhaCmd :=  #27 + #97 + #1 +             //esse código faz a centralização
                      #29 + #107 + #81 +           //esse é o do qr code
                      #3 + #8 +                    //aqui é o tamanho do QRCode
                      #8 + #1 +                    //dimensão (8)
                      Chr(cTam1) +                 //resto da divisão correspondente ao tamanho do texto / 255
                      Chr(cTam2) +                 //divisão correspondente ao tamanho do texto
                      cCaracter;                   //aqui começa o texto

     end
     
  else if (FImpressora = 'Daruma') then
     begin

     end

  else //default (Epson ESC/POS)
     begin
        //formato Epson ESC/POS
        FLinhaCmd := chr(29)+'(k'+chr(4)+chr(0)+'1A2'+chr(0)+
                     chr(29)+'(k'+chr(3)+chr(0)+'1C'+chr(4)+
                     chr(29)+'(k'+chr(3)+chr(0)+'1E0'+
                     chr(29)+'(k'+Int2TB(length(qrcode)+3)+'1P0'+qrcode+
                     chr(29)+'(k'+chr(3)+chr(0)+'1Q0';
     end;


  FBuffer.Add(FLinhaCmd);

  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add(cCmdFontePequena+('Protocolo de Autorização:'+Trim(FpNFe.procNFe.nProt)+' '+DFeUtil.SeSenao(FpNFe.procNFe.dhRecbto<>0,DateTimeToStr(FpNFe.procNFe.dhRecbto),''))+cCmdFonteNormal);
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');
  FBuffer.Add('');

  if CortaPapel then
     FBuffer.Add(cCmdCortaPapel);
end;

Acredito que o componente está ignorando algumas propriedades, como NumCopias, pois sempre sai 2 vias mesmo quando configurado para 1 (tentei com ViaConsumidor False mas o mesmo comportamento ocorre). Vou analisar com mais calma o código pra ver se acho onde está enviando essa segunda cópia.

Amigo, salvou meu emprego :D, Parabéns pelo código e por compartilhar! funcionou perfeito a impressão aqui, estava com o mesmo problema de 255 caracteres. Muito Obrigado!!!!

  • 1 year later...
Posted

boa noite amigos c estou com o seguinte problema quando imprimo a NFCe na impressora nao fiscal Bematech MP 4200 TH, sai normal mais quando vai imprimir o comprovante do cartão as letras sai grande e a impressao muito lenta aguem pode mim ajudar desde ja agradeço

  • Moderadores
Posted
33 minutos atrás, kennedygm3 disse:

boa noite amigos c estou com o seguinte problema quando imprimo a NFCe na impressora nao fiscal Bematech MP 4200 TH, sai normal mais quando vai imprimir o comprovante do cartão as letras sai grande e a impressao muito lenta aguem pode mim ajudar desde ja agradeço

Favor não postar o mesmo problema em vários tópicos, poste uma vez apenas.

Veja este tópico se é o mesmo caso:

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Este tópico foi criado há 2603 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.