[Windows Phone] Generar códigos de barras

 BarcodeIntroducción

Un código de barras es una forma de representar graficamente un conjunto de información de modo que pueda ser facilmente leida por una máquina.

En nuestro día a día estamos acostumbrados a ver códigos de barras por todos lados, en el último libro que leiste, en ese CD de música que te asombro e incluso en el cartón de leche de tu desayuno. En distintos formatos y tipos pero sin duda, son un factor importante. El formato más comun es un conjunto de barras verticales paralelas entre si utilizadas para identificar un producto en concreto. A este conjunto de códigos de barras con líneas verticales se les conoce como 1D (1 Dimensión). Tambien tenemos otro conjunto de códigos basados en patrones geométricos diseñados para almacenar más información. Son los conocidos como 2D (2 Dimensiones) donde el representante más conocido es el código QR.

En este artículo vamos a aprender como generar códigos QR desde nuestra aplicación Windows Phone. ¿Te apuntas?

Windows Phone y los códigos de barras

Desde Windows Phone 7 se pueden leer un conjunto de los códigos de barras más importantes como EAN-13 o los códigos QR directamente con la aplicación de búsqueda Bing Vision sin la necesidad de instalar ningun App para ello.

ZXing.Net

Para generar códigos de barras desde nuestra aplicación Windows Phone utilizaremos la librería ZXing.Net. Esta librería es un port de la librería open spurce ZXing.

Generando códigos de barras

Como solemos hacer, vamos a crear una Aplicación de ejemplo para aprender como generar códigos de barras utilizando la librería ZXing.Net desde Windows Phone:

Creamos un proyecto desde la plantilla más básica para concentrar nuestra atención en la librería ZXing.NET que nos ocupa en esta entrada.

Lo primero que debemos hacer para poder trabajar con la librería es… obtener la librería. Para ello, en el Explorador de soluciones, hacemos clic derecho sobre las referencias del proyecto y elegimos la opción Manage NuGet Packages…

En la ventana que nos aparece buscaremos por la palabra «ZXing» e instalamos la opción  llamada «ZXing.Net» de las disponibles:

Instalando la librería ZXing.Net

Instalando la librería ZXing.Net

NOTA: También podemos instalar la librería con el Package Manager Console laejecutando el siguiente comando: Install-Package ZXing.Net

Ya estamos preparados para trabajar con la librería. Para ello, vamos a añadir un simple botón para que al pulsarlo se genere un código de barras:

<Button x:Name="BtnGenerate" Content="Generar"/>

Añadimos el evento clic del botón:

<Button x:Name="BtnGenerate" Content="Generar" Click="BtnGenerate_Click" />

Y en el code-behind:

private void BtnGenerate_Click(object sender, RoutedEventArgs e)
{

}

Para generar códigos de barras, lo primero que haremos será importar el namespace:

using ZXing;

En el evento clic de nuestro botón utilizaremos la clase BarcodeWriter que será la encargada de generar el código de barras. Las propiedades fundamentales del BarcodeWriter son:

  • Format: Propiedad tipo enumeración  del tipo BarcodeFormat. Se pueden generar códigos de barras con los formatos UPC-A, EAN-8, EAN-13, Code 39, Code 128, ITF, Codabar, Plessey, MSI, QR Code, PDF-417, Aztec y Data Matrix.
  • Renderer: Podemos crear un WriteableBitmapRenderer o un SvgRenderer dependiendo del formato con el que queramos crear el código. Nos permite personalizar información del código como el color de fondo, fuente a utilizar, tamaño de la fuente, etc.
  • Options: Nos permite definir información básica del código como el tamaño, márgenes, etc.

Crearemos un método que haga uso de la clase BarcodeWriter:

private static WriteableBitmap GenerateQrCode(string content)
{
     var writer = new BarcodeWriter
     {
          Renderer = new ZXing.Rendering.WriteableBitmapRenderer
          {
               Foreground = System.Windows.Media.Color.FromArgb(255, 0, 0, 0),
          },
          Format = BarcodeFormat.QR_CODE,
          Options = { Height = 400, Width = 400 }
     };

     var barcodeImage = writer.Write(content);

     return barcodeImage;
}

En el método utilizamos la clase BarcodeWriter para crear un código QR de color negro, de 400×400 px con el contenido pasado como parámetro al método. Fácil, ¿verdad?

Para concluir el ejemplo, solo nos falta devolver el resultado a pantalla. Añadiremos en la interfaz un control de tipo Image donde mostrar el código:

<Image x:Name="ImgQrCode" />

Por último, en el clic del botón, estableceremos la propiedad Source de la imagen al resultado que devuelve nuestro método anterior GenerateQrCode.

ImgQrCode.Source = GenerateQrCode("@jsuarezruiz");

El resultado es el siguiente:

El resultado

El resultado

Podéis descargar el ejemplo a continuación:

Más información

3 pensamientos en “[Windows Phone] Generar códigos de barras

  1. Pingback: Tips & Tricks de desarrollo para Windows Phone - MSDN España - Site Home - MSDN Blogs

Deja un comentario