/// <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> void GeraGraficosParaEmailOffLine(out LinkedResource lrImagemLogo, out LinkedResource lrImagemBarra, out LinkedResource lrImagemCodigoBarra) { OnLoad(EventArgs.Empty); var randomSufix = new Random().Next().ToString(); // para podermos colocar no mesmo email varios boletos diferentes var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Boleto2Net.Imagens." + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg"); lrImagemLogo = new LinkedResource(stream, MediaTypeNames.Image.Jpeg) { ContentId = "logo" + randomSufix }; var ms = new MemoryStream(Utils.ConvertImageToByte(Html.barra)); lrImagemBarra = new LinkedResource(ms, MediaTypeNames.Image.Gif) { ContentId = "barra" + randomSufix }; var cb = new BarCode2of5i(Boleto.CodigoBarra.CodigoDeBarras, _withBarras, _heightBarras, Boleto.CodigoBarra.CodigoDeBarras.Length); ms = new MemoryStream(Utils.ConvertImageToByte(cb.ToBitmap())); lrImagemCodigoBarra = new LinkedResource(ms, MediaTypeNames.Image.Gif) { ContentId = "codigobarra" + randomSufix }; }
/// <summary> /// Monta o Html do boleto bancário /// </summary> /// <param name="fileName">Caminho do arquivo</param> /// <param name="fileName">Caminho do logo do cedente</param> /// <returns>Html do boleto gerado</returns> public string MontaHtml(string fileName, string logoCedente) { if (fileName == null) { fileName = Path.GetTempPath(); } if (logoCedente != null) { _vLocalLogoCedente = logoCedente; } OnLoad(EventArgs.Empty); var fnLogo = fileName + @"BoletoNet" + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg"; if (!File.Exists(fnLogo)) { var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Boleto2Net.Imagens." + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg"); using (Stream file = File.Create(fnLogo)) { CopiarStream(stream, file); } } var fnBarra = fileName + @"BoletoNetBarra.gif"; if (!File.Exists(fnBarra)) { var imgConverter = new ImageConverter(); var imgBuffer = (byte[])imgConverter.ConvertTo(Html.barra, typeof(byte[])); var ms = new MemoryStream(imgBuffer); using (Stream stream = File.Create(fnBarra)) { CopiarStream(ms, stream); ms.Flush(); ms.Dispose(); } } var fnCodigoBarras = Path.GetTempFileName(); var cb = new BarCode2of5i(Boleto.CodigoBarra.CodigoDeBarras, _withBarras, _heightBarras, Boleto.CodigoBarra.CodigoDeBarras.Length); cb.ToBitmap().Save(fnCodigoBarras); //return HtmlOffLine(fnCorte, fnLogo, fnBarra, fnPonto, fnBarraInterna, fnCodigoBarras).ToString(); return(HtmlOffLine(null, fnLogo, fnBarra, fnCodigoBarras).ToString()); }
/// <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> /// <param name="urlImagemLogoCedente">Url/Imagem Base64 da Logo do Cedente</param> /// <returns>Html do boleto gerado</returns> /// <desenvolvedor>Iuri André Stona</desenvolvedor> /// <criacao>23/01/2014</criacao> /// <alteracao>08/08/2014</alteracao> public string MontaHtmlEmbedded(bool convertLinhaDigitavelToImage = false, bool usaCsspdf = false, string urlImagemLogoCedente = null) { OnLoad(EventArgs.Empty); var assembly = Assembly.GetExecutingAssembly(); var streamLogo = assembly.GetManifestResourceStream("Boleto2Net.Imagens." + Boleto.Banco.Codigo.ToString("000") + ".jpg"); var base64Logo = Convert.ToBase64String(new BinaryReader(streamLogo).ReadBytes((int)streamLogo.Length)); var fnLogo = string.Format("data:image/gif;base64,{0}", base64Logo); var streamBarra = assembly.GetManifestResourceStream("Boleto2Net.Imagens.barra.gif"); var base64Barra = Convert.ToBase64String(new BinaryReader(streamBarra).ReadBytes((int)streamBarra.Length)); var fnBarra = string.Format("data:image/gif;base64,{0}", base64Barra); var cb = new BarCode2of5i(Boleto.CodigoBarra.CodigoDeBarras, _withBarras, _heightBarras, Boleto.CodigoBarra.CodigoDeBarras.Length); var base64CodigoBarras = Convert.ToBase64String(cb.ToByte()); var fnCodigoBarras = string.Format("data:image/gif;base64,{0}", base64CodigoBarras); if (convertLinhaDigitavelToImage) { var linhaDigitavel = Boleto.CodigoBarra.LinhaDigitavel.Replace(" ", " ").Trim(); var imagemLinha = Utils.DrawText(linhaDigitavel, new Font("Arial", 30, FontStyle.Bold), Color.Black, Color.White); var base64Linha = Convert.ToBase64String(Utils.ConvertImageToByte(imagemLinha)); var fnLinha = string.Format("data:image/gif;base64,{0}", base64Linha); Boleto.CodigoBarra.LinhaDigitavel = @"<img style=""max-width:420px; margin-bottom: 2px"" src=" + fnLinha + " />"; } if (!string.IsNullOrEmpty(urlImagemLogoCedente)) { _vLocalLogoCedente = urlImagemLogoCedente; } var s = HtmlOffLine(null, fnLogo, fnBarra, fnCodigoBarras, usaCsspdf).ToString(); if (convertLinhaDigitavelToImage) { s = s.Replace(".w500", ""); } return(s); }
public void ProcessRequest(HttpContext context) { string code = context.Request.QueryString[0]; context.Response.Write(code); string contentType = "image/jpeg"; string filename = "barcode2of5.jpg"; context.Response.Clear(); context.Response.ContentType = contentType; context.Response.AddHeader("content-disposition", "outline;filename=" + filename); System.Drawing.Bitmap img = new BarCode2of5i(code, _withBarras, _heightBarras, code.Length).ToBitmap(); //img = img.GetThumbnailImage(460, 61, null, new IntPtr()) as System.Drawing.Bitmap; img.Save(context.Response.OutputStream, ImageFormat.Jpeg); img.Dispose(); //context.Response.BinaryWrite(new C2of5i(code, 1, 50, code.Length).ToByte()); context.Response.Flush(); }
public Image GeraImagemCodigoBarras(Boleto boleto) { var cb = new BarCode2of5i(boleto.CodigoBarra.CodigoDeBarras, _withBarras, _heightBarras, boleto.CodigoBarra.CodigoDeBarras.Length); return(cb.ToBitmap()); }
/// <summary> /// Monta o Html do boleto bancário para View ASP.Net MVC /// <code> /// <para>Exemplo:</para> /// <para>public ActionResult VisualizarBoleto(string Id)</para> /// <para>{</para> /// <para> BoletoBancario bb = new BoletoBancario();</para> /// <para> //...</para> /// <para> ViewBag.Boleto = bb.MontaHtml("/Content/Boletos/", "teste1");</para> /// <para> return View();</para> /// <para>}</para> /// <para>//Na view</para> /// <para>@{Layout = null;}@Html.Raw(ViewBag.Boleto)</para> /// </code> /// </summary> /// <param name="Url">Pasta dos boletos. Exemplo MontaHtml("/Content/Boletos/", "000100")</param> /// <param name="fileName">Nome do arquivo para o boleto</param> /// <returns>Html do boleto gerado</returns> /// <desenvolvedor>Sandro Ribeiro</desenvolvedor> /// <criacao>16/11/2012</criacao> public string MontaHtml(string url, string fileName, bool useMapPathSecure = true) { //Variável para o caminho físico do servidor var pathServer = ""; //Verifica se o usuário informou uma url válida if (url == null) { //Obriga o usuário a especificar uma url válida throw new ArgumentException("Você precisa informar uma pasta padrão."); } else { if (useMapPathSecure) { //Verifica se o usuário usou barras no início e no final da url if (url.Substring(url.Length - 1, 1) != "/") { url = url + "/"; } if (url.Substring(0, 1) != "/") { url = url + "/"; } //Mapeia o caminho físico dos arquivos pathServer = MapPathSecure(string.Format("~{0}", url)); } //Verifica se o caminho existe if (!Directory.Exists(pathServer)) { throw new ArgumentException("A o caminho físico '{0}' não existe.", pathServer); } } //Verifica o nome do arquivo if (fileName == null) { fileName = DateTime.Now.Ticks.ToString(); } else { if (fileName == "") { fileName = DateTime.Now.Ticks.ToString(); } } //Mantive o padrão OnLoad(EventArgs.Empty); //Prepara o arquivo da logo para ser salvo var fnLogo = pathServer + @"BoletoNet" + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg"; //Prepara o arquivo da logo para ser usado no html var fnLogoUrl = url + @"BoletoNet" + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg"; //Salvo a imagem apenas 1 vez com o código do banco if (!File.Exists(fnLogo)) { var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Boleto2Net.Imagens." + Utils.FormatCode(Boleto.Banco.Codigo.ToString(), 3) + ".jpg"); using (Stream file = File.Create(fnLogo)) { CopiarStream(stream, file); } } //Prepara o arquivo da barra para ser salvo var fnBarra = pathServer + @"BoletoNetBarra.gif"; //Prepara o arquivo da barra para ser usado no html var fnBarraUrl = url + @"BoletoNetBarra.gif"; //Salvo a imagem apenas 1 vez if (!File.Exists(fnBarra)) { var imgConverter = new ImageConverter(); var imgBuffer = (byte[])imgConverter.ConvertTo(Html.barra, typeof(byte[])); var ms = new MemoryStream(imgBuffer); using (Stream stream = File.Create(fnBarra)) { CopiarStream(ms, stream); ms.Flush(); ms.Dispose(); } } //Prepara o arquivo do código de barras para ser salvo var fnCodigoBarras = string.Format("{0}{1}_codigoBarras.jpg", pathServer, fileName); //Prepara o arquivo do código de barras para ser usado no html var fnCodigoBarrasUrl = string.Format("{0}{1}_codigoBarras.jpg", url, fileName); var cb = new BarCode2of5i(Boleto.CodigoBarra.CodigoDeBarras, _withBarras, _heightBarras, Boleto.CodigoBarra.CodigoDeBarras.Length); //Salva o arquivo conforme o fileName cb.ToBitmap().Save(fnCodigoBarras); //Retorna o Html para ser usado na view return(HtmlOffLine(null, fnLogoUrl, fnBarraUrl, fnCodigoBarrasUrl).ToString()); }
public System.Drawing.Image GeraImagemCodigoBarras(Boleto boleto) { BarCode2of5i cb = new BarCode2of5i(boleto.CodigoBarra.CodigoDeBarras, 1, 50, boleto.CodigoBarra.CodigoDeBarras.Length); return(cb.ToBitmap()); }
public Image GeraImagemCodigoBarras(Boleto boleto) { var cb = new BarCode2of5i(boleto.CodigoBarra.CodigoDeBarras, 1, 50, boleto.CodigoBarra.CodigoDeBarras.Length); return cb.ToBitmap(); }