VintaSoft Barcode .NET SDK es un SDK profesional multiplataforma para Windows, Linux, macOS y Android, que permite reconocer y generar códigos de barras Data Matrix en .NET, WPF, Web y MAUI. VintaSoft Barcode .NET SDK permite integrar la funcionalidad de reconocimiento y generación de códigos de barras Data Matrix con solo unas pocas líneas de código.
¿Qué es un código de barras Data Matrix?
Data Matrix es un código de barras matricial bidimensional que se ha generalizado en la industria, la producción y el etiquetado de productos. Una característica distintiva del código de barras Data Matrix es el patrón de búsqueda "L" en forma de línea sólida a ambos lados del código:
Características del código de barras Data Matrix
La versión moderna del código de barras Data Matrix, ECC200, está definida por la norma ISO/IEC 16022 de 2006. La norma también describe las versiones anteriores, de ECC000 a ECC140, cuyo uso no se recomienda.
El código de barras Data Matrix puede almacenar datos mixtos de diferentes tipos en tres modos de codificación:
- Alfanumérico (hasta 2235 símbolos)
- Byte (hasta 1555 bytes)
- Numérico (hasta 3116 dígitos)
El código de barras Data Matrix utiliza el algoritmo de corrección de errores Reed-Solomon, que permite reconocer códigos de barras dañados.
La compatibilidad con el estándar GS1 le permite codificar datos en formato GS1 (
BarcodeSymbologySubsets.GS1DataMatrix).
El código de barras Data Matrix puede codificar los siguientes símbolos especiales:
Código de barras Data Matrix rectangular: cuando el área de marcado no es cuadrada
Existen 6 versiones especiales del código de barras Data Matrix rectangular:
Estos códigos de barras se utilizan en artículos pequeños cuando el área disponible no permite un código de barras cuadrado.
Estructura del código de barras Data Matrix
La versión ECC200 del código de barras Data Matrix cuenta con 24 versiones cuadradas con tamaños que van desde 10x10 hasta 144x144 módulos, así como versiones rectangulares: 8x18, 8x32, 12x26, 12x36, 16x36 y 16x48 módulos. La orientación del código de barras se determina mediante el patrón de búsqueda "L", cuyo centro se encuentra en la esquina inferior izquierda del código de barras.
- Patrón de búsqueda
- Patrones de tiempo
- Capa de corrección de datos y errores
Es fácil distinguir la versión moderna de Data Matrix ECC200 de la versión obsoleta ECC000-ECC140: en la versión ECC200, el tamaño de la matriz siempre es par, y en la ECC000-140, siempre es impar; por lo tanto, en la versión ECC200 siempre hay un módulo blanco en la esquina superior derecha, y en la versión obsoleta siempre hay un módulo negro.
Si necesita codificar una gran cantidad de datos, un símbolo especial "Structure Append"
El código de barras Data Matrix admite un símbolo especial "Structure Append", que permite dividir los datos en varios códigos de barras Data Matrix. El símbolo "Structure Append" está codificado en el código de barras y permite determinar con precisión el número de partes del código de barras y su orden:
VintaSoft Barcode .NET SDK contiene un algoritmo para recuperar datos de un conjunto de partes de códigos de barras de Data Matrix que se separaron mediante el símbolo "Structure Append".
¿Qué códigos de barras de Data Matrix reconoce VintaSoft Barcode .NET SDK?
VintaSoft Barcode .NET SDK reconoce todos los tipos de códigos de barras de Data Matrix versión ECC200. Durante el reconocimiento, se utilizan algoritmos únicos que permiten reconocer rápidamente códigos de barras con diversos problemas:
- matriz dañada
- contraste bajo
- modulación baja
- iluminación desigual
- compresión en un lado
- distorsiones espaciales
- impresos en superficies distorsionadas
- gran cantidad de códigos de barras en una imagen
Aquí se muestra un código en C# que demuestra cómo reconocer códigos de barras Data Matrix en una imagen capturada con una cámara:
/// <summary>
/// Reads Data Matrix barcodes from a <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="bitmap">A bitmap with barcodes.</param>
public static void ReadDataMatrixBarcodesFromBitmap(System.Drawing.Bitmap bitmap)
{
// create barcode reader
using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
{
// specify that reader must search for Data Matrix barcodes
reader.Settings.ScanBarcodeTypes = Vintasoft.Barcode.BarcodeType.DataMatrix;
// read barcodes from image
Vintasoft.Barcode.IBarcodeInfo[] infos = Vintasoft.Barcode.GdiExtensions.ReadBarcodes(reader, bitmap);
// if barcodes are not detected
if (infos.Length == 0)
{
System.Console.WriteLine("No barcodes found.");
}
// if barcodes are detected
else
{
// get information about extracted barcodes
System.Console.WriteLine(string.Format("{0} barcodes found:", infos.Length));
System.Console.WriteLine();
for (int i = 0; i < infos.Length; i++)
{
Vintasoft.Barcode.IBarcodeInfo info = infos[i];
System.Console.WriteLine(string.Format("[{0}:{1}]", i + 1, info.BarcodeType));
System.Console.WriteLine(string.Format("Value: {0}", info.Value));
System.Console.WriteLine(string.Format("Region: {0}", info.Region));
System.Console.WriteLine();
}
}
}
}
¿Qué códigos de barras Data Matrix puede generar VintaSoft Barcode .NET SDK?
VintaSoft Barcode .NET SDK genera todos los tipos de códigos de barras Data Matrix.
Aquí se muestra el código en C# que demuestra cómo generar un mapa de bits de código de barras Data Matrix:
/// <summary>
/// Returns the Data Matrix barcode as <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="value">The barcode value.</param>
/// <returns>A <see cref="System.Drawing.Bitmap"/> object.</returns>
public static System.Drawing.Bitmap GetDataMatrixBarcodeAsBitmap(string value)
{
// create the barcode writer
using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
{
// set barcode writer settings
barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.DataMatrix;
barcodeWriter.Settings.Value = value;
// get a barcode image as System.Drawing.Bitmap
return Vintasoft.Barcode.GdiExtensions.GetBarcodeAsBitmap(barcodeWriter);
}
}
Aquí hay un código C# que demuestra cómo generar una imagen vectorial (SVG) de un código de barras Data Matrix:
/// <summary>
/// Returns the Data Matrix barcode in vector form as a SVG string.
/// </summary>
/// <param name="barcodeValue">Barcode value.</param>
public static void GetDataMatrixBarcodeAsSvgString(string barcodeValue)
{
// create the barcode writer
using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
{
// set barcode writer settings
barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.DataMatrix;
barcodeWriter.Settings.Value = barcodeValue;
// generate Data Matrix barcode as a SVG string
return barcodeWriter.GetBarcodeAsSvgFile();
}
}