BoletoNet / BoletoNetCore

Versão do BoletoNet para .NET Core
MIT License
178 stars 116 forks source link

Código de barras não reconhece em Apps de pagamento #323

Open diegoperfeito opened 2 months ago

diegoperfeito commented 2 months ago

Olá, implementei a impressão do boleto em PDF gerando o arquivo para download em minha aplicação .netCore, porém ao pega um celular para pagar o boleto, esse não é reconhecido, lido, pelo aplicativo de banco para o pagamento. Se eu digitar a linha digitável do boleto, ess reconhece no banco.

Será algo com fonte, ou seleção de encode?

carloscds commented 2 months ago

@diegoperfeito Você precisa registrar o boleto no banco, através da API do banco ou de uma remessa. Precisa tambem validar se o código de barras está correto, pois cada banco tem uma configuração.

diegoperfeito commented 2 months ago

Certo, mas o que me refiro é que imprimo o boleto a partir do ERP onde o código de barras impresso imagem/encode é diferente do que está no boleto gerado pelo BoletoNetCore. Porém os numeros que representam no codigo de barras é o mesmo. CodigoDeBarrasERP CodigoDeBarrasBoletoNetCore CodigoDeBarrasBoletoNetCore CodigoDeBarrasERP

carloscds commented 2 months ago

@diegoperfeito Isto pode ser alguma configuracao que falta no BoletoNetCore de acordo com as orientacoes do banco.

diegoperfeito commented 2 months ago

Eu resolvi utilizando outra biblioteca de codigo de barras. Utilizei a biblioteca: https://github.com/barnhill/barcodelib Por Nuget

using BarcodeStandard; using SkiaSharp; using System; using System.IO;

namespace BoletoNetCore.QuestPdf { internal static class BarCodeHelper2 { public static byte[] GerarCodBarras2of5(this string codbar, int? heigthPng = null) { if (string.IsNullOrWhiteSpace(codbar)) throw new Exception("Código de barras não informado");

        var b = new Barcode();
        b.IncludeLabel = false;
        var img = b.Encode(BarcodeStandard.Type.Interleaved2Of5, codbar, SKColors.Black, SKColors.White, 800, 80);
        byte[] imageData = b.GetImageData(SaveTypes.Png);
        var ms = new MemoryStream(imageData /* b.EncodedImageBytes */);

        return ms.ToArray();

    }
}

}