Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLib - ACBrNFe.Imprimir causando deadlock


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

Recommended Posts

  • Membros Pro
Postado (editado)

Boa tarde pessoal
Estou com um problema ao chamar o método "Imprimir" da classe ACBrNFe. Parece que se a impressora não estiver disponível é causado um deadlock uns 15 segundos após a chamada da função, sem gerar nenhum erro. Existe algo que posso fazer para resolver isso?
 

Código:

var nfe = new ACBrNFe();
nfe.Config.DFe.NumeroSerie = _certificadoNumeroSerieProvider.NumeroSerie;
nfe.Config.DFe.SSLCryptLib = ACBrLib.Core.DFe.SSLCryptLib.cryWinCrypt;
nfe.Config.DFe.SSLHttpLib = ACBrLib.Core.DFe.SSLHttpLib.httpWinHttp;
nfe.Config.DFe.SSLXmlSignLib = ACBrLib.Core.DFe.SSLXmlSignLib.xsLibXml2;
nfe.Config.VersaoDF = ACBrLib.Core.NFe.VersaoNFe.ve400;
nfe.Config.VersaoQRCode = ACBrLib.Core.NFe.VersaoQrCode.veqr200;
nfe.Config.IdCSC = _sistemaStore.ClienteParametros.TokenNfceId;
nfe.Config.CSC = _sistemaStore.ClienteParametros.TokenNfce;

nfe.CarregarXML(request.Venda.Xml);
nfe.Imprimir(
  cImpressora: "EPSON",
  cProtocolo: request.Venda.Protocolo,
  bMostrarPreview: false);

 

Editado por memocashsolucoes
corrigir exemplo
  • Consultores
Postado

Boa tarde !
Você pode postar postar o log gerado aqui?
Sua lib está atualizada ?

Se testar em escpos ela imprime ?
Com o programa exemplo o comportamento é o mesmo?

  • Curtir 2
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado

Bom dia @Daniel InfoCotidiano, desculpe a demora pra responder

Com o programa exemplo funciona perfeitamente. Inicialmente eu achei que tinha a ver com estar chamando o método dentro de uma Task, mas aparentemente não porque eu testei com ST e MT e o travamento continua. Também testei com um método void. Com o preview habilitado ou sem passar nenhuma impressora é o mesmo comportamento. Testei com a lib atualizada e também não resolveu. 

Quero ressaltar que estou fazendo os testes sem a impressora, porque imaginei que fazendo isso geraria um erro que eu pudesse tratar, mas a aplicação simplesmente congela.

ACBrLibNFE-20230809.log

  • Consultores
Postado

@memocashsolucoes
NFe_Imprimir(EPSON,1,135230000961377,0,,,)
NFE_Imprimir([cImpressora], [nNumCopias], [cProtocolo], [bMostrarPreview], [cMarcaDagua], [bViaConsumidor], [bSimplificado]);

Se você testar uma impressão não informando o numero do protocolo, exemplo:

NFe_Imprimir('EPSON',1, ,,,,);
https://acbr.sourceforge.io/ACBrLib/NFE_Imprimir.html

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado

@Daniel InfoCotidiano Então, eu estou sem a impressora no momento pra testar mesmo, estou fazendo um programa PDV e o cliente precisa configurar a impressora dele, então se ele fizer alguma configuração errada ou se ele deixar a impressora desligada vai dar esse travamento. Eu queria tratar esse erro, faço algo parecido com a ACBrLib.PosPrinter pra imprimir, só que lá não tem esse problema de congelar e se tiver algo de errado ele dispara erros normalmente

  • Membros Pro
Postado
3 minutos atrás, Daniel InfoCotidiano disse:

No exemplo funciona perfeitamente, mesmo nao tendo impressora?

 

Sim, no exemplo não trava. Tentei usar as mesmas DLLs mas não foi também

  • Consultores
  • Solution
Postado

talvez esteja fazendo, mas se vc comparar como foi feito a chamada não consegue reproduzir na sua aplicação da mesma forma que foi construida no exemplo?

  • Curtir 2
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Este tópico foi criado há 560 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...