Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLibBoleto erro gerar PDF asp.net core


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

Recommended Posts

  • Membros Pro
Postado

Bom dia pessoal,

Estou tentando utilizar o ACBrBoleto em meu projeto web Asp.Net Core, baseando-me nos exemplos baixados do repositório do ACBr. No exemplo da web API, é enviado um arquivo .INI com dados fictícios de um boleto. Testei dessa forma e funcionou. Então, vi que nos exemplos da aplicação para desktop, em C#, tem uma forma de utilizar os comandos ConfigurarDados e IncluirTitulos, passando os objetos ao invés de um arquivo ini, para então gerar o PDF. Quando uso dessa forma, na ordem que tem no exemplo em C#, recebo a seguinte mensagem de erro -10 = "Nome do cedente não informado".
* O que eu fiz foi instanciar o objeto ACBrBoleto com a opção inmemory:
 _boleto = new ACBrBoleto("[Memory]");
* Depois eu inicializei uma instância do objeto Conta, outro do objeto Banco e outro do objeto Cedente, com dados fictícios usados no exemplo C#, e usei o comando:
_boleto.ConfigurarDados(boletoInfo);
* Depois eu inicializei uma instância do objeto Titulo e usei o comando:
_boleto.IncluirTitulos(titulos.ToArray());
* Por fim, chamei o método:
_boleto.GerarPDF();
São apenas esses os comandos utilizados em meu projeto.
Todas as demais configurações estão funcionando, tais como, DirLogo, NomeArquivo, etc.
Ao debugar o código, não consigo me certificar que os comandos estão setando os dados, mas é como se os comandos não estivessem persistindo os valores em memória dentro da dll, ou algo assim.
Tem mais alguma coisa que eu preciso fazer? Algum comando que preciso chamar? Ou uma ordem específica?
Eu preferi essa abordagem devido ao fato de que com ela não preciso criar um string com as chaves e valor de um .ini, podendo assim utilizar os próprios objetos criados no exemplo C#.

ACBrLibBoleto Demo-20220923.log

  • Consultores
  • Solution
Postado

Chegou fazer testes com o programa exemplo ? aparentemente não tem problema com a ACBrLibBoleto, veja o log:
ACBrLibBoleto-20220923.log
boleto.pdf
Utilizando em memory também, e com os arquivos cedente e títulos, físico.

Agora se for usar a classe de alto nível que esta no programa exemplo, você precisa usar ACBrLibBoleto versão multithread.
ACBrLibBoleto-20220923.log
boleto.pdf

O Programa exemplo via API é bem simples não tem todos os métodos implementados, é só para ter uma ideia de como construir ela.. 

  • Membros Pro
Postado

Bom dia Antonio Carlos, muito obrigado pelo feedback.

Sobre seus questionamentos:

Sim, fiz testes no programa exemplo e está funcionando. Por meio dele eu percebi que existe uma ordem de uso (chamada) dos comandos de configuração e de execução. Eu estava configurando uma parte dos recursos na dll no construtor do meu serviço: log, mostrar impressão, mostrar progresso; depois disso eu chamada os comandos de execução ConfigurarDados e IncluirTitulos; depois voltava a configurar alterando: diretório da logo e nome do arquivo. Quando eu uso nessa ordem, os dados de banco, cedente, conta são perdidos... Então, fiz toda configuração e só depois que eu chamo os comandos de execução e então mando gerar o PDF. Assim funciona. 

Estou usando a versão multithread e com a dll atualizada pra versão pró.

Estou com outra dúvida: Reparando no log, percebi que sempre escreve essa linha: TLibBoletoConfig.PrecisaCriptografar(Principal,LogPath). O que eu preciso fazer no meu código para usar essa criptografia?

  • Curtir 1
  • Consultores
Postado
1 hora atrás, Desenvolvimento Objetiva disse:

Estou com outra dúvida: Reparando no log, percebi que sempre escreve essa linha: TLibBoletoConfig.PrecisaCriptografar(Principal,LogPath). O que eu preciso fazer no meu código para usar essa criptografia?

Você não precisa mudar nada no código.. a própria ACBrLib faz a criptografia.

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