Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erro com Métodos GerarBoletos e MontaBytesPDF do BoletoNetCore.Pdf #249

Open
joaojesusvictor opened this issue May 12, 2023 · 16 comments
Open

Comments

@joaojesusvictor
Copy link

Boa tarde a todos!

Estou tentando utilizar o BoletoNetCore e o BoletoNetCore.PDF em meu projeto .NetCoreApp2.2, porém na execução do Método GerarBoletos, através do Try/Catch, obtenho o seguinte erro: "Method not found: 'Void BoletoNetCore.BoletoBancario.set_MostrarEnderecoCedente(Boolean)'."

Já no método MontaBytesPDF, quando verifico o nomes dos parâmetros, o segundo deles tem o nome de: "urlImagemLogoCedente". Porém, nos arquivos do projeto, o nome deste mesmo parâmetro é: "urlImagemLogoBeneficiario".

As versões que tenho instaladas são: BoletoNetCore -Version 3.0.1.290 e BoletoNetCore.PDF -Version 3.0.0

Acredito que não consigo utilizar o projeto HtmlToPDFCore -Version 2.0.0 do @carloscds, pois uma das dependências dele é o .NetCoreApp3.1.

Alguém pode me ajudar a resolver?

@carloscds
Copy link
Collaborator

@joaojesusvictor Você nao deve estar passando o Cedente ou algum outro objeto. Da uma olhada no projeto de testes.

@joaojesusvictor
Copy link
Author

joaojesusvictor commented May 15, 2023

Então @carloscds, na verdade o projeto após instalado está esperando o Cedente, mas no arquivo que está no GitHub, ele espera o Beneficiário. Claro, ambos são a mesma coisa, porém a divergência na nomenclatura está impedindo a execução.

Os respectivos valores estão sendo enviados por mim, mas na execução os pontos citados na abertura da issue são retornados.

Acredito que o problema está no BoletoNetCore.Pdf, pois a nomenclatura com "Cedente" está nos métodos "MontaBytesPDF" da classe "BoletoBancarioPdf" e "GerarBoletos" da classe "BoletoNetCorePdfProxy".

@MatheusRech
Copy link

Mesmo problema aqui a classe BoletoNetCorePdfProxy para gerar os boletos e quando executo o método GerarBoletos é disparado a exceção System.MissingMethodException: 'Method not found: 'Void BoletoNetCore.BoletoBancario.set_MostrarEnderecoCedente(Boolean)'.'

Estou usando o mesmo código que está disponível no projeto de teste.

.NET version: .NET 5

@carloscds
Copy link
Collaborator

@MatheusRech consegue gerar o HTML apenas ?

@MatheusRech
Copy link

@carloscds Mesmo erro tentando utiliza como html

segue código utilizado:

using System.Text;
using BoletoNetCore;
using BoletoNetCore.Pdf;
using System;

namespace Rovitex.TestesRapidos
{
    class Program
    {
        static void Main(string[] args)
        {
            var boletoProxy = new BoletoNetCorePdfProxy();
            string mensagemErro = string.Empty;

            var retorno = boletoProxy.SetupCobranca("12.123.123/1234-46", "Cedente Teste Classe Proxy",
                                                  "Av Testador", "12", "sala 30", "Centro", "Cidade", "SP", "11223-445", "Observacoes do Cedente",
                                                   237, "1234", "X", "", "123456", "X",
                                                   "1213141", "0", "", "09", "",
                                                   (int)TipoCarteira.CarteiraCobrancaSimples, (int)TipoFormaCadastramento.ComRegistro, (int)TipoImpressaoBoleto.Empresa, (int)TipoDocumento.Escritural,
                                                   ref mensagemErro);

            // Cria um novo Boleto Bancario na coleção de Boletos Bancarios
            retorno = boletoProxy.NovoBoleto(ref mensagemErro);

            // Define os dados do Sacado
            retorno = boletoProxy.DefinirPagador("123.456.789-09", "Sacado Teste Classe Proxy", "Rua Testando", "456", "casa 123", "Vila Central", "Cidade", "SP", "56789012", "Observação do Sacado", ref mensagemErro);

            // Define os dados do Boleto
            retorno = boletoProxy.DefinirBoleto("DM", "DP123456AZ", "445566", DateTime.Now.AddDays(-3), DateTime.Now, DateTime.Now.AddDays(+30), (decimal)123456.78, "CHAVEPRIMARIABANCO=12345!", "N", ref mensagemErro);


            // Define multa (2%)
            retorno = boletoProxy.DefinirMulta(boletoProxy.boleto.DataVencimento, boletoProxy.boleto.ValorTitulo * (decimal)0.02, (decimal)0.02, ref mensagemErro);


            // Define juros (6% ao mês)
            retorno = boletoProxy.DefinirJuros(boletoProxy.boleto.DataVencimento, boletoProxy.boleto.ValorTitulo * (decimal)(0.06 / 30), (decimal)(0.06 / 30), ref mensagemErro);


            // Define desconto (5 dias antes do vencimento, R$ 10 de desconto)
            retorno = boletoProxy.DefinirDesconto(boletoProxy.boleto.DataVencimento.AddDays(-5), (decimal)10.00, ref mensagemErro);


            // Define instruções de cobrança para o arquivo remessa e para ser impresso no boleto
            retorno = boletoProxy.DefinirInstrucoes("Mensagem para ser impressa no boleto", "Mensagem para o arquivo remessa", "01", "02", "03", "04", "05", "06", true, ref mensagemErro);


            // Fecha o boleto atual, valida os dados, etc.
            retorno = boletoProxy.FecharBoleto(ref mensagemErro);

            // Repita os métodos acima para adicionar novos boletos, quantos necessários: NovoBoleto, DefinirSacado, DefinirBoleto, FecharBoleto, etc.
            // Após preencher a coleção com os boletos, siga com os exemplos abaixo...


            // Para gerar o arquivo remessa, após preencher a coleção de Boletos:
            //boletoProxy.GerarRemessa((int)TipoArquivo.CNAB400, @"C:\Users\matheus.rech\Desktop\boletoProxy_Cnab400.Rem", 1, ref mensagemErro);

            // Para gerar o arquivo PDF
            boletoProxy.GerarBoletos(@"C:\Users\matheus.rech\Desktop\boletoProxy_Boleto.pdf", ref mensagemErro);
        }
    }
}

@carloscds
Copy link
Collaborator

@MatheusRech Eu atualizei o pacote do BoletoNetCore.PDF, isto corrige o erro do Cedente.

@MatheusRech
Copy link

@carloscds O erro desapareceu, porem solicitou uma nova biblioteca que não solicitava antes Wkhtmltopdf.NetCore, adicionei ela porem agora recebo a mensagem de saída Value cannot be null. (Parameter 'path1')

@carloscds
Copy link
Collaborator

@MatheusRech Você precisa instalar tambem.

@MatheusRech
Copy link

@carloscds Instalei ela, mas recebe aquela saída que mencionei ao executar o método de gerar boleto com o mesmo código que tinha informado anteriormente.

@carloscds
Copy link
Collaborator

@MatheusRech Eu, particularmente, não acho que o BoletoNet deveria devolver isto, tenta pegar apenas o HTML e depois usa outra ferramenta para gerar o PDF.

@MatheusRech
Copy link

Então não sei qual a funcionalidade do gerar boleto em pdf se não gera

@carloscds
Copy link
Collaborator

@danilobreda Consegue dar um apoio aqui ? Você fez parte deste codigo da impressão.

@danilobreda
Copy link
Contributor

@carloscds desculpe a demora, vou dar uma olhada ainda hoje e ja retorno pra vcs

@danilobreda
Copy link
Contributor

danilobreda commented Jun 28, 2023

@MatheusRech vc está utilizando o BoletoNetCore.QuestPdf ou o BoletoNetCore.Pdf ?

@carloscds qual alterei na época para migrar do system.drawing para o skiasharp foi o .QuestPdf. Já o projeto .Pdf está a um tempo defasado, não recomendo a utilização do mesmo pois utiliza um executável terceiro chamado WkHtmlToPdf e o mesmo esta defasado com vários bugs principalmente em LINUX desde 2020. Além de sua configuração ser bem onerosa.
Acredito que deveríamos @carloscds até mesmo remover oBoletoNetCore.Pdf para não causar mais confusão.

O BoletoNetCore.QuestPdf é um projeto mais atualizado 100% funcional @MatheusRech utilize esse :)

@danilobreda
Copy link
Contributor

O dono do projeto Wkhtmltopdf.NetCore no qual o projeto BoletoNetCore.Pdf utilíza já até colocou como "deprecated" ou seja não dará mais suporte ao mesmo.

Esse erro Value cannot be null. (Parameter 'path1') é originário dele, e o mesmo tem vários issues com esse problema. Praticamente a solução é ir para o BoletoNetCore.QuestPdf

@rodrigopennella
Copy link

Apenas para esclarecer, o BoletoNetCore.QuestPdf não é incluso em nenhum pacote nuget? Se ele é o mais atual/correto, não deveria estar incluido?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants