Saltar al contenido
Creación de códigos de barras con o sin texto legible por humanos con el código de barras xambar

Creación de códigos de barras con o sin texto legible por humanos con el código de barras xambar

Líneas paralelas con diferentes anchuras y espaciados: están prácticamente en todas partes. Los códigos de barras tienen una larga historia de convertirse en un estándar para asignar datos a una representación óptica y permitieron identificar una amplia gama de productos en tiendas, contenedores de envío e innumerables otros artículos, lo que a su vez agilizó múltiples procesos de la industria.

6min read

Líneas paralelas con diferentes anchuras y espaciados: están prácticamente en todas partes. Los códigos de barras tienen una larga historia de convertirse en un estándar para asignar datos a una representación óptica y permitieron identificar una amplia gama de productos en tiendas, contenedores de envío e innumerables otros artículos, lo que a su vez agilizó múltiples procesos de la industria.

Dado que los códigos de barras son tan populares y útiles, no es de extrañar que necesite representar datos de esa manera en una aplicación y Infragistics paquetes XAML (NetAdvantage para WPF, Silverlight y Windows Phone) están equipados para ayudarlo precisamente con eso. XamBarcode es solo la clase base y el nombre común de una familia de controles capaces de mostrar datos como un gráfico con líneas y formas basadas en varios estándares. Hay bastantes simbologías, por lo que si está interesado, puede leer extensamente sobre ellas en nuestra documentación (esa es la página de ayuda Silverlight, pero los otros productos también contienen la misma información). Cada uno de ellos se esfuerza por ahorrar la mayor cantidad de trabajo posible para el desarrollador: no es necesario conocer las reglas para crearlos y, en la mayoría de los casos, puede proporcionar los datos que desea codificar y disfrutar. Además, cada control controla una sola simbología, lo que también hace que agregar códigos de barras en XAML sea mucho más sencillo (y realmente es simple, lo verás a continuación).

Ahora hay algunos códigos especiales (como el código QR) que tienen opciones adicionales debido a su estructura no lineal, pero la mayoría de los tipos lineales como el código 128 o los códigos Ean / UPC tienen sus datos que se muestran justo debajo de ellos. Con la versión 12.1 hay una pequeña actualización que te permite ocultarlo, junto con una biblioteca de imágenes CTP para facilitarte la vida con el "código de barras".

Texto legible por humanos

Esa parte se llama muy apropiadamente el texto legible por humanos, ya que el código de barras es legible por máquina y algunos estándares nos brindan una imagen amigable que aún tiene significado sin un lector de códigos de barras.

La parte legible por humanos de la imagen del código de barras.

Si bien todo esto es muy bueno, puede haber casos en los que solo necesite el código de barras, casos en los que no sea necesario o razonable tener ese texto. Recientemente se ha añadido una nueva propiedad a los controles que lo tienen para poder controlar si los datos deben ser visibles o desperdiciar la tinta. Ahora está disponible una propiedad 'ShowText' simple para los siguientes códigos:

  • Código 39
  • Code 128
  • Ean/UPC
  • Intercalado 2 de 5
  • Barra de datos GS1
  • correo Real

Es un cambio pequeño, pero puede resultar muy impactante, ¡así que veamos cómo usarlo!

Adding Barcodes

Comience agregando las referencias requeridas: (la nomenclatura es idéntica en todas las plataformas) Infragistics <plataforma>.v12.1.dll, Infragistics <plataforma>. DataVisualization.v12.1.dll, Infragistics <plataforma>. Controls.Barcodes.v12.1.dll. La configuración de los controles de código de barras Xam, el suministro de datos y el control del texto legible por humanos se pueden realizar fácilmente únicamente en XAML a través del enlace. Por ejemplo, hagamos que nuestro usuario ingrese los datos en un campo y le demos algún tipo de interruptor (botón de alternancia, botones de opción, casilla de verificación, etc.) para vincular el "ShowText":

<TextBox x:Name="userInput"/>
<ToggleButton x:Name="textToggle" IsChecked="True">show/hide text</ToggleButton>

Y luego agregue algunos controles <código Xam>Código de barras a su página:

xmlns:ig="http://schemas.infragistics.com/xaml"

<ig:XamCode39Barcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" />
<ig:XamCode128Barcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Column="1"/>
<ig:XamEanUpcBarcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Column="2"/>
<ig:XamInterleaved2Of5Barcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Row="1" />
<ig:XamGs1DataBarBarcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Row="1" Grid.Column="1"/>
<ig:XamRoyalMailBarcode Data="{Binding Text, ElementName=userInput}" ShowText="{Binding IsChecked, ElementName=textToggle}" Grid.Row="1" Grid.Column="2"/>

Después de algunos arreglos y estilos, la demo puede verse así:

Aplicación de demostración con múltiples controles de código de barras, todos con su propiedad 'ShowText' unida a un botón de alternancia.

Hay algunos botones adicionales que he agregado y los comentaré a continuación, pero por ahora estamos interesados en el botón de alternancia 'mostrar'ocultar' que, cuando no está marcado, hará que todos los códigos de barras pierdan su texto:

Aplicación de demostración con múltiples controles de códigos de barras, todos con su texto oculto.

Sacarle el máximo partido

Además de permitir que el usuario controle lo que sucede con el texto, también puede establecer eso en el código y también hay algunas aplicaciones interesantes para eso. Lo que puede hacer es mostrar códigos de barras al usuario con sus datos legibles y luego ocultarlos justo antes de imprimir o al revés. Así es como se vería en una aplicación de WPF (tenga en cuenta que tenemos un montón de códigos de barras, por lo que simplemente cambiamos el botón de alternancia para que afecte a todos ellos, pero se pueden usar los controles de código de barras en su lugar):

private void PrintButton_Click(object sender, RoutedEventArgs e)
 {
     //print document
     PrintDialog printDialog = new PrintDialog();
     if (printDialog.ShowDialog() == true)
     {
         //turn text off if it's visible
         if (this.textToggle.IsChecked == true)
         {
             this.textToggle.IsChecked = false;
             _changed = true;
         }
         //print
         printGrid.Measure(new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight));
         printGrid.Arrange(new Rect(10,10,printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight));
         printDialog.PrintVisual(printGrid, "Barcodes Docs");
 
         // set text back on if it was removed for printing
         if (_changed)
         {
             this.textToggle.IsChecked = true;
             _changed = false;
         }
     }
 }

Además, la función CTP que mencioné que está destinada a ayudar a Silverlight aplicaciones a codificar imágenes, ¡también puedes usarla! Permite que el usuario guarde una imagen de los códigos de barras en la aplicación con o sin el texto y también puedes controlar la calidad de la imagen:

using (Stream stream = saveDialog.OpenFile())
 {
     Infragistics.Imaging.JpegImageEncoder jpgEncoder = new Infragistics.Imaging.JpegImageEncoder();
     List<EncodingProperty> qualityList = new List<EncodingProperty>();
     qualityList.Add(new JpegQualityProperty() { Quality = 100 });
     jpgEncoder.Encode(bitmap, qualityList, stream);
 }

Conclusión

No hay duda de que los códigos de barras son útiles: pueden empaquetarse con datos, pueden agilizar y organizar procesos y están en todas partes. Con los controles de código de barras XAML, puede integrar una funcionalidad tan popular en su aplicación con gran facilidad. Ahora tiene aún más control sobre las imágenes de los códigos de barras lineales con texto legible por humanos: puede mostrarlo u ocultarlo para presentarlo correctamente al usuario o para imprimirlo o guardarlo en una imagen.

¡Puede descargar las demostraciones que se muestran arriba paraSilverlightyWPF! ¡También puedes ver todos los diferentes tipos de códigos en acción visitando nuestroSilverlight Muestras en línea! Y puede descargar los de WPF desde el enlace anterior y encontrar las muestras Windows Phone en el Mercado.

¡Síguenos en Twitter@ Infragisticsy únete a la competencia enFacebook y no olvides votar por nosotros en los premios Reader's Choice Awards de Code Project!

Solicitar una demostración