BoletoNet / boleto2net

Nova versão do Boleto.Net
Apache License 2.0
159 stars 138 forks source link

Implementação do FastReport. #339

Open duduccosta opened 2 years ago

duduccosta commented 2 years ago

Boa tarde. Eu desenvolvi uma integração do Boleto2Net com o FastReport. Estou criando esse issue somente para compartilhar essa feature, caso alguém necessite.

Exemplo:

var boletos = new Boleto2Net.Boletos();

/* Aqui deve vir sua rotina para gerar o boleto, retornando um objeto do tipo Boleto2Net.Boleto. */
var boleto = new Boleto2Net.Boleto();

boletos.Add(boleto);
FastReport.Report report = new FastReport.Report();
report.Load("boleto.frx");
report.RegisterData(boletos, "Boleto");

/* Parâmetro para exibir recibo de entrega */
report.SetParameterValue("showReciboEntrega", true);

report.Prepare();
FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport
{
    ShowPrintDialog = false,
    ShowProgress = false,
    OpenAfterExport = true,
    JpegQuality = 100,
    GradientQuality = FastReport.Export.Pdf.PDFExport.GradientQualityEnum.High,
    RichTextQuality = 100
};
report.Export(pdf, "boleto.pdf");

O Layout do boleto possui um parâmetro chamado showReciboEntrega (bool), que determina se é para mostrar recibo de entrega do boleto ou não. Tive que fazer algumas alterações na biblioteca do Boleto2Net, como a criação de atributo de Logo do banco, para que o fastreport identifique automaticamente. Na classe Banco.cs, agora existe o atributo byte[] Logo. Dessa forma, a logomarca irá automaticamente para o PDF.

Todas as alterações estão em uma PullRequest, aguardando aprovação. Eu normalizei alguns atributos com a versão do Boleto2Net Core.

Qualquer dúvida, estou a disposição.

Arquivo do modelo FRX: boleto.zip

rafd75 commented 2 years ago

@duduccosta , boa tarde!

Dei uma olhada no PR e tem uma pancada de ajustes, além do indicado acima (integração com o FastReport)...

Vou dar uma olhada com calma e retorno (obs: não consigo fazer isso por agora).

duduccosta commented 2 years ago

Como vai Rodolpho?

As mudanças foram para viabilizar o FastReport, como logomarca na classe Banco.cs e suas derivações. Algumas também fiz para deixar similar ao Boleto2Net Core, mas são poucas variáveis, nada demais.

Muito obrigado!