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 em C# para geração de código de barras 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, pode ser necessário instalar algumas bibliotecas do 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");
Imports IronBarCode
' Generate a simple barcode and encode the string data
Dim barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128)
' Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png")
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 estilização e opções de exportação para salvar em PNG, JPEG, BMP, TIFF, PDF ou HTML.
Saída
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 centros de distribuição e lojas de varejo em todo o mundo. Ao usar o método SaveAsPng(), o IronBarcode define automaticamente uma resolução padrão adequada para exibição na tela e impressoras comuns.
Para aplicações em que você precisa fornecer a imagem do código de barras diretamente de um endpoint da web, você pode usar ToStream() em vez de salvar em 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");
Imports IronBarCode
' Create a QR code and encode URL data
Dim qrCode = BarcodeWriter.CreateBarcode(
"https://ironsoftware.com/csharp/barcode/",
BarcodeWriterEncoding.QRCode
)
qrCode.SaveAsPng("website-qr.png")
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
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");
Imports IronBarCode
' Generate an EAN-13 barcode compatible with UPC for retail print applications
Dim eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13)
eanBarcode.SaveAsPng("retail-product.png")
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
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 estilização:
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");
Imports IronBarCode
Imports IronSoftware.Drawing
' Create a styled barcode with advanced styling options
Dim 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
Dim isReadable As Boolean = styledBarcode.Verify()
Console.WriteLine($"Barcode verification: {(If(isReadable, "PASS", "FAIL"))}")
styledBarcode.SaveAsPng("styled-invoice-barcode.png")
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 permanece legível por máquina, garantindo a leitura correta na produção após a aplicação de cores não padronizadas 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 ligue para 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 vários códigos de barras com estilo consistente em todo o catálogo, crie um método auxiliar que aplique sua cadeia de estilo padrão a cada instância de 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();
Imports IronBarCode
Dim 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
Dim barcodeStream As System.IO.Stream = barcode.ToStream()
Dim bitmapImage As System.Drawing.Bitmap = barcode.ToBitmap()
O método ToStream() retorna dados de código de barras compatíveis com APIs da Web ASP.NET Core e aplicativos Blazor. O método ToBitmap() fornece uma referência System.Drawing.Bitmap para manipulação adicional da imagem. Para carimbar códigos de barras em documentos PDF existentes, veja o tutorial de código de barras PDF do IronBarcode.
Saída
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:
| 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 do IronBarcode para Docker fornece detalhes sobre as bibliotecas de sistema necessárias para implantações em contêineres. Ao executar no Linux, você normalmente precisa ter libgdiplus e libc6-dev instalados em 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 do AWS Lambda, o passo a passo de implantação do AWS Lambda explica como incluir 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ódigo 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 cada lado para exibição digital e pelo menos 2,5 mm para impressão. Entrar na zona quieta é uma das causas mais comuns de falhas de digitalização na produção.
Verifique após qualquer alteração 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 quaisquer fluxos retornados por ToStream() implementam IDisposable. Envolva-os em instruções using para liberar recursos não gerenciados prontamente, especialmente em aplicativos da web de alto desempenho, onde a geração de código 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 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:
- Referência completa da API do IronBarcode -- documentação completa dos métodos
BarcodeWriter,GeneratedBarcodee todas as enumerações - Tutorial do leitor de código de barras IronBarcode -- lendo e decodificando códigos de barras de imagens, PDFs e fluxos
- Exemplo de geração de código de barras em lote -- padrões de geração em alto volume para impressão de etiquetas e fluxos de trabalho de envio
- Licenciamento e preços do IronBarcode -- opções a partir de $799
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.



