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

Construa um SDK de Código de Barras em C#: Gere, Leia e Digitalize Códigos de Barras com Uma Biblioteca

A maioria dos projetos de SDK de código de barras em C# começa com o mesmo problema: juntar bibliotecas separadas para geração, leitura e exportação, e depois lidar com compatibilidade entre tipos e plataformas de código de barras. O IronBarcode elimina completamente esse atrito. É uma única biblioteca .NET que lida com todas as operações de código de barras que os desenvolvedores geralmente precisam de um SDK de scanner de código de barras dedicado, desde criar códigos de barras lineares e QR codes até escanear múltiplos códigos de barras de imagens imperfeitas e arquivos PDF.

Neste artigo, vamos guiá-lo através das capacidades principais que tornam o IronBarcode uma solução tudo-em-um para projetos de SDK de código de barras: geração de imagens de código de barras, leitura de dados de código de barras a partir de arquivos e configuração de configurações avançadas de escaneamento para precisão de qualidade de produção. Todo exemplo de código a seguir executa como está em um aplicativo de console .NET.

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 .

O que um SDK de Código de Barras deve tratar em Projetos .NET?

Um SDK de scanner de código de barras capaz precisa cobrir três operações essenciais: gerar códigos de barras, ler dados de códigos de barras de imagens e documentos, e lidar com problemas de qualidade de digitalização do mundo real. As melhores opções de SDK de leitor de código de barras também suportam uma ampla gama de simbologias sem exigir bibliotecas separadas para cada uma.

IronBarcode suporta tanto códigos de barras lineares (Code 128, Code 39, UPC-A, UPC-E, EAN-8, EAN-13, GS1 DataBar) quanto códigos de barras 2D (QR Code, Data Matrix, PDF417, Aztec, MaxiCode). Essa cobertura significa que os desenvolvedores .NET podem processar tudo, desde etiquetas de varejo UPC-A até códigos QR de armazém usando um único DLL de código de barras, sem dependências adicionais, sem binários nativos específicos para plataforma. Uma licença de teste gratuita dá acesso total a todos os recursos por 30 dias.

A biblioteca funciona em sistemas operacionais Windows, macOS e Linux, com suporte para implantações de aplicativos .NET MAUI e Android. Também se integra com ferramentas de relatórios como Crystal Reports para cenários que exigem geração de códigos de barras embutidos em documentos comerciais. Seja o projeto um aplicativo de console, um scanner móvel .NET MAUI, ou um leitor de código de barras no lado do servidor processando milhares de imagens, a mesma API do SDK de scanner de código de barras lida com tudo.

How Can Developers Generate Barcode Images in C#?

O método BarcodeWriter.CreateBarcode gera uma imagem de código de barras a partir de um valor de string e uma simbologia especificada em uma única chamada. O objeto GeneratedBarcode retornado pode ser salvo como um arquivo PNG, BMP, JPEG, PDF, HTML, ou exportado em formatos vetoriais como SVG.

using IronBarCode;
// Generate a Code 128 barcode image from string data
var barcode = BarcodeWriter.CreateBarcode("PKG-2025-88421", BarcodeEncoding.Code128);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ResizeTo(500, 150);
barcode.SaveAsPng("shipping-label.png");
// Create a styled QR code with a logo
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/track/88421", 300);
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkSlateGray);
qrCode.SaveAsPng("tracking-qr.png");
using IronBarCode;
// Generate a Code 128 barcode image from string data
var barcode = BarcodeWriter.CreateBarcode("PKG-2025-88421", BarcodeEncoding.Code128);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ResizeTo(500, 150);
barcode.SaveAsPng("shipping-label.png");
// Create a styled QR code with a logo
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/track/88421", 300);
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkSlateGray);
qrCode.SaveAsPng("tracking-qr.png");
$vbLabelText   $csharpLabel

Imagens de Código de Barras Geradas

Construa um SDK de Código de Barras C#: Gere, Leia e Escaneie Códigos de Barras com Uma Biblioteca: Imagem 1 - Saída de imagens de código de barras e QR code

A classe BarcodeWriter aceita dados como uma string, matriz de bytes ou fluxo, proporcionando flexibilidade para diferentes fontes de dados. O enum BarcodeEncoding controla a simbologia, passando BarcodeEncoding.QRCode para um código QR, BarcodeEncoding.UPCA para etiquetas de varejo UPC-A, ou qualquer um dos formatos de código de barras suportados. Para códigos QR estilizados, a classe QRCodeWriter dedicada suporta níveis de correção de erro e incorporação de logotipos, tornando simples criar códigos de marca.

O objeto GeneratedBarcode também fornece métodos para personalizar propriedades do código de barras, como margens, cores e texto de anotação. Imagens de código de barras podem ser exportadas em formatos de imagem raster (PNG, BMP, JPEG) e formatos vetoriais, ou renderizadas diretamente em HTML para cenários de aplicativos web. Veja os exemplos de criação de código de barras para opções adicionais de saída.

Como o Leitor de Código de Barras Funciona em Arquivos de Imagem e PDF?

O método BarcodeReader.Read aceita um caminho de arquivo de imagem, matriz de bytes, bitmap, ou fluxo e retorna uma coleção BarcodeResults contendo todos os códigos de barras encontrados na entrada. Cada BarcodeResult expõe o valor do código de barras, tipo de codificação, número da página, dados binários e a região da imagem do código de barras.

using IronBarCode;
// Use the barcode reader to decode all barcodes from an image file
var results = BarcodeReader.Read("multiple-barcodes.png");
foreach (var result in results)
{
    Console.WriteLine($"Type: {result.BarcodeType} | Value: {result.Value}");
}
// The barcode reader also scans multi-page PDF documents
var pdfResults = BarcodeReader.ReadPdf("invoice-batch.pdf");
foreach (var item in pdfResults)
{
    Console.WriteLine($"Page {item.PageNumber}: {item.Value}");
}
using IronBarCode;
// Use the barcode reader to decode all barcodes from an image file
var results = BarcodeReader.Read("multiple-barcodes.png");
foreach (var result in results)
{
    Console.WriteLine($"Type: {result.BarcodeType} | Value: {result.Value}");
}
// The barcode reader also scans multi-page PDF documents
var pdfResults = BarcodeReader.ReadPdf("invoice-batch.pdf");
foreach (var item in pdfResults)
{
    Console.WriteLine($"Page {item.PageNumber}: {item.Value}");
}
$vbLabelText   $csharpLabel

Saída de Leitura de Códigos de Barras

Construa um SDK de Código de Barras C#: Gere, Leia e Escaneie Códigos de Barras com Uma Biblioteca: Imagem 2 - Saída de dados do código de barras lido

O leitor de código de barras realiza reconhecimento de códigos de barras em todas as principais simbologias por padrão, detectando automaticamente códigos de barras lineares, códigos de barras 2D e códigos QR sem exigir que o desenvolvedor especifique qual tipo escanear. Ao escanear um PDF, ReadPdf processa cada página e retorna resultados com números de página anexados, ideal para fluxos de trabalho de indexação e arquivamento de documentos.

Cada BarcodeResult na coleção fornece acesso aos dados decodificados do código de barras tanto como uma string quanto como uma matriz de bytes. Isso é particularmente útil ao processar códigos Data Matrix ou outras simbologias que codificam dados binários. O resultado do leitor de código de barras também inclui as coordenadas de posição do código de barras, permitindo que aplicativos mapeiem onde cada código apareceu no arquivo de imagem de origem. Para processamento em lote em uma pasta inteira de imagens, passe um IEnumerable<string> de caminhos de arquivo para o leitor de código de barras com multithreading habilitado para execução paralela.

Como um SDK de Scanner de Código de Barras pode Manipular a Qualidade de Imagem do Mundo Real?

Imagens de código de barras do mundo real, de câmeras de armazém, capturas móveis ou documentos escaneados, raramente são pixel-perfeitas. A classe BarcodeReaderOptions fornece controle granular sobre velocidade de digitalização, simbologias esperadas, filtros de correção de imagem e processamento em lote multithread para alcançar reconhecimento de código de barras altamente preciso mesmo em entradas danificadas ou desalinhadas.

using IronBarCode;
// Configure the barcode reader for challenging, real-world image quality
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode,
    Multithreaded = true,
    MaxParallelThreads = 4,
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter()
    }
};
// Scan multiple barcodes from a noisy image with high accuracy
var results = BarcodeReader.Read("camera-capture.jpg", options);
foreach (var barcode in results)
{
    Console.WriteLine($"Detected: {barcode.BarcodeType} &mdash; {barcode.Value}");
}
using IronBarCode;
// Configure the barcode reader for challenging, real-world image quality
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode,
    Multithreaded = true,
    MaxParallelThreads = 4,
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter()
    }
};
// Scan multiple barcodes from a noisy image with high accuracy
var results = BarcodeReader.Read("camera-capture.jpg", options);
foreach (var barcode in results)
{
    Console.WriteLine($"Detected: {barcode.BarcodeType} &mdash; {barcode.Value}");
}
$vbLabelText   $csharpLabel

Saída para Digitalização de Imagem de Código de Barras Ruído

Construa um SDK de Código de Barras C#: Gere, Leia e Escaneie Códigos de Barras com Uma Biblioteca: Imagem 3 - Exemplo de saída para escaneamento de imagem de código de barras ruidosa

Configurar ExpectBarcodeTypes para um subconjunto específico de simbologias (em vez de escanear todos os tipos) melhora dramaticamente tanto a velocidade quanto a precisão. O enum ReadingSpeed oferece quatro níveis — Mais Rápido, Balanceado, Detalhado e Detalhe Extremo, permitindo que os desenvolvedores ajustem o equilíbrio entre tempo de processamento e minuciosidade no reconhecimento de código de barras. A ImageFilterCollection aplica filtros de pré-processamento como nitidez, ajuste de contraste e limiar adaptativo antes que o mecanismo de digitalização processe a imagem do código de barras.

A flag ExpectMultipleBarcodes diz ao mecanismo para continuar escaneando após encontrar a primeira correspondência, o que é essencial quando é necessário escanear múltiplos códigos de barras em um único rótulo ou página de documento. Combinado com Multithreaded = true, a biblioteca distribui o processamento em lote pelos núcleos da CPU para cenários de digitalização de alta taxa. Para um mergulho mais profundo nessas configurações, o tutorial de leitura de códigos de barras cobre cada opção de configuração com código de exemplo.

Quais Tipos de Código de Barras e Plataformas São Suportados?

IronBarcode cobre as simbologias de código de barras mais amplamente utilizadas em aplicações de varejo, logística, saúde e empresarial. A tabela a seguir resume os tipos de código de barras suportados e as plataformas alvo.

Categoria Formatos Suportados
Códigos de Barras Lineares Code 128, Code 39, Code 93, UPC-A, UPC-E, EAN-8, EAN-13, GS1 DataBar, ITF, MSI, Codabar
Códigos de Barras 2D QR Code, Data Matrix, PDF417, Aztec, MaxiCode
Formatos de Imagem PNG, JPEG, BMP, GIF, TIFF, SVG
Formatos de Documento PDF (múltiplas páginas), HTML
.NET Platforms .NET 8/7/6, .NET Core, .NET Framework 4.6.2+, .NET Standard 2.0+
Tipos de Aplicativo Console, Windows Forms, WPF, ASP.NET, .NET MAUI, Blazor
Sistemas Operacionais Windows, macOS, Linux, Android (via .NET MAUI)

A biblioteca é instalada como um único pacote NuGet (BarCode) ou como uma DLL de código de barras independente via download direto. Não são necessárias dependências de SDK nativas, todo o SDK do scanner de código de barras é fornecido como código .NET gerenciado. Instale-o no Visual Studio através do Gerenciador de Pacotes NuGet ou execute dotnet add package BarCode a partir do CLI. Para cenários de implantação que exigem controle de nível de DLL, o download da DLL do IronBarcode fornece um pacote ZIP pronto para integração manual.

IronBarcode também oferece suporte para integração com Crystal Reports e outras ferramentas de relatórios onde é necessária geração de código de barras embutido. Para desenvolvimento de aplicativos .NET MAUI e Android, o SDK do scanner de código de barras fornece leitura de código de barras multiplataforma sem exigir SDKs específicos de câmera — basta passar um arquivo de imagem capturado pela câmera do dispositivo para o leitor de código de barras. O tutorial do scanner de código de barras .NET MAUI cobre esse fluxo de trabalho do .NET MAUI em detalhes, incluindo permissões do Android e código de exemplo para escaneamento móvel.

Para Onde Ir Daqui

IronBarcode oferece aos desenvolvedores .NET uma biblioteca completa de códigos de barras para projetos de nível SDK com geração, leitura, escaneamento em lote e exportação, tudo incluído - sem a complexidade de gerenciar múltiplos pacotes. A versão mais recente adiciona pré-processamento de imagem alimentado por ML e o método ReadPdfs para processamento em lote de PDFs, continuando a expandir o que uma única biblioteca pode fazer.

Inicie uma avaliação gratuita para testar todos os recursos em seu próprio projeto sem marcas d'água ou restrições. Quando estiver pronto para produção, explore as opções de licenciamento do IronBarcode a partir de $799 para desenvolvedores individuais — com suporte gratuito da equipe de engenharia da Iron Software incluído.

!{--010011000100100101000010010100100100000101010010010110010101111101000111010001010101010100010111110101001101010100010000010101001001010100010001010100010001011111010101110100100 101010100010010000101111101010000010100100111101000100010101010100001101010100010111110101010001010010010010010010010100000101001100010111110100001001001100010011110100001101001011--}

Perguntas frequentes

Para que é usado o IronBarcode em projetos C#?

IronBarcode é uma biblioteca .NET que simplifica as operações de código de barras, permitindo que os desenvolvedores gerem, leiam e escaneiem vários tipos de códigos de barras em projetos C#, eliminando a necessidade de várias bibliotecas.

O IronBarcode pode lidar com vários tipos de códigos de barras?

Sim, o IronBarcode suporta uma ampla gama de tipos de códigos de barras, incluindo códigos de barras lineares e códigos QR, garantindo compatibilidade entre diferentes aplicações.

Como o IronBarcode melhora o escaneamento de códigos de barras em C#?

IronBarcode melhora o escaneamento de códigos de barras ao fornecer funcionalidades robustas para escanear múltiplos códigos de barras a partir de imagens imperfeitas e arquivos PDF, aumentando a precisão e a eficiência.

Está disponível código de exemplo para uso do IronBarcode?

Sim, o código de exemplo está incluído para ajudar os desenvolvedores a integrar rapidamente as funcionalidades de geração e escaneamento de códigos de barras em seus projetos C# usando o IronBarcode.

Por que escolher o IronBarcode em vez de bibliotecas separadas para operações de código de barras?

IronBarcode consolida as operações de geração, leitura e escaneamento de código de barras em uma única biblioteca, reduzindo a complexidade e os problemas de compatibilidade associados ao uso de várias bibliotecas.

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