Ir para conteúdo
  • Cadastre-se

wrmedeiros

Membros
  • Total de ítens

    225
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por wrmedeiros

  1. Nunca usei acentos em impressoras fiscais... por mim, no caso dessas não-fiscais colocava também uma função pra remover esses acentos e estava tudo resolvido  :-P

     

    Será que no Delphi 2010 o comportamento do Result ficou igual ao Return do Java? Quando um Return é feito no Java ele interrompe o restante da execução (sai da função). Coloca um debug nesse Result := text e veja se quando ele executado o fluxo continua até o "if MarcaImpressora", etc.

    function TACBrNFeDANFeESCPOS.CodificaStringESCPOS(text:AnsiString): AnsiString;
    begin
      Result := text;
    
      //codifica linhas de texto com UTF-8 para evitar erros de acentuaÁ„o na Bematech
      if MarcaImpressora = iBematech then
          Result := UTF8Encode(text)
    end;
    
  2. Bom dia Thiago.

     

    Só estou conseguindo trabalhar na impressora a noite... mais tarde faço testes e retorno com as respostas.

     

    Aparentemente está tudo certo com a configuração da impressora (UTF8, BEMA/POS, etc.)... lembrando que o comando de conversão só é executado se a propriedade MarcaImpressora estiver definida como iBematech no componente ACBrESCPOS;

     

    Testei no Delphi 2006, você usa qual?

  3. André,

     

    Estou anexando o código do ACBrNFeDANFeESCPOS com os problemas de acentuação corrigidos.

     

    Resumo das alterações:

    • Criei um método CodificaStringESCPOS para codificar em UTF8 todas as strings quando o modelo de impressora for Bematech;
    • Alterei o cCmdPagCod/codepage para #8 (UTF-8);
    • Na linha 203 onde é enviado um comando para imprimir a logomarca gravada na impressora, coloquei um IF para só enviar o comando L0E quando a impressora for Epson (TODO: futuramente implementar a impressão de logomarca quando usando Bematech);

     

    Testei os demais comandos (negrito, condensado, corte de papel, etc), e estão todos corretos.

     

    Tentei manter o estilo de código do projeto ACBr, mas pode ter ficado algo fora do padrão, fique a vontade para corrigir, fazer refactory na implementação, etc.

     

    Em breve começo os testes com Daruma e mando o código quando estiver pronto.

     

     

    ACBrNFeDANFeESCPOS.pas

  4. André, fiz o teste, os acentos continuam quebrados.

     

    Fiz o seguinte, voltei a impressora para UTF-8, e fiz um pequeno aplicativo no Delphi para fazer testes de conversão de encoding e consegui imprimir os acentos corretamente quando usei UTF8Encode.

     

    Algo assim:

    procedure TForm5.Print();
    var
       F:TextFile;
    begin
       AssignFile(F, 'COM5');
       Rewrite(F);
       WriteLn(F, UTF8Encode(Text)); //codifico o texto recebido em UTF-8
       CloseFile(F);
    end;
    

    Dessa forma os acentos são corretamente, ou seja, poderíamos alterar o ACBrESCPOS incluindo essa instrução nas linhas que recebem dados do cliente, produtos, etc.

     

    Quanto ao problema do (LOE está na seguinte linha:

      FBuffer.Add(FLinhaCmd+chr(29)+'(L'+chr(6)+chr(0)+'0E  '+chr(1)+chr(1)); // Imprimindo logo já gravado na memória
    

    Não encontrei no manual de programação da impressora esse comando L0E.. comentei esse trecho apartir do +chr(29) e o problema sumiu. Essa linha não é para a Epson?

  5. Só pra registrar, acabo de falar com o suporte da Daruma, e a mesma não suporta ESC/POS.

     

    Teremos que implementar essas diferenças de cada modelo de impressora.

     

    SET de comandos da Daruma: http://bit.ly/18wYfO2

     

    Peço desculpas por usar esse tópico (que é sobre Bematech) para falar sobre outros modelos de impressora. Acredito que para efeitos de histórico seria interessante mudar o título para "ACBrESCPOS - Impressoras Compatíveis" #sugestão

  6. André, obrigado pelo retorno.

     

    Só vou ter acesso a impressora a noite, irei fazer os testes e retorno pra você.

     

    Configurei a impressora com vários modelos de codepage (UTF-8, etc.), mas os acentos não são impressos (mesmo o Notepad++ configurado para UTF-8).

     

    Depois de muito teste descobri que fazendo um "echo çâéã > COM5" direto pelo MS-DOS funcionava... tentei descobrir qual codepage o MS-DOS usava, na internet dizem que é CP850, mas se pegar a saída do ECHO, jogar para um TXT, e abrir pelo Notepad++ ele avisa que se trata de codepage "ANSI". Codepage/Charset etc. não é muito minha praia, mas vou continua pesquisando e tentando contribuir de alguma forma.

  7. Tchuck, você habilitou o modo BEMA/POS via "Bematech Tool"?

     

    André, fiz os testes com a última revisão usando a impressora Daruma DR-700e... no aplicativo de configuração da Daruma tem 2 set's de comandos, testei com os dois, mas o resultado não é muito bom (anexo).

     

    Fiz o teste com o modelo "Epson" na esperança que a Daruma tivesse seguido o padrão ESC/POS, mas saiu tudo quebrado... testei como "Bematech", mas o BEMA/POS é bem específico e já esperava que não funcionasse.

     

    Vou dar uma lida no material da Daruma e tentar implementar as alterações.

     

    Quanto a Bematech, vou ligá-la agora para fazer testes e em outra mensagem posto os resultados.

     

    Obrigado pela força.

    post-24-0-81488000-1415834969_thumb.jpg

  8. Nilton,

     

    Fugindo um pouco do tópico... na sua mensagem você comentou sobre as diferenças de conceitos de ECf e NFCe, concordo, realmente são muitas... tive esse mesmo confronto de "mundos diferentes" quando fui implementar NFe pela primeira vez em 2008 (o cliente tinha regime especial, e foi "convidado" a emitir NFe/SPED Fiscal/etc. nos pegando totalmente de surpresa).

     

    Em um vídeo que vi da Daruma (Claudenir) ele fala sobre isso, que muita gente opta por criar um novo aplicativo, ou módulo para implementar NFCe, etc., mas apesar de está ciente das dificuldades, estou tentando fazer tudo no mesmo aplicativo, e da forma mais transparente possível para o usuário (a operação do sistema em si até agora não mudou em nada, só o fato da impressora ser diferente e sair um QRCode no fim).

     

    Ontem consegui aprovar as transações com TEF, e fiz algumas pequenas adaptações no ACBrESC/POS para imprimir o comprovante. Depois vou ver se foi a melhor alternativa e disponibilizo o código para que a pessoal comente e sugira melhorias.

     

    Mais uma vez obrigado pela ajuda.

  9. Boa tarde Nilton.

    Pois é meu amigo, já vi muitos casos de fraudes nos cancelamentos (supervisor + operadora finalizavam cupom, recebiam o dinheiro do cliente, em seguida cancelavam o cupom), devido isso não gosto muito da ideia de "limpar" a tela e não registrar em lugar algum que aquilo ocorreu.

     

    No caso do NFCe, durante a digitação do cupom se algum item for cancelado, eu marco no banco para não mandar para o XML, mas deixo o registro no banco para fins de auditoria (supervisor que autorizou, hora, etc.).

     

    Já no caso do cupom inteiro ser cancelado, devido a questão da numeração da NFCe, fiquei na dúvida qual a melhor forma para proceder.

     

    Mas concordo com você, um número maior de inutilização ou cancelamento de NFCe pode também causar problemas.

     

    Vou verificar a possibilidade de cancelar o cupom atual, registrar em uma tabela de auditoria, mas manter a numeração disponível para o cupom seguinte... mas no caso do cupom já ter sido finalizado e gerado NFCe, não tem muito o que fazer, tem que cancelar mesmo.

     

    Obrigado pelas dicas amigo!

  10. Senhores, boa tarde!

     

    Como vocês estão tratando o cancelamento do cupom ATUAL (cancelamento no meio do cupom, antes de transmitir).

     

    Ex.: cliente no meio do cupom descobre que esqueceu a carteira e manda cancelar.

     

    Como o cupom não foi finalizado e enviado para o SEFAZ, não tem como cancelar a NFCe. A opção seria marcar o cupom como cancelado no banco e inutilizar a numeração.

     

    Uma outra opção seria limpar o documento atual (apagar tudo) mantendo a mesma numeração para uma nova venda, mas isso para efeitos de auditoria/controle de cancelamentos não é legal.

     

    Em resumo: o que acham da ideia de CANCELAR NFCe quando se tratar de "Documento anterior", e INUTILIZAR NUMERAÇÃO quando se tratar de "Documento atual"?

     

  11. Marcelo,

     

    Estou fazendo alguns testes com a Bematech MP4200-TH (não fiscal), e após a aprovação do SEFAZ a impressora costuma imprimir tudo em pouco mais de 1 segundo (é muito rápido).

     

    No caso da Bematech tem um aplicativo de configuração onde você informa se prefere qualidade ou velocidade. No meu caso optei por velocidade, mas a qualidade é tranquilo (consigo ler o QRCode, etc. sem dificuldade).

     

    Lembrando que não estou usando nenhum gerador de relatórios (QuickReport, Fortes, etc.), estou usando o ACBrESC/POS

  12. De qualquer forma, os fontes ainda não estão prontos para serem submetidos ao repositório oficial. Decidi postar o trecho no qual mexi para que o pessoal pudesse dar opiniões.

     

    Observe que no bloco de comandos da Daruma não tem nada, só o IF mesmo.

     

    Sem falar que "reaproveitar" a propriedade "Impressora" não é uma boa prática, ficaria mais interessante se fosse criado algum tipo de "record" onde o usuário selecionasse "Daruma, Bematech, Epson", deixando a Epson como padrão para quem já está usando em produção (atualmente o componente só suporta Epson/DASCOM).

     

    Devo receber a impressora Daruma DR700 hoje ou amanhã, até o fim de semana implemento o QRCode também para esse modelo e submeto os fontes completos.

  13. Márcio, bom dia.

     

    Você está usando o ACBrESCPOS ou algum gerador de relatório? (QuickReport, Fortes, etc.)

     

    Se está usando ACBrESCPOS, a impressão é muito rápida (o suporte a QRCode submeti ontem para o grupo).

     

    De qualquer forma no aplicativo de configuração que acompanha a impressora é possível definir se prefere qualidade ou velocidade.

     

    Para velocidade o ideal é sempre usar ESC/POS, esses geradores de relatórios acredito que usam fontes TrueType, e devem ser bem mais lentas que as fontes nativas da impressora.

     

    Amanhã devo receber uma Daruma, e em breve o componente ESC/POS também irá suportar a mesma.

     

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.