public string getLinhaDigitavelImageBase64() { string linhaDigitavel = CodigoBarra.LinhaDigitavel.Replace(" ", " ").Trim(); var imagemLinha = Utils.DrawText(linhaDigitavel, new Font("Arial", 30, FontStyle.Bold), Color.Black, Color.White); string base64Linha = Convert.ToBase64String(Utils.ConvertImageToByte(imagemLinha)); //string fnLinha = string.Format("data:image/gif;base64,{0}", base64Linha); return(base64Linha); }
/// <summary> /// Função utilizada gerar o AlternateView necessário para enviar um boleto bancário por e-mail. /// </summary> /// <returns>AlternateView com os dados do boleto.</returns> public AlternateView HtmlBoletoParaEnvioEmail() { this.OnLoad(EventArgs.Empty); //MemoryStream ms = new MemoryStream(Utils.ConvertImageToByte(Html.corte)); //LinkedResource lrImagemCorte = new LinkedResource(ms, MediaTypeNames.Image.Gif); //lrImagemCorte.ContentId = "corte"; Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("BoletoNet.Imagens." + Utils.FormatCode(_ibanco.Codigo.ToString(), 3) + ".jpg"); LinkedResource lrImagemLogo = new LinkedResource(stream, MediaTypeNames.Image.Jpeg); lrImagemLogo.ContentId = "logo"; //ms = new MemoryStream(Utils.ConvertImageToByte(Html.ponto)); //LinkedResource lrImagemPonto = new LinkedResource(ms, MediaTypeNames.Image.Gif); //lrImagemPonto.ContentId = "ponto"; //ms = new MemoryStream(Utils.ConvertImageToByte(Html.barrainterna)); //LinkedResource lrImagemBarraInterna = new LinkedResource(ms, MediaTypeNames.Image.Gif); //lrImagemBarraInterna.ContentId = "barrainterna"; MemoryStream ms = new MemoryStream(Utils.ConvertImageToByte(Html.barra)); LinkedResource lrImagemBarra = new LinkedResource(ms, MediaTypeNames.Image.Gif); lrImagemBarra.ContentId = "barra"; C2of5i cb = new C2of5i(Boleto.CodigoBarra.Codigo, 1, 50, Boleto.CodigoBarra.Codigo.Length); ms = new MemoryStream(Utils.ConvertImageToByte(cb.ToBitmap())); LinkedResource lrImagemCodigoBarra = new LinkedResource(ms, MediaTypeNames.Image.Gif); lrImagemCodigoBarra.ContentId = "codigobarra"; //StringBuilder html = HtmlOffLine("cid:" + lrImagemCorte.ContentId, // "cid:" + lrImagemLogo.ContentId, // "cid:" + lrImagemBarra.ContentId, // "cid:" + lrImagemPonto.ContentId, // "cid:" + lrImagemBarraInterna.ContentId, // "cid:" + lrImagemCodigoBarra.ContentId); StringBuilder html = HtmlOffLine("cid:" + lrImagemLogo.ContentId, "cid:" + lrImagemBarra.ContentId, "cid:" + lrImagemCodigoBarra.ContentId); AlternateView av = AlternateView.CreateAlternateViewFromString(html.ToString(), Encoding.Default, "text/html"); //av.LinkedResources.Add(lrImagemCorte); //av.LinkedResources.Add(lrImagemBarraInterna); av.LinkedResources.Add(lrImagemLogo); av.LinkedResources.Add(lrImagemBarra); //av.LinkedResources.Add(lrImagemPonto); av.LinkedResources.Add(lrImagemCodigoBarra); return(av); }
/// <summary> /// Monta o Html do boleto bancário com as imagens embutidas no conteúdo, sem necessidade de links externos /// de acordo com o padrão http://en.wikipedia.org/wiki/Data_URI_scheme /// </summary> /// <param name="convertLinhaDigitavelToImage">Converte a Linha Digitável para imagem, com o objetivo de evitar malwares.</param> /// <returns>Html do boleto gerado</returns> /// <desenvolvedor>Iuri André Stona/Olavo Rocha Neto</desenvolvedor> /// <criacao>23/01/2014</criacao> /// <alteracao>17/02/2016</alteracao> public string MontaHtmlEmbedded(bool convertLinhaDigitavelToImage = false, bool usaPdf = false, string logoCedente = null) { var assembly = Assembly.GetExecutingAssembly(); if (logoCedente != null) { Boleto.Cedente.Logo = logoCedente; } var streamLogo = assembly.GetManifestResourceStream("BoletoNet.Imagens." + CodigoBanco.ToString("000") + ".jpg"); string base64Logo = Convert.ToBase64String(new BinaryReader(streamLogo).ReadBytes((int)streamLogo.Length)); string fnLogo = string.Format("data:image/gif;base64,{0}", base64Logo); var streamBarra = assembly.GetManifestResourceStream("BoletoNet.Imagens.barra.gif"); string base64Barra = Convert.ToBase64String(new BinaryReader(streamBarra).ReadBytes((int)streamBarra.Length)); string fnBarra = string.Format("data:image/gif;base64,{0}", base64Barra); var cb = new C2of5i(Boleto.CodigoBarra.Codigo, 1, 50, Boleto.CodigoBarra.Codigo.Length); string base64CodigoBarras = Convert.ToBase64String(cb.ToByte()); string fnCodigoBarras = string.Format("data:image/gif;base64,{0}", base64CodigoBarras); if (convertLinhaDigitavelToImage) { string linhaDigitavel = Boleto.CodigoBarra.LinhaDigitavel.Replace(" ", " ").Trim(); var imagemLinha = Utils.DrawText(linhaDigitavel, new Font("Arial", 30, FontStyle.Bold), Color.Black, Color.White); string base64Linha = Convert.ToBase64String(Utils.ConvertImageToByte(imagemLinha)); string fnLinha = string.Format("data:image/gif;base64,{0}", base64Linha); Boleto.CodigoBarra.LinhaDigitavel = @"<img style=""max-width:420px; margin-bottom: 2px"" src=" + fnLinha + " />"; } string s = HtmlOffLine(fnLogo, fnBarra, fnCodigoBarras, usaPdf).ToString(); if (convertLinhaDigitavelToImage) { s = s.Replace(".w500", ""); } return(s); }
/// <summary> /// Gera as tres imagens necessárias para o Boleto /// </summary> /// <param name="lrImagemLogo">O Logo do Banco</param> /// <param name="lrImagemBarra">A Barra Horizontal</param> /// <param name="lrImagemCodigoBarra">O Código de Barras</param> static void GeraGraficosParaEmailOffLine(this BoletoBancario b, out LinkedResource lrImagemLogo, out LinkedResource lrImagemBarra, out LinkedResource lrImagemCodigoBarra) { var randomSufix = new Random().Next().ToString(); // para podermos colocar no mesmo email varios boletos diferentes Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("BoletoNet.Imagens." + Utils.FormatCode(b.Boleto.Banco.Codigo.ToString(), 3) + ".jpg"); lrImagemLogo = new LinkedResource(stream, MediaTypeNames.Image.Jpeg); lrImagemLogo.ContentId = "logo" + randomSufix; MemoryStream ms = new MemoryStream(Utils.ConvertImageToByte(Html.barra)); lrImagemBarra = new LinkedResource(ms, MediaTypeNames.Image.Gif); lrImagemBarra.ContentId = "barra" + randomSufix;; C2of5i cb = new C2of5i(b.Boleto.CodigoBarra.Codigo, 1, 50, b.Boleto.CodigoBarra.Codigo.Length); ms = new MemoryStream(Utils.ConvertImageToByte(cb.ToBitmap())); lrImagemCodigoBarra = new LinkedResource(ms, MediaTypeNames.Image.Gif); lrImagemCodigoBarra.ContentId = "codigobarra" + randomSufix;; }