Ir para conteúdo
  • Cadastre-se

dev botao

ImprimirImagemArquivo - Communication error 9997: Timeout during operation


Ver Solução Respondido por Próton Sistemas,
  • Este tópico foi criado há 1300 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Prezados,

Ao realizar a impressão de imagens com tamanho maior o método de impressão abaixo gera o erro mencionado.

  ACBrPosPrinter1.Ativar;
  ACBrPosPrinter1.Device.Baud := 115200;
  ACBrPosPrinter1.ImprimirImagemArquivo('danfe.bmp');
  ACBrPosPrinter1.Desativar;
Project yyyyy.exe raised exception class ESynaSerError with message 'Communication error 9997: Timeout during operation'.

Ajustei linhas do buffer (o que me parece desnecessário) e configurei a porta (antes estava com o valor default), porém sem sucesso. Se o arquivo a ser impresso for menor, ou seja, com poucos itens, a impressão ocorre normalmente. No caso estou gerando um BMP com um DANFCe para impressão via PosPrinter.

Agradeço a quem puder ajudar.

.Rafael

Tem um erro no código no qual ativei o componente antes de configurar a velocidade, mas mesmo corrigindo o problema persiste.

Rafael

  • Fundadores
Postado

Me parece ser um erro de Buffer OverFlow.. Tente isso:

ACBrPosPrinter.Device.SendBytesCount := 1024;
ACBrPosPrinter.Device.SendBytesInterval := 50;

Ou seja... ele envia um bloco de 1K e aguardar 50 milissegundos

 

tempFileForShare_20210302-165830.jpg

 

Mas o ideal, é você programar o Logo, na memória da Impressora, e depois apenas enviar o comando </logo>

 

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.

  • Membros Pro
  • Solution
Postado (editado)

Obrigado pelo apoio, Daniel!

Estou mandando em blocos de 100k para deixar a impressão mais rápida e funcionou perfeitamente. No caso, não estou imprimindo a LOGO, mas o DANFCe completo por essa opção. Não quero usar spooler, porém em impressoras como a MP4200 não consigo imprimir logo lateral com ESCPOS. Estou gerando o danfe pelo FastReport, exportando para BMP e realizando a impressão dessa forma. Com isso consigo fazer as demais impressões da aplicação, acionamento de guilhotina, status do dispositivo usando a classe TACBrPosPrinter.

Saudações,

Rafael 

Editado por ProtonSistemas
  • Curtir 1
  • Fundadores
Postado

Caramba, que boa sacada.. ainda não havia pensado nisso.. uma boa maneira de contornar as limitações de algumas impressoras, e ainda sim, continuar usando os recursos do EscPos...

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.

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