Codigos De Barras

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Codigos De Barras as PDF for free.

More details

  • Words: 598
  • Pages: 3
ASP.NET CODEBARS En el foro de MSDN han consultado como poder generar códigos de barra en una aplicación ASP.NET, yo hace bastante tiempo hice un ejemplo para una aplicación windows utilizando unas fuentes True Type para este menester y ahora haré lo mismo pero para una aplicación web. El artículo original para Windows lo podéis encontrar en la web del guille en http://www.elguille.info/colabora/NET2006/Marckys_BarCode.htm . Lo primero que voy a hacer es un proyecto web con una simple página donde podré introducir los datos para generar el código de barras y una combo para seleccionar las fuentes que me darán los diferentes formatos de código de barras.

La idea de esta utilidad es mostrar los datos en un formato de código de barras y la opción que he considerado más oportuna es generar una imagen con este texto y mostrarlo en la web como un simple control de servidor image de toda la vida. Para poder realizar esto si tenernos que complicar muchísimo la vida. Lo mejor es crear un http handler que nos genere esta imagen y la muestre en el control. Que es un Http Handler ?? Pues un manejador de las solicitudes http que implementa la interface IHttpHandler y nos puede servir tanto para interceptar las llamadas de un fichero con una extensión en particular como para llamarlo directamente, como va a ser nuestro caso. Nuestro Manejador: Tan sencillo como una clase pública que implementa la interfaz IHttpHandler. public class MarckysCodeBar : IHttpHandler Implementa el método ProcessRequest y la propiedad IsReusable. El Método ProcessRequest recuperamos los parámetros que necesitamos para generar la imagen y enviamos la respuesta a la petición http. public void ProcessRequest (HttpContext context) { string cd = context.Request.QueryString.Get("code"); string fm = context.Request.QueryString.Get("format"); int width = (!string.IsNullOrEmpty(context.Request.QueryString.Get("width"))) ? int.Parse(context.Request.QueryString.Get("width")) : 200; int height = (!string.IsNullOrEmpty(context.Request.QueryString.Get("height"))) ? int.Parse(context.Request.QueryString.Get("height")) : 60; int size = (!string.IsNullOrEmpty(context.Request.QueryString.Get("size"))) ? int.Parse(context.Request.QueryString.Get("size")) : 60; if (!string.IsNullOrEmpty(cd)) {

System.IO.MemoryStream memStream = new System.IO.MemoryStream(); Bitmap bitmap = new Bitmap(width, height); Graphics grafic = Graphics.FromImage(bitmap); grafic.FillRectangle(new SolidBrush(Color.White), 0, 0, (float)width, (float)height); Font fuente = CargarFuente(fm, size); Point point = new Point(); SolidBrush brush = new SolidBrush(Color.Black); grafic.DrawString(FormatBarCode(cd), fuente, brush, point); context.Response.ContentType = "image/jpeg"; bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); } else context.Response.Write(""); }

Este manejador simplemente recupera la fuente que utilizaremos de la lista disponible crea un bitmap y le inserta el texto con la fuente del código de barras para mostrar el resultado como una imagen jpeg. Los otros dos métodos a destacar es el formateo de los datos para que se puedan leer desde un lector de códigos de barras añadiendo los caracteres de escape correspondientes. private string FormatBarCode(string code) { string barcode = string.Empty; barcode = string.Format("*{0}*", code); return barcode; } Y cuando generamos la nueva fuente para cargar en el bitmap. private Font CargarFuente(string fuente, int size) { string f = "BARCOD39.TTF"; switch (fuente) { case "E39": f = "BARCOD39.TTF"; break; case "E13": f = "EAN-13.TTF"; break; case "E9": f = "FRE3OF9X.TTF"; break; } PrivateFontCollection pfc = new PrivateFontCollection(); pfc.AddFontFile(System.Configuration.ConfigurationManager.AppS ettings.Get("PATH_FONTS") + @"\" + f); FontFamily fontFamily = pfc.Families[0]; Font _Font = new Font(fontFamily, (float)size); return _Font; }

Finalmente para que todo esto funcione simplemente tenemos que añadir una imagen en nuestro formulario web y al lanzar el evento del botón definir la Url de la imagen desde

nuestro Handler con los parámetros que necesitamos para generar el código de barras correctamente. protected void Button1_Click(object sender, EventArgs e) { Image2.ImageUrl = string.Format(@"MarckysCodeBar.ashx?code={0}&format={1}" &width=400&height=60&size=50", TextBox1.Text, " ddlFuents.SelectedItem.Value); Image2.Visible = true; }

Y como una imagen vale más que mil palabras este es el resultado final.

Podeis bajar el proyecto de Prueba desde Proyecto-CodeBar Cross-Posting http://lonetcamp.com

Related Documents

Codigos De Barras
December 2019 23
Codigos De Barras
November 2019 12
Codigos De Barras
April 2020 8
Codigos
June 2020 19
Barras
April 2020 35