Ir para o conteúdo do rodapé
USANDO O IRONBARCODE

Gerador de matriz de dados em C# -- Tutorial completo com exemplos de código

Códigos de barras Data Matrix compactam uma quantidade significativa de dados codificados em uma pequena área física, tornando-os a escolha preferida para rotular produtos farmacêuticos, marcar componentes eletrônicos e rastrear itens em sistemas de gerenciamento de inventário onde o espaço é limitado. Este tutorial guia você sobre como gerar códigos de barras Data Matrix em C# usando IronBarcode, personalizar sua aparência, codificar diferentes tipos de dados e exportá-los em vários formatos de arquivo -- tudo com código direto e pronto para produção.

!{--010011000100100101000010010100100100000101010010010110010101111101000111010001010101010100010111110101001101010100010000010101001001010100010001010100010001011111010101110100100 101010100010010000101111101010000010100100111101000100010101010100001101010100010111110101010001010010010010010010010100000101001100010111110100001001001100010011110100001101001011--}

O que torna os códigos de barras Data Matrix especiais?

Os códigos de barras Data Matrix são símbolos 2D que codificam dados em uma grade de pontos pretos e brancos dispostos em linhas e colunas. Ao contrário dos códigos de barras lineares tradicionais, como UPC ou EAN, eles podem armazenar até 2.335 caracteres alfanuméricos ou 3.116 dígitos numéricos em um espaço tão pequeno quanto 10 x 10 módulos. Sua correção de erro Reed-Solomon embutida permite que sejam lidos com precisão por scanners de código de barras modernos mesmo quando até 30% do símbolo está danificado.

Essas características tornam o Data Matrix ideal para marcar pequenas peças, códigos de barras postais e componentes eletrônicos, bem como rotular em centros de saúde e logística. A indústria de saúde depende dos padrões GS1 Data Matrix para rastreamento de medicamentos, enquanto fabricantes os incorporam em linhas de produção para identificar itens em todo o mundo. Como um único código de barras pode conter tantos dados, agora eles são usados internacionalmente em indústrias que buscam rastreabilidade completa de aplicação.

O padrão ISO/IEC 16022 rege a codificação Data Matrix, definindo a variante ECC200 que o IronBarcode utiliza por padrão. O ECC200 oferece a correção de erro mais eficiente e a maior capacidade de dados de qualquer versão Data Matrix, tornando-o a escolha certa para novas implementações.

Data Matrix vs. Formataros de Código de Barras Comuns
Formatar Tipo Máximo de Caracteres Correção de erros Caso de uso típico
Data Matrix (ECC200) 2D 2.335 alfanuméricos Reed-Solomon (~30%) Farmacêutica, eletrônicos, logística
Código QR 2D 4.296 alfanuméricos Reed-Solomon (até 30%) URLs, marketing, pagamentos
UPC-A 1D 12 dígitos Nenhum Identificação de produto no varejo
Código 128 1D ~50 caracteres Apenas Checksum Remessa, logística geral

Como você instala a biblioteca de códigos de barras em um projeto C#?

Instalar o IronBarcode leva menos de um minuto usando o Gerenciador de Pacotes NuGet. Abra o Console do Gerenciador de Pacotes no Visual Studio e execute:

Install-Package BarCode

Gerador de Data Matrix em C#: Guia Completo com IronBarcode: Imagem 1 - Imagem 1 de 5 relacionadas ao Gerador de Data Matrix em C#: Guia Completo com IronBarcode

Alternativamente, procure por BarCode da Iron Software no Gerenciador de Pacotes NuGet GUI. Após a instalação, adicione o namespace ao seu arquivo C#:

using IronBarCode;
using IronBarCode;
$vbLabelText   $csharpLabel

Isso é toda a configuração necessária. IronBarcode lida internamente com toda a complexa codificação Data Matrix, seguindo o padrão ISO/IEC 16022, para que você possa se concentrar na lógica da aplicação. Para opções de configuração adicionais, como instalação offline ou fontes de pacotes personalizadas, consulte o guia de instalação do IronBarcode e a página de instalação avançada do NuGet.

Frameworks de Destino Suportados

IronBarcode tem como alvos o .NET 10, .NET 8, .NET 6, .NET 5, .NET Standard 2.0 e .NET Framework 4.6.2 e superiores. Se o seu projeto tem como alvo qualquer um desses frameworks, o pacote NuGet é instalado sem configuração adicional.

Como Criar Seu Primeiro Código de Barras Data Matrix?

Gerar um código de barras Data Matrix requer apenas uma linha de código:

// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);

// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);

// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
$vbLabelText   $csharpLabel

Este código cria um código de barras Data Matrix codificando o texto PROD-12345-2024 e o salva como um arquivo PNG. O parâmetro BarcodeWriterEncoding.DataMatrix instrui o IronBarcode a usar o formato Data Matrix. O código de barras resultante aplica automaticamente a especificação ECC200, que inclui correção de erros embutida e assegura uma leitura confiável em condições reais.

Saída do Código de Barras

Gerador de Data Matrix em C#: Guia Completo com IronBarcode: Imagem 2 - Primeira saída de código de barras

Para uso imediato em aplicações, recupere o código de barras como um bitmap ou exporte-o diretamente para um PDF:

// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();

// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();

// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
$vbLabelText   $csharpLabel

O IronBarcode suporta exportação para os formatos PNG, JPEG, BMP, GIF, TIFF, SVG e PDF. Você também pode criar e estampar códigos de barras em documentos PDF existentes para inseri-los em ordens de compra, faturas ou manifestos de envio.

Quais Tipos de Dados Você Pode Codificar em um Código de Barras Data Matrix?

O Data Matrix suporta vários modos de codificação, cada um otimizado para um conjunto de caracteres diferente. O IronBarcode seleciona automaticamente o modo mais eficiente com base no conteúdo fornecido:

// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");

// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");

// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");

// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");

// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");

// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");

// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
$vbLabelText   $csharpLabel

Dados numéricos usam um modo de codificação compacto que reduz o tamanho do código de barras em comparação com texto alfanumérico. A codificação binária lida com caracteres especiais e texto Unicode sem configuração manual. O IronBarcode seleciona automaticamente o modo de codificação mais eficiente, então você não precisa especificá-lo explicitamente.

Saída

Aqui, todos os quatro tipos de dados foram codificados com sucesso em códigos de barras Data Matrix válidos.

Gerador de Data Matrix em C#: Guia Completo com IronBarcode: Imagem 3 - Códigos de barras Data Matrix criados com 4 tipos de dados diferentes

Para um olhar mais profundo nas opções de codificação e suporte a conjuntos de caracteres, veja a documentação de codificação do IronBarcode e a referência de tipos de dados do código de barras.

Como Personalizar a Aparência de um Código de Barras Data Matrix?

O IronBarcode expõe um conjunto completo de opções de personalização de código de barras para controlar tamanho, cor, anotações e margens:

// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);

// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);

// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);

// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");

// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);

customBarcode.SaveAsImage("custom-datamatrix.png");
// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);

// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);

// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);

// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");

// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);

customBarcode.SaveAsImage("custom-datamatrix.png");
$vbLabelText   $csharpLabel

Essas personalizações ajudam a atender a requisitos de marca corporativa ou padrões específicos de rotulagem. O método ResizeTo mantém proporções de módulo adequadas, o que é essencial para a legibilidade do Data Matrix em qualquer distância de scanner. Mudanças de cor acomodam processos de impressão especiais ou restrições de substrato, como etiquetas coloridas ou materiais metálicos. A margem de zona silenciosa definida por SetMargins atende ao requisito mínimo de espaço em branco definido na especificação ISO/IEC 16022.

Gerador de Data Matrix em C#: Guia Completo com IronBarcode: Imagem 4 - Saída de data matrix customizado

Escolhendo o Tamanho de Código de Barras Certo

O tamanho mínimo legível para um código de barras Data Matrix depende do scanner e da resolução de impressão. Para escaneamento de uso geral, recomenda-se um tamanho de módulo de pelo menos 0,3 mm. A uma resolução de impressão de 300 DPI, um código de barras de 500 pixels mede aproximadamente 42 mm quadrados -- suficiente para leitura confiável por scanner de mão. Para etiquetas menores, aumente o DPI ou reduza a carga de dados para manter o símbolo dentro de um intervalo de tamanho escaneável.

Como Gerar Múltiplos Códigos de Barras em Lote?

A geração em lote reduz o trabalho envolvido na criação de grandes conjuntos de códigos Data Matrix para execuções de produção, etiquetas de envio ou inventário serializado:

// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };

foreach (string id in productIds)
{
    var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
    batchBarcode.ResizeTo(150, 150);
    batchBarcode.AddAnnotationTextBelowBarcode(id);

    // Save each barcode with a unique filename
    string filename = $"barcode_{id.Replace("-", "_")}.png";
    batchBarcode.SaveAsImage(filename);
}
// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };

foreach (string id in productIds)
{
    var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
    batchBarcode.ResizeTo(150, 150);
    batchBarcode.AddAnnotationTextBelowBarcode(id);

    // Save each barcode with a unique filename
    string filename = $"barcode_{id.Replace("-", "_")}.png";
    batchBarcode.SaveAsImage(filename);
}
$vbLabelText   $csharpLabel

Esse padrão é adequado para fluxos de trabalho em logística e saúde que requerem grandes conjuntos de etiquetas, cada uma associada a um identificador único. Para aplicações web, estampar códigos de barras diretamente em documentos PDF ou transmitir como byte arrays permite geração de etiquetas em tempo real sem salvar arquivos intermediários.

Gerador de Data Matrix em C#: Guia Completo com IronBarcode: Imagem 5 - Criação de código de barras data matrix em lote

Processamento Assíncrono e Multi-Thread para Grandes Lotes

Quando se gera milhares de códigos de barras, o processamento síncrono se torna um gargalo. O IronBarcode oferece capacidades de processamento assíncrono e multi-thread que permitem gerar códigos de barras em paralelo em múltiplos núcleos de CPU. Para um lote de 10.000 etiquetas, o processamento paralelo pode reduzir o tempo total de geração em uma ordem de magnitude em comparação a loops sequenciais.

Para cenários de alta demanda, considere agrupar códigos de barras em folhas de PDF usando a API de estampagem de PDF do IronBarcode em vez de salvar milhares de arquivos de imagem individualmente, o que pode criar sobrecarga no sistema de arquivos tanto em implantações Windows como em Linux.

Como Ler e Verificar Códigos de Barras Data Matrix?

Gerar códigos de barras é apenas metade do fluxo de trabalho -- verificar se os scanners conseguem lê-los corretamente fecha o ciclo de qualidade. O IronBarcode inclui um leitor de códigos de barras integrado que permite decodificar uma imagem gerada imediatamente após a criação:

// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");

// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
    Console.WriteLine($"Decoded value: {result.Value}");
    Console.WriteLine($"Formatar: {result.BarcodeTipo}");
}
// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");

// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
    Console.WriteLine($"Decoded value: {result.Value}");
    Console.WriteLine($"Formatar: {result.BarcodeTipo}");
}
$vbLabelText   $csharpLabel

Esse padrão de verificação de ida e volta é particularmente valioso em indústrias reguladas, como a farmacêutica, onde a regulamentação DSCSA exige que os códigos de barras serializados em embalagens de medicamentos prescritos sejam legíveis por máquinas e corretamente formatados. Executar uma verificação de leitura como parte do pipeline de geração detecta erros de codificação antes que as etiquetas cheguem à linha de produção.

Para cenários de leitura mais avançados, consulte a documentação de leitura do IronBarcode e o guia de leitura de código de barras de PDF.

Considerações Comuns de Compatibilidade de Digitalização

Diferentes versões de firmware de scanners interpretam símbolos de Data Matrix com diferentes tolerâncias para zonas de silêncio e contraste de módulo. Ao direcionar para scanners portáteis legados, aumente o tamanho do módulo, use cores em alto contraste preto em branco e mantenha a zona de silêncio com pelo menos dois módulos de largura. O guia de Identificadores de Aplicação GS1 fornece padrões de codificação para identificadores de cadeia de suprimentos, como números de lote, datas de validade e GTINs dentro de um único símbolo Data Matrix.

Quais são os seus próximos passos?

A geração de código de barras Data Matrix em C# com IronBarcode segue um padrão consistente: instale o pacote NuGet, chame BarcodeWriter.CreateBarcode com BarcodeWriterEncoding.DataMatrix, aplique personalizações necessárias e exporte para o formato desejado. A mesma API lida com tudo, desde protótipos de um único código de barras até pipelines de lote de alto volume.

Aqui estão os caminhos recomendados para prosseguir:

  • Explore a leitura de código de barras: O guia de leitura do IronBarcode abrange a decodificação de códigos de barras de imagens, PDFs e transmissões de câmeras ao vivo.
  • Experimente outros formatos 2D: O IronBarcode também gera Código QRs, PDF417, Aztec e todos os principais formatos 1D usando a mesma API.
  • Incorpore códigos de barras em documentos: O tutorial de estampagem de PDF mostra como adicionar códigos de barras a PDFs existentes programaticamente.
  • Escale com processamento assíncrono: Revise o guia assíncrono e multithread para paralelizar grandes trabalhos em lote.
  • Revise o licenciamento: A página de licenciamento do IronBarcode lista opções desde desenvolvedor até redistribuição OEM.

Inicie um teste gratuito para testar todos os recursos sem restrições ou revise a documentação completa do IronBarcode para referências detalhadas de API e exemplos de código adicionais.

NuGet Instalar com NuGet

PM >  Install-Package BarCode

Confira o IronBarcode no NuGet para uma instalação rápida. Com mais de 10 milhões de downloads, ele está transformando o desenvolvimento de PDFs com C#. Você também pode baixar a DLL .

Perguntas frequentes

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

Um código de barras Data Matrix é um símbolo 2D regido pela norma ISO/IEC 16022 que codifica até 2.335 caracteres alfanuméricos ou 3.116 dígitos em uma pequena grade. É comumente usado em rotulagem farmacêutica, marcação de eletrônicos e gerenciamento de estoque.

Como gerar um código de barras Data Matrix em C#?

Chame o método `BarcodeWriter.CreateBarcode` com sua string de dados e o método `BarcodeWriterEncoding.DataMatrix`, depois chame `SaveAsImage` ou `SaveAsPdf` no resultado. O IronBarcode lida com a codificação ECC200 e a correção de erros automaticamente.

Quais são os benefícios de usar o IronBarcode para geração de Data Matrix?

O IronBarcode gera códigos de barras Data Matrix ECC200 em uma única linha de código, lida com a seleção automática do modo de codificação e exporta para PNG, PDF, SVG e outros formatos sem dependências adicionais.

O IronBarcode consegue exportar códigos de barras Data Matrix para diferentes formatos de arquivo?

Sim. O IronBarcode exporta códigos de barras Data Matrix para PNG, JPEG, BMP, GIF, TIFF, SVG e PDF. Você também pode inserir códigos de barras diretamente em documentos PDF existentes.

É possível personalizar códigos de barras Data Matrix com o IronBarcode?

Sim. O IronBarcode oferece as funções ResizeTo para dimensionamento, ChangeBarCodeColor e ChangeBackgroundColor para cores, AddAnnotationTextBelowBarcode para texto legível e SetMargins para controle de zonas de silêncio.

Para quais setores os códigos de barras Data Matrix são particularmente adequados?

Os códigos de barras Data Matrix são amplamente utilizados na indústria farmacêutica para conformidade com a DSCSA, na eletrônica para identificação de componentes, na logística para rastreamento de pacotes e na área da saúde para rotulagem de medicamentos em conformidade com o padrão GS1.

Qual versão do Data Matrix o IronBarcode gera?

Por padrão, o IronBarcode gera códigos de barras Data Matrix ECC200. O ECC200 é a versão atual do padrão ISO/IEC 16022, oferecendo a maior capacidade de dados e correção de erros Reed-Solomon.

Por que usar códigos de barras Data Matrix em vez de outros códigos 2D?

Os códigos de barras Data Matrix são preferidos por sua alta densidade de dados em um espaço físico reduzido, pela correção de erros Reed-Solomon que resiste a até 30% de danos nos símbolos e pela padronização ISO/IEC reconhecida em setores regulamentados em todo o mundo.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me