Reconheça e gere códigos de barras Data Matrix usando o VintaSoft Barcode .NET SDK.

Categoria do blog: Código de barras.NET

19.08.2025

O VintaSoft Barcode .NET SDK é um SDK multiplataforma profissional para Windows, Linux e macOS, que permite reconhecer e gerar códigos de barras Data Matrix em .NET, WPF, Web e MAUI. O VintaSoft Barcode .NET SDK permite incorporar a funcionalidade de reconhecimento e geração de códigos de barras Data Matrix com apenas algumas linhas de código.


O que é um código de barras Data Matrix?

Data Matrix é um código de barras matricial bidimensional que se tornou amplamente utilizado na indústria, produção e rotulagem de produtos. Uma característica distintiva do código de barras Data Matrix é o padrão de busca "L" na forma de uma linha sólida em ambos os lados do código de barras:



Características do código de barras Data Matrix

A versão moderna do código de barras Data Matrix, ECC200, é definida pela norma ISO/IEC 16022 de 2006. A norma também descreve versões legadas de ECC000 a ECC140, cujo uso não é recomendado.

O código de barras Data Matrix pode armazenar dados mistos de diferentes tipos em três modos de codificação:

O código de barras Data Matrix usa o algoritmo de correção de erros Reed-Solomon, que permite reconhecer códigos de barras danificados.

O suporte ao padrão GS1 permite codificar dados no formato GS1 (BarcodeSymbologySubsets.GS1DataMatrix).

O código de barras Data Matrix pode codificar os seguintes símbolos especiais:


Código de barras Data Matrix retangular - quando a área de marcação não é quadrada

Existem 6 versões especiais do código de barras Data Matrix retangular:


Esses códigos de barras são usados ​​em itens pequenos quando a área disponível não permite um código de barras quadrado.


Estrutura do Código de Barras Data Matrix

A matriz de código de barras Data Matrix versão ECC200 possui 24 versões quadradas com tamanhos que variam de 10x10 a 144x144 módulos, além de versões retangulares: 8x18, 8x32, 12x26, 12x36, 16x36 e 16x48 módulos. A orientação do código de barras é determinada pelo padrão de busca "L", cujo centro está localizado no canto inferior esquerdo do código de barras.



É fácil distinguir a versão moderna do Data Matrix ECC200 da versão obsoleta ECC000-ECC140: na versão ECC200, o tamanho da matriz é sempre par, enquanto nas versões ECC000-ECC140 é sempre ímpar. Portanto, na versão ECC200, há sempre um módulo branco no canto superior direito, e na versão obsoleta, há sempre um módulo preto.


O que é um código de barras "GS1 DataMatrix"?

"O código de barras "GS1 DataMatrix" é um código de barras DataMatrix que armazena valores no formato de dados do sistema GS1. O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "GS1 DataMatrix".
Aqui está uma imagem do código de barras "GS1 DataMatrix":


O que é um código de barras "GS1 Digital Link DataMatrix"?

"GS1 Digital Link DataMatrix" barcode is a DataMatrix barcode that stores value in format of "GS1 Digital Link". VintaSoft Barcode .NET SDK can generate and recognize "GS1 Digital Link DataMatrix" barcodes.
Aqui está uma imagem do código de barras "GS1 Digital Link DataMatrix":


O que é um código de barras PPN?

O código de barras PPN é um código de barras DataMatrix usado globalmente para rastreamento, identificação e combate à falsificação na indústria farmacêutica. VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras PPN.
Aqui está uma imagem do código de barras PPN:


O que é um código de barras "Royal Mail Mailmark CMDM"?

O código de barras "Royal Mail Mailmark CMDM" é um código de barras DataMatrix projetado para automatizar a triagem e o rastreamento de itens postais no Reino Unido. O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "Royal Mail Mailmark CMDM".
Aqui estão imagens dos códigos de barras "Royal Mail Mailmark CMDM":


O que é um código de barras "XFA Compressed DataMatrix"?

O código de barras "XFA Compressed DataMatrix" é um código de barras DataMatrix que armazena dados comprimidos de acordo com a especificação Adobe XFA. O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "XFA Compressed DataMatrix".
Aqui está uma imagem do código de barras "XFA Compressed DataMatrix":


O que é um código de barras "ISBT 128 DataMatrix"?

O código de barras "ISBT 128 DataMatrix" é um subconjunto do código de barras DataMatrix que contém informações necessárias para transfusão e transplante. O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "ISBT 128 DataMatrix".
Aqui está uma imagem do código de barras "ISBT 128 DataMatrix":


O que é um código de barras "HIBC LIC DataMatrix"?

O código de barras "HIBC LIC DataMatrix" é um subconjunto do código de barras DataMatrix usado para conformidade com o UDI de dispositivos médicos, identificando fabricantes, produtos e lotes. O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "HIBC LIC DataMatrix".
Aqui está uma imagem do código de barras "HIBC LIC DataMatrix":


Se você precisar codificar uma grande quantidade de dados, use o símbolo especial "Structure Append"

O código de barras Data Matrix suporta o símbolo especial "Structure Append", que permite dividir os dados em vários códigos de barras Data Matrix. O símbolo "Structure Append" é codificado no código de barras e permite determinar com precisão o número de partes do código de barras e sua ordem:

VintaSoft Barcode .NET SDK contém um algoritmo para recuperar dados de um conjunto de códigos de barras - partes do Data Matrix que foram separadas usando o símbolo "Structure Append".


Quais códigos de barras Data Matrix o VintaSoft Barcode .NET SDK consegue reconhecer?

VintaSoft Barcode .NET SDK reconhece todos os tipos de códigos de barras Data Matrix versão ECC200. Durante o reconhecimento, são utilizados algoritmos exclusivos que permitem reconhecer rapidamente códigos de barras com diversos problemas:



Aqui está um código C# que demonstra como reconhecer códigos de barras Data Matrix em uma imagem capturada por uma câmera:
/// <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();
            }
        }
    }
}


Quais códigos de barras Data Matrix o VintaSoft Barcode .NET SDK pode gerar?

VintaSoft Barcode .NET SDK gera todos os tipos de códigos de barras Data Matrix.

Aqui está o código C# que demonstra como gerar um bitmap 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);
    }
}


Aqui está um código C# que demonstra como gerar uma imagem vetorial (SVG) de um 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();
    }
}