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

Como gerar códigos de barras em C# usando o IronBarcode

IronBarcode é uma biblioteca de código de barras .NET que permite gerar e ler códigos de barras em C# com apenas algumas linhas de código. Você pode criar Code 128, códigos QR, EAN-13, PDF-417, Data Matrix e dezenas de outros tipos de códigos de barras -- depois exportar para PNG, JPEG, TIFF, BMP, PDF ou HTML. Este guia conduz você por instalação, padrões de geração principais, estilo, formatos de exportação e melhores práticas para que você possa adicionar uma saída de código de barras confiável a qualquer aplicativo .NET.

Como instalar uma biblioteca de gerador de código de barras usando o NuGet Package Manager?

Abra o Visual Studio e instale o pacote NuGet com este comando no Console do Gerenciador de Pacotes:

Install-Package BarCode

Código Fonte do Gerador de Código de Barras C# Usando IronBarcode: Imagem 1 - Instalação

O pacote NuGet suporta .NET 10, .NET 8, .NET 6, .NET Core, .NET Standard e .NET Framework -- tornando-o compatível com aplicativos Windows e aplicativos .NET multiplataforma. IronBarcode suporta implantação em contêineres Docker, Azure e servidores Linux. Encontre mais detalhes e documentação de referência na página de documentação do IronBarcode e no projeto GitHub do Iron Software.

Após a instalação, você verá o namespace IronBarCode disponível em seu projeto. A biblioteca não requer dependências de tempo de execução adicionais no Windows -- no Linux, você pode precisar instalar algumas bibliotecas de sistema conforme documentado no guia de implantação do IronBarcode para Linux.

Como você gera um arquivo de imagem de código de barras simples em C#?

Crie imagens de código de barras com apenas algumas linhas de código. O exemplo a seguir mostra a geração de código de barras que salva um arquivo de imagem PNG:

using IronBarCode;

// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);

// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
using IronBarCode;

// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);

// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
$vbLabelText   $csharpLabel

O método BarcodeWriter.CreateBarcode() aceita uma string para codificar e o formato do código de barras de BarcodeWriterEncoding. A referência retornada GeneratedBarcode fornece métodos de estilo e opções de exportação para salvar em PNG, JPEG, BMP, TIFF, PDF ou HTML.

Saída

Código Fonte do Gerador de Código de Barras C# Usando IronBarcode: Imagem 2 - Saída do Código de Barras

Code128 é o código de barras de trabalho para sistemas de logística e inventário. Ele codifica letras maiúsculas, letras minúsculas, números e caracteres especiais em um formato linear compacto. Este tipo de código de barras garante a leitura correta em instalações de envio e ambientes de varejo em todo o mundo. Quando você usa o método SaveAsPng(), o IronBarcode define automaticamente uma resolução padrão adequada para exibição em tela e impressoras padrão.

Para aplicações onde você precisa servir a imagem do código de barras diretamente de um endpoint da web, você pode usar ToStream() em vez de salvar no disco. O fluxo pode ser gravado diretamente em um HttpResponse no ASP.NET Core ou retornado como um FileStreamResult de uma ação do controlador.

Como você cria um código QR e outros tipos de códigos de barras 2D?

O IronBarcode suporta todos os principais formatos de código de barras, incluindo tipos de código de barras 2D, como QR Code e Data Matrix. Gere um código QR com sintaxe semelhante:

using IronBarCode;

// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode/",
    BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
using IronBarCode;

// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode/",
    BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
$vbLabelText   $csharpLabel

Os tipos de códigos de barras QR são excelentes para armazenar URLs e cargas de dados maiores. A biblioteca lida com correção de erros automaticamente, garantindo que o código de barras permaneça legível, mesmo quando parcialmente danificado. Por padrão, o IronBarcode usa o nível de correção de erros M (médio), que recupera cerca de 15% da perda de dados -- você pode aumentar isso para o nível H para códigos de barras impressos que podem ser riscados ou parcialmente obscurecidos.

Saída

Código Fonte do Gerador de Código de Barras C# Usando IronBarcode: Imagem 3 - Saída do Código QR

Para produtos de varejo que exigem códigos de barras EAN-13, gere imagens de código de barras assim:

using IronBarCode;

// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
using IronBarCode;

// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
$vbLabelText   $csharpLabel

EAN-13 é o formato padrão para sistemas de ponto de venda de varejo em todo o mundo. A biblioteca calcula dígitos de verificação automaticamente, então você só precisa fornecer os primeiros 12 dígitos de um número GTIN-13 válido. Se o dígito de verificação que você fornecer não coincidir, o IronBarcode lançará uma exceção descritiva em vez de gerar silenciosamente um código de barras ilegível.

Saída

Código Fonte do Gerador de Código de Barras C# Usando IronBarcode: Imagem 4 - Saída do Código de Barras EAN-13

Além de Code 128, QR Code e EAN-13, a biblioteca suporta Code 39, Code 93, UPC-A, UPC-E, ITF, Codabar, PDF-417, Aztec e Data Matrix. Uma lista completa de formatos suportados está disponível na página de referência de tipos de códigos de barras do IronBarcode.

Como você cria um código QR estilizado com opções de estilo avançadas?

A geração profissional de códigos de barras frequentemente requer opções avançadas de estilização para ajustar cores e adicionar anotações. A classe GeneratedBarcode fornece uma API fluente com métodos de estilo:

using IronBarCode;
using IronSoftware.Drawing;

// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
    .CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
    .ResizeTo(400, 120)
    .SetMargins(20)
    .ChangeBarCodeColor(Color.DarkBlue)
    .AddAnnotationTextAboveBarcode("Invoice Number:")
    .AddBarcodeValueTextBelowBarcode();

// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
using IronBarCode;
using IronSoftware.Drawing;

// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
    .CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
    .ResizeTo(400, 120)
    .SetMargins(20)
    .ChangeBarCodeColor(Color.DarkBlue)
    .AddAnnotationTextAboveBarcode("Invoice Number:")
    .AddBarcodeValueTextBelowBarcode();

// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
$vbLabelText   $csharpLabel

A API fluente permite encadear métodos de estilização para ajustar cores, definir margens e adicionar texto em uma única instrução. O método Verify() indica se o seu código de barras continua legível por máquinas -- garantindo a leitura correta na produção após a aplicação de cores não padrão ou redimensionamento para dimensões pequenas.

Alterar a cor das barras para um tom muito claro ou um azul com baixo contraste contra um fundo branco pode fazer com que o código de barras não seja digitalizado. Sempre chame Verify() após qualquer mudança de cor. Se a verificação falhar, aumente o contraste ou volte para barras pretas. O guia de estilização e personalização de códigos de barras cobre todos os métodos de estilo disponíveis em detalhe.

Para gerar múltiplos códigos de barras com estilo consistente em todo um catálogo, construa um método auxiliar que aplique sua cadeia de estilo padrão a cada instância GeneratedBarcode. Essa abordagem garante margens uniformes, tamanho da fonte e cor em milhares de imagens geradas.

Como Exportar Códigos de Barras para Diferentes Formatos de Imagem?

Gere imagens de código de barras em múltiplos formatos para diferentes casos de uso. A biblioteca salva em PNG, JPEG, BMP, TIFF, PDF e HTML:

using IronBarCode;

var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);

// Export barcode images to various formats
barcode.SaveAsPng("barcode.png");           // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg");          // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff");         // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf");           // PDF document output
barcode.SaveAsHtmlFile("barcode.html");     // HTML for inline web embedding

// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
using IronBarCode;

var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);

// Export barcode images to various formats
barcode.SaveAsPng("barcode.png");           // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg");          // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff");         // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf");           // PDF document output
barcode.SaveAsHtmlFile("barcode.html");     // HTML for inline web embedding

// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
$vbLabelText   $csharpLabel

O método ToStream() retorna dados de código de barras compatíveis com APIs web ASP.NET Core e aplicações Blazor. O método ToBitmap() fornece uma referência System.Drawing.Bitmap para uma manipulação de imagem adicional. Para carimbar códigos de barras em documentos PDF existentes, veja o tutorial de código de barras PDF do IronBarcode.

Saída

Código Fonte do Gerador de Código de Barras C# Usando IronBarcode: Imagem 5 - Saída do Código de Barras PNG

Código Fonte do Gerador de Código de Barras C# Usando IronBarcode: Imagem 6 - Saída do Código de Barras HTML

Escolher o formato certo depende do seu fluxo de trabalho posterior. PNG é sem perdas e uma boa opção padrão para interfaces web e de aplicativos. TIFF é preferido para fluxos de produção de impressão onde a precisão das cores é importante. A saída em PDF é útil quando você precisa de um documento pronto para impressão que uma gráfica possa manipular diretamente. A saída em HTML gera um arquivo auto-contido com uma imagem base64 incorporada — conveniente para modelos de e-mail e portais web.

Quais Ambientes .NET Multiplataforma IronBarcode Suporta?

IronBarcode suporta a geração de códigos de barras em todas as principais plataformas .NET. Implemente em:

Suporte à Plataforma de Implementação do IronBarcode
Plataforma Runtimes Suportados Casos de Uso Típicos
Windows .NET 10, .NET 8, .NET Framework 4.6.2+ Aplicativos de desktop, Serviços Windows, servidores web IIS
Linux .NET 10, .NET 8, .NET Core 3.1+ Contêineres Docker, AWS Lambda, Azure Functions
macOS .NET 10, .NET 8 Ambientes de desenvolvimento, aplicativos de servidor macOS
Móvel .NET MAUI, Xamarin Aplicativos móveis iOS e Android
Nuvem Azure, AWS, Google Nuvem Funções sem servidor, microsserviços em contêineres

O guia de configuração Docker do IronBarcode fornece detalhes sobre as bibliotecas de sistema necessárias para implantações em contêineres. Quando executado no Linux, você geralmente precisa de libgdiplus e libc6-dev instalados na sua imagem Docker. No Alpine Linux, é necessário um conjunto ligeiramente diferente de pacotes — o guia cobre ambos os Dockerfiles Ubuntu/Debian e Alpine.

Para implantações no AWS Lambda, o tutorial de implantação no AWS Lambda explica como agrupar dependências nativas no pacote de implantação e configurar limites de memória para lidar com cargas de trabalho de renderização de códigos de barras.

Como Seguir as Melhores Práticas para Geração de Código de Barras no .NET?

Seguir um conjunto consistente de práticas ao gerar imagens de código de barras em aplicações C# faz a diferença entre códigos de barras que são digitalizados de forma confiável no campo e aqueles que falham no ponto de venda ou no chão de armazenamento. As diretrizes abaixo se aplicam independentemente do formato de código de barras que você escolher.

Escolha o formato de código de barras certo para o seu caso de uso. Selecione um formato que corresponda ao seu ambiente de digitalização e requisitos de dados. Use códigos QR para URLs e cargas de dados com mais de 80 caracteres. Use o Code 128 para inventário e logística onde dados alfanuméricos devem caber em um símbolo linear compacto. Use EAN-13 ou UPC-A para produtos de varejo que precisam ser registrados no sistema GS1. A página de comparação de formatos de código de barras do IronBarcode fornece uma referência lado a lado de todos os tipos suportados, seus limites de capacidade e casos de uso recomendados.

Sempre inclua zonas quietas suficientes. O espaço em branco ao redor de um código de barras -- chamado de zona quieta -- é tão importante quanto as próprias barras. Os scanners o utilizam para detectar onde o símbolo começa e termina. Use o método SetMargins() para adicionar pelo menos 10 pixels de preenchimento em todos os lados para exibição digital e pelo menos 2,5 mm para saída de impressão. Entrar na zona quieta é uma das causas mais comuns de falhas de digitalização na produção.

Verifique após qualquer mudança de estilo. Após ajustar cores, aplicar gradientes ou redimensionar para uma dimensão não padrão, chame Verify() no objeto GeneratedBarcode. Se retornar falso, seu código de barras não será digitalizado de forma confiável com hardware padrão. Ou aumente o contraste ou reduza a complexidade da alteração de estilo.

Use padrões de geração em lote para saída em grande volume. Se sua aplicação gera milhares de códigos de barras -- por exemplo, etiquetas de produtos ou manifestos de envio -- processe-os em um loop e reutilize a mesma configuração de estilo. Evite carregar ativos de fontes ou objetos de configuração dentro do loop, pois isso cria sobrecarga desnecessária. O exemplo de geração de código de barras em lote do IronBarcode demonstra um padrão de loop eficiente com saída consistente.

Teste em múltiplos modelos de scanner e condições de iluminação. Scanners de código de barras variam em sua tolerância para cores de baixo contraste, tamanhos pequenos de módulo e qualidade de impressão. Teste códigos de barras impressos com pelo menos dois tipos de scanner diferentes antes de implantar. Para códigos QR exibidos em telas, teste com câmeras de telefone móvel em condições de iluminação tanto brilhante quanto fraca. A página de padrões de verificação de código de barras GS1 fornece orientações autoritativas sobre classificação de qualidade de símbolos para códigos de barras de varejo.

Respeite os limites de capacidade de dados. Cada formato de código de barras tem uma capacidade máxima de dados. O Code 128 pode codificar confortavelmente até aproximadamente 48 caracteres antes que o símbolo se torne muito largo para imprimir em tamanhos de etiqueta padrão. A capacidade do código QR depende do nível de correção de erros -- no nível H, o máximo é em torno de 1.273 caracteres alfanuméricos. Exceder a capacidade força a biblioteca a lançar uma exceção ou degradar silenciosamente a qualidade. Verifique a referência de capacidade de dados de código QR na Wikipedia para uma tabela de capacidade rápida.

Siga os padrões de descarte do .NET. O GeneratedBarcode e qualquer fluxo retornado por ToStream() implementam IDisposable. Envolva-os em declarações using para liberar recursos não gerenciados prontamente, especialmente em aplicações web de alta demanda onde a geração de códigos de barras ocorre por solicitação.

Compreender modos comuns de falha também ajuda a construir códigos de geração mais resilientes. As três causas mais frequentes de falhas de digitalização são: zona quieta insuficiente, cor da barra muito próxima à cor de fundo, e código de barras escalado abaixo do tamanho de módulo mínimo para o formato escolhido. O método Verify() do IronBarcode captura todos os três em tempo de execução.

Para ler códigos de barras de imagens geradas -- para testes de ida e volta ou digitalização de arquivos carregados -- veja o guia do leitor de código de barras IronBarcode. A API do leitor espelha a API do escritor em simplicidade e suporta a mesma ampla gama de formatos.

O padrão ISO/IEC 15417 para Code 128 e o padrão ISO/IEC 18004 para códigos QR definem as especificações técnicas com as quais o IronBarcode está em conformidade. Revisar o padrão relevante para o tipo de código de barras alvo ajuda a entender as restrições dentro das quais a biblioteca deve operar.

Quais são os seus próximos passos?

Este guia cobriu a geração de imagens de código de barras em C# usando o IronBarcode -- desde a instalação do NuGet até a geração de Code 128, códigos QR e EAN-13, estilizacao avançada com a API fluente, exportação multiformato, implantação em várias plataformas e melhores práticas de produção.

Para ir além, explore estes recursos:

Baixe o IronBarcode para adicionar funcionalidade de código de barras às suas aplicações .NET, ou inicie um teste gratuito de 30 dias para gerar imagens de código de barras em seu ambiente sem chave de licença.

Perguntas frequentes

Como instalar o IronBarcode usando o Gerenciador de Pacotes NuGet ?

Abra o Visual Studio, navegue até Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes e execute: Install-Package BarCode. Como alternativa, pesquise por ' IronBarcode' na interface do Gerenciador de Pacotes NuGet e clique em Instalar.

Que tipos de códigos de barras você pode gerar usando o IronBarcode?

O IronBarcode suporta a geração de uma ampla variedade de tipos de códigos de barras, incluindo códigos QR, Code 128, Code 39, Code 93, UPC-A, UPC-E, EAN-13, EAN-8, PDF-417, Data Matrix, Aztec e muitos outros.

O IronBarcode consegue gerar códigos de barras em diferentes formatos de imagem?

Sim, o IronBarcode pode gerar códigos de barras nos formatos PNG, JPEG, BMP, TIFF, PDF e HTML usando os métodos SaveAsPng, SaveAsJpeg, SaveAsTiff, SaveAsPdf e SaveAsHtmlFile.

O IronBarcode é compatível com o .NET 10?

Sim, o IronBarcode é totalmente compatível com .NET 10, .NET 8, .NET 6, .NET Core, .NET Standard e .NET Framework, permitindo que você integre a geração de códigos de barras em aplicativos multiplataforma.

Como personalizar a aparência de um código de barras usando o IronBarcode?

IronBarcode fornece uma API fluente para a classe GeneratedBarcode. Encadeie métodos como ResizeTo(), SetMargins(), ChangeBarCodeColor(), AddAnnotationTextAboveBarcode() e AddBarcodeValueTextBelowBarcode() para personalizar a aparência. Sempre chame Verify() após estilizar para confirmar se o código de barras permanece legível.

O IronBarcode suporta leitura e digitalização de códigos de barras?

Sim, o IronBarcode suporta a leitura e digitalização de códigos de barras a partir de imagens, PDFs e fluxos de dados usando a classe BarcodeReader e seus métodos Read.

É possível gerar códigos de barras em massa usando o IronBarcode?

Sim, o IronBarcode suporta geração em lote. Itere pelos seus dados em um loop, chame BarcodeWriter.CreateBarcode() para cada item e aplique sua cadeia de estilos padrão. Reutilize objetos de configuração fora do loop para maior eficiência.

Existe alguma versão de avaliação disponível para o IronBarcode?

Sim, o IronBarcode oferece uma licença de avaliação gratuita de 30 dias. Visite ironsoftware.com/csharp/barcode/licensing/#trial-license para obter uma chave de avaliação e usar todos os recursos sem marca d'água durante o período de teste.

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