Ir para conteúdo
  • Cadastre-se

dev botao

Impressão SAT BEMATECH


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

Recommended Posts

Boa noite pessoal, muito bom os fóruns parabéns.

Estou com um probleminha, ao imprimir o Cupom Fiscal Pelo SAT e Impressora Bematech
Ele sai o logo da Bematech fazendo com que o Cupom fique maior e a fonte maior também. Isso configurado por EscPos

Se eu alterar para Usar Fortes ele não imprime o Logo da Bematech no Cabeçalho e a fonte fica menor, porém zoa a impressora, deixando as impressões hora saindo, hora não.
 

Eu preciso que ele saia Com fonte menor porém sem o logo da Bematech, alguém já viu este caso?

Em Anexo:
Primeira Impressão no Usar Fortes
Segunda no EscPos

 

Obrigado. 

WhatsApp-Image-20160614.jpg

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois ...

Daniel, boa tarde.

Estou tentando usar o PosPrinter.EspacoEntreLinhas na impressão do SAT com uma Daruma DR700, mas o espaço entre as linhas não estão mudando.

Fiz testes pelo SATTeste e também não mudou o espaço entre as linhas.

Minha rotina que configura a impressão está da seguinte forma:

     DM.PosPrinter.Desativar;
     DM.PosPrinter.Porta := 'COM'+ IntToStr(DMP.TBESTACAOPORTA_ECF.AsInteger+1);
     DM.PosPrinter.Device.Baud  := DMP.TBESTACAOVELOCIDADEPORTACOM.AsInteger;
     DM.PosPrinter.Modelo := TACBrPosPrinterModelo(DMP.TBESTACAOMARCAIMPRESSORATERMICASAT.AsInteger);  
     DM.PosPrinter.LinhasBuffer      := 20; //parametro
     DM.PosPrinter.EspacoEntreLinhas := 20; //parametro
     DM.PosPrinter.PaginaDeCodigo    := pc850;
     DM.PosPrinter.ControlePorta     := True;
     DM.PosPrinter.LinhasEntreCupons := DMP.TBESTACAOLINHAENTRECUPOMSAT.AsInteger;
     DM.PosPrinter.CortaPapel        := True;

     DM.ACBrSATExtratoESCPOS.ImprimeQRCode     := True;
     DM.ACBrSATExtratoESCPOS.ImprimeEmUmaLinha := True; 

     DM.PosPrinter.Ativar;

Usando da forma DM.PosPrinter.Imprimir(Linhas) o espaço é aplicado, mas no extrato do SAT não estou conseguindo.

Sabe me dizer o que eu posso estar fazendo de errado ?

Uso o ACBrECFVirtualSAT e o extrato é impresso quando chamo a função DM.ECF.FechaCupom();

Obrigado.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Bom dia

Fiz alguns testes, mas não muda o espaço entre as linhas.

As propriedades LinhasEntreCupons, ConfigBarras.LarguraLinha, ConfigBarras.Altura e ConfigQRCode.LarguraModulo estão sendo respeitadas de acordo com os valores informados, somente a propriedade EspacoEntreLinhas  que não muda na impressão.

Debugando a montagem das Tags, vi que a tag de espaço é adicionada (#$1B'3È) conforme o valor que informei, mas mesmo assim não muda nada na impressão.

#$1B'@'#$1B'3È</ce></logo>'#$D#$A'<n>Estabelecimento Fantasia 2</n>'#$D#$A'<c>Estabelecimento de Teste 2'#$D#$A'rua das flores 1005 frente centro-Sao Paulo-00000-000'#$D#$A'</ae><c>CNPJ:11.111.111/1111-11 IE:111111111111 IM:102030'#$D#$A'</linha_simples>'#$D#$A'</fn></ce><n>Extrato No. 000000'#$D#$A'CUPOM FISCAL ELETRâNICO - SAT</n>'#$D#$A' '#$D#$A' = T E S T E ='#$D#$A' '#$D#$A'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'#$D#$A'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'#$D#$A'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'#$D#$A'</linha_simples>'#$D#$A'</ae><c>CPF/CNPJ do Consumidor: CONSUMIDOR NÇO IDENTIFICADO'#$D#$A'RazÆo Social/Nome: CONSUMIDOR'#$D#$A'</ae><c></linha_simples>'#$D#$A'#  COD  DESC  QTD  UN  VL UN R$   (VLTR R$)*   VL ITEM R$'#$D#$A'</linha_simples>'#$D#$A'</ae><c>001 7 TESTE PRODUTO SAT 7             1 UN X 20,000 20,00'#$D#$A

 

Link para o comentário
Compartilhar em outros sites

Comecei a fazer alguns testes enviando comandos direto para a impressora da seguinte forma:

Nesse primeiro teste não importa o valor que eu passava no espaçamento, nada mudava na impressão.

         Write(impressora,#$1B'@');   //Reseta Impressora
         Write(impressora,#$1B+'3d');  //Aumenta espaço entre linhas para 100
         Write(impressora, '  LINHA 1'+sLineBreak);
         Write(impressora, '  LINHA 2'+sLineBreak);
         Write(impressora, '  LINHA 3'+sLineBreak);
         Write(impressora, '  LINHA 4'+sLineBreak);

Já nesse segundo teste, da LINHA 1 até a LINHA 3 o espaçamento foi aplicado, já a LINHA 4 ficou próximo a LINHA 3. Veja que o comando para resetar a impressora está depois da LINHA 4.

         Write(impressora,#$1B+'3d');
         Write(impressora, '  LINHA 1'+sLineBreak);
         Write(impressora, '  LINHA 2'+sLineBreak);
         Write(impressora, '  LINHA 3'+sLineBreak);
         Write(impressora, '  LINHA 4'+sLineBreak);
         Write(impressora,#$1B'@');

Em conversa com o suporte da Daruma, a informação que me foi passada é que um comando estava "atropelando" o outro, e com isso não está sendo aplicado o comando de espaçamento. O suporte me pediu para fazer o teste com um sleep(200) entre os comandos #$1B'@' e #$1B+'3d', com o sleep entre as linhas funcionou corretamente.

Expliquei que na impressão do extrato do SAT é enviado apenas uma string de impressão (#$1B'j'#0#$F'002 7 TESTE PRODUTO SAT....) com todos os comandos e que não tinha como colocar um sleep entre os comandos. Não conseguimos chegar a nenhuma solução.

Para testes, comentei a linha FBuffer.Add('</zera></ce></logo>'); da procedure GerarCabecalho da unit ACBrSATExtratoESCPOS, sem essa linha o espaçamento entre linhas passou a ser aplicado.

Entendo que a impressora deva ser resetada a cada inicio de impressão e essa linha não poderá sair do código, mas pensando em uma solução, será que o comando de resetar a impressora não poderia ser enviado separado da string que é montada no FBuffer ?

Talvez na  TACBrSATExtratoESCPOS.ImprimirCopias, antes do FOR já seria RESETADA a impressora, na sequência seria impresso o Buffer.

 

Obrigado.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Sleep é POG... compromete demais a performance a aplicação... Não vou aplicar isso nos fontes... seria um detrimento,em relação às outras impressoras, onde o problema não ocorre...

Em todo caso, não tenho como dar suporte a esse equipamento, pois não tenho o mesmo para testes...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.