Ir para conteúdo
  • Cadastre-se

wrmedeiros

Membros
  • Total de ítens

    225
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que wrmedeiros postou

  1. Mas mudando pra AnsiString ainda precisa de codificar como UTF-8? Se puder, anexa o código na mensagem.
  2. 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 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;
  3. 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?
  4. 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
  5. 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?
  6. Esse aqui meu amigo: http://partners.bematech.com.br/2013/03/edicao-139-mp-4200-th-com-qr-code/
  7. 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
  8. 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.
  9. André, Só consegui imprimir acentos usando o codepage 850, só temos que ver como mandar isso para a impressora via Delphi (fiz testes pelo prompt e usando Notepad++). Screenshots estão anexados. Testei também a impressão do DANFE, e ficou igual ao do colega (LOE no início).
  10. 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.
  11. Eles me mandaram um aplicativo de exemplo, estou fazendo testes com ele, ainda não testei usando o ACBrESCPOS. Vou testar ainda essa semana e mantenho vocês informados.
  12. No aplicativo de configuração da Bematech é possível informar qual charset a ser utilizado para o set de comandos BEMA/POS. Estou com uma impressora dessas em casa, vou tentar fazer alguns testes, só não prometo para hoje.
  13. Você teve que mudar a configuração da impressora de ESC/POS para BEMA/POS no utilitário da Bematech, certo? Se fez isso, é bem provável que a impressão do QRCode deixe de funcionar. O set de comandos BEMA/POS é totalmente diferente do ESC/POS.
  14. Thiago, O meu também fica dessa forma, acredito que precisa de alguns ajustes na quantidade de caracteres por linha. O QRCode imprimiu certinho?
  15. Pessoal, Testei as alterações que André fez e está tudo OK. Já recebi a Daruma, tive alguma dificuldade para imprimir o QRCode (consegui imprimir, mas está pequeno)... o pessoal da Daruma ontem me enviou um exemplo em Delphi (sem DLL), vou fazer testes e quando estiver implementado no ACBr envio o código aqui pelo fórum.
  16. 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.
  17. 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!
  18. 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"?
  19. Em breve o suporte para Daruma também será incluído no código. A impressora já está com o dono da empresa, mas ele esqueceu de me entregar ;( Testei o código de André (seleção de impressoras para impressão de QRCode) e funcionou perfeitamente.
  20. 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
  21. Não estou no trabalho agora, mas dei uma analisada rápida [1] e ficou excelente. Obrigado André. http://svn.code.sf.net/p/acbr/code/trunk/Fontes/ACBrNFe2/ACBrNFeDANFeESCPOS.pas Chegar em casa testo com a impressora e retorno pra vocês. Quando receber a Daruma faço a alteração e submeto para que seja integrado ao código.
  22. 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.
  23. Perfeito Juliomar. Quando chegar em casa faço cópia dos fontes e anexo nessa mesma thread. Obrigado pelo retorno.
  24. Desconsiderem esse último trecho onde informo que o componente sempre imprime 2 vias. Foi erro meu =) O componente automaticamente imprime quando a propriedade DANFE está configurada, e mesmo assim logo após o comando Enviar eu estava enviando o comando Imprimir, o que o ocasionava 2 impressões.
  25. 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.