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á 268 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

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
Link para o comentário
Compartilhar em outros sites

  • Consultores

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

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

Link para o comentário
Compartilhar em outros sites

  • Consultores

@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

Link para o comentário
Compartilhar em outros sites

  • Consultores

Mas se vc não tem impressora, pq nao usa o metodo ImprimirPDF (Método usado para gerar o PDF do DANFe de um NFe carregado.)
https://acbr.sourceforge.io/ACBrLib/NFE_ImprimirPDF.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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

@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

Link para o comentário
Compartilhar em outros sites

  • Consultores
3 horas atrás, memocashsolucoes disse:

Com o programa exemplo funciona perfeitamente.

No exemplo funciona perfeitamente, mesmo nao tendo impressora?

 

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

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

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

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 268 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.