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

Gerar códigos de barras em aplicativos Web ASP.NET Core

Integrar a geração de código de barras em uma aplicação web ASP.NET abre poderosas capacidades para gestão de inventário, rastreamento de produtos e automação de documentos. Este tutorial demonstra como gerar códigos de barras em um projeto .NET Core usando IronBarCode -- uma biblioteca de código de barras que suporta mais de 30 formatos, incluindo QR Code, Data Matrix, Code 128 e UPC A.

O exemplo rápido a seguir mostra como criar um código de barras Code 128 e retorná-lo como uma imagem PNG de uma ação de controlador MVC:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public IActionResult GenerateBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    barcode.AddBarcodeValueTextBelowBarcode();
    byte[] barcodeBytes = barcode.ToPngBinaryData();
    return File(barcodeBytes, "image/png");
}
using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public IActionResult GenerateBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    barcode.AddBarcodeValueTextBelowBarcode();
    byte[] barcodeBytes = barcode.ToPngBinaryData();
    return File(barcodeBytes, "image/png");
}
$vbLabelText   $csharpLabel

Comece seu teste gratuito para seguir junto com os exemplos de código do tutorial completo abaixo.

Como Instalar uma Biblioteca de Código de Barras em um Projeto .NET Core?

Adicionar capacidades de geração de código de barras a uma aplicação web ASP.NET Core requer a instalação do pacote NuGet IronBarCode. Abra o Visual Studio e use o Console do Gerenciador de Pacotes para instalar as dependências:

Install-Package BarCode

O pacote é compatível com .NET Core 6, 7, 8, 10 e versões mais recentes, bem como .NET Framework 4.6.2+. A biblioteca lida com todas as dependências automaticamente, não exigindo fontes de código de barras adicionais ou configuração do sistema. Uma vez instalado, adicione a referência de namespace ao arquivo de controlador ou serviço:

using IronBarCode;
using IronBarCode;
$vbLabelText   $csharpLabel

Quais Versões e Plataformas .NET São Suportadas?

IronBarCode tem como alvo todas as modernas execuções .NET:

  • .NET 10, 9, 8, 7, 6 -- lançamentos LTS e STS totalmente suportados
  • .NET Framework 4.6.2+ -- suporte a aplicações legadas
  • Alvos de implantação -- Windows, Linux, macOS, Docker, Azure, AWS
  • Alvos móveis -- Android e iOS via .NET MAUI

Nenhuma biblioteca GD externa, codecs nativos ou instalações de fontes de código de barras são necessárias. A biblioteca é totalmente autossuficiente e resolve toda a lógica de codificação internamente.

Como Adicionar o Namespace a um Controlador?

Após instalar o pacote NuGet, referencie o namespace IronBarCode no topo de qualquer controlador, serviço ou modelo de Razor Page onde a geração de código de barras é necessária:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;
using IronBarCode;
using Microsoft.AspNetCore.Mvc;
$vbLabelText   $csharpLabel

Esta única diretiva using dá acesso a BarcodeWriter, QRCodeWriter, BarcodeReader, e todos os tipos de suporte tanto para geração quanto para leitura de códigos de barras.

Como Gerar Códigos de Barras em uma Aplicação Web ASP.NET Core?

Criar códigos de barras em um controlador MVC envolve a classe BarcodeWriter do IronBarCode. O exemplo a seguir demonstra uma ação completa de controlador que cria um código de barras Code 128 baseado em URL ou texto fornecido por um usuário:

using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public class BarcodeController : Controller
{
    public IActionResult GenerateBarcode(string data)
    {
        // Generate barcode from input data
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
            data,
            BarcodeWriterEncoding.Code128);
        barcode.ResizeTo(400, 120);
        barcode.AddBarcodeValueTextBelowBarcode();
        // Return as image for display in browser
        byte[] barcodeBytes = barcode.ToPngBinaryData();
        return File(barcodeBytes, "image/png");
    }
}
using IronBarCode;
using Microsoft.AspNetCore.Mvc;

public class BarcodeController : Controller
{
    public IActionResult GenerateBarcode(string data)
    {
        // Generate barcode from input data
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
            data,
            BarcodeWriterEncoding.Code128);
        barcode.ResizeTo(400, 120);
        barcode.AddBarcodeValueTextBelowBarcode();
        // Return as image for display in browser
        byte[] barcodeBytes = barcode.ToPngBinaryData();
        return File(barcodeBytes, "image/png");
    }
}
$vbLabelText   $csharpLabel

Imagem de Saída do Código de Barras

ASP .NET Barcode Generation: Crie um Gerador de Código de Barras para Sua Aplicação Web: Imagem 1 - Código de Barras Gerado

O método BarcodeWriter.CreateBarcode() aceita os dados do código de barras como o primeiro parâmetro e o formato de codificação como o segundo. Essa abordagem cria códigos de barras dinamicamente com base na entrada do usuário ou valores de banco de dados.

Para salvar imagens de códigos de barras em uma pasta do projeto, use o método SaveAsImage():

barcode.SaveAsImage("wwwroot/images/generated-barcode.png");
barcode.SaveAsImage("wwwroot/images/generated-barcode.png");
$vbLabelText   $csharpLabel

A biblioteca suporta vários formatos de saída, incluindo PNG, GIF, BMP, SVG e JPEG. Você também pode exportar códigos de barras como HTML para incorporação direta em páginas web.

Como Retornar um Código de Barras como Download de Arquivo?

Para retornar o código de barras como um arquivo para download em vez de uma imagem embutida, defina o cabeçalho Content-Disposition na resposta:

public IActionResult DownloadBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    byte[] pdfBytes = barcode.ToPdfBinaryData();
    return File(pdfBytes, "application/pdf", "barcode.pdf");
}
public IActionResult DownloadBarcode(string data)
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, BarcodeWriterEncoding.Code128);
    barcode.ResizeTo(400, 120);
    byte[] pdfBytes = barcode.ToPdfBinaryData();
    return File(pdfBytes, "application/pdf", "barcode.pdf");
}
$vbLabelText   $csharpLabel

Esse padrão é útil para geração de etiquetas de envio, fluxos de trabalho de rotulagem de produtos e qualquer cenário onde o usuário final precise salvar ou imprimir um documento de código de barras diretamente.

Quais Tipos de Código de Barras São Suportados para Aplicações Web?

IronBarCode suporta mais de 30 formatos. Aqui estão os detalhes sobre como criar os tipos mais comumente usados:

Geração de código QR

// Create QR Code with custom size
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode(
    "https://example.com/product/12345",
    500,
    QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("product-qr.png");
// Create QR Code with custom size
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode(
    "https://example.com/product/12345",
    500,
    QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("product-qr.png");
$vbLabelText   $csharpLabel

Saída do QR Code

ASP .NET Barcode Generation: Crie um Gerador de Código de Barras para Sua Aplicação Web: Imagem 2 - Imagem 2 de 6 relacionadas a ASP .NET Barcode Generation: Crie um Gerador de Código de Barras para Sua Aplicação Web

A geração de QR Code suporta níveis de correção de erro que determinam o quanto o código pode ser danificado enquanto permanece legível. Use Médio ou Alto para aplicações de QR Code de impressão onde o desgaste físico é esperado. Saiba mais sobre opções de customização de QR Code.

Data Matrix e Outros Formatos 2D

// Create Data Matrix barcode
GeneratedBarcode dataMatrix = BarcodeWriter.CreateBarcode(
    "DMX-2024-001",
    BarcodeWriterEncoding.DataMatrix);
dataMatrix.SaveAsGif("datamatrix.gif");
// Create Data Matrix barcode
GeneratedBarcode dataMatrix = BarcodeWriter.CreateBarcode(
    "DMX-2024-001",
    BarcodeWriterEncoding.DataMatrix);
dataMatrix.SaveAsGif("datamatrix.gif");
$vbLabelText   $csharpLabel

Saída do Data Matrix

ASP .NET Barcode Generation: Crie um Gerador de Código de Barras para Sua Aplicação Web: Imagem 3 - Data Matrix Gerado

Os códigos de barras Data Matrix se destacam em cenários que exigem codificação compacta e de alta densidade. A biblioteca também gera formatos PDF417, Aztec e MaxiCode. Esses tipos de códigos de barras 2D armazenam significativamente mais dados do que os formatos lineares, mantendo uma precisão de leitura confiável.

Códigos de Barras Lineares (UPC, EAN, Code 39)

// Create UPC-A barcode for retail products
GeneratedBarcode upcBarcode = BarcodeWriter.CreateBarcode(
    "012345678905",
    BarcodeWriterEncoding.UPCA);
upcBarcode.SaveAsPng("upc-barcode.png");
// Create UPC-A barcode for retail products
GeneratedBarcode upcBarcode = BarcodeWriter.CreateBarcode(
    "012345678905",
    BarcodeWriterEncoding.UPCA);
upcBarcode.SaveAsPng("upc-barcode.png");
$vbLabelText   $csharpLabel

Saída

ASP .NET Barcode Generation: Crie um Gerador de Código de Barras para Sua Aplicação Web: Imagem 4 - Código de Barras Gerado

Os códigos de barras UPC A e EAN incluem validação automática de checksum, prevenindo erros de codificação durante o processo de geração do código de barras. Para uma lista completa de formatos suportados, veja a referência de formatos de código de barras.

Como Personalizar e Estilizar Imagens de Código de Barras?

Estilizar códigos de barras para uma aplicação web envolve ajustar cores, fontes, margens e anotações. A API fluente torna a personalização simples:

GeneratedBarcode styledBarcode = BarcodeWriter.CreateBarcode(
    "STYLED-2024",
    BarcodeWriterEncoding.Code128);
// Apply styling
styledBarcode.ResizeTo(450, 150);
styledBarcode.SetMargins(20);
styledBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
styledBarcode.AddAnnotationTextAboveBarcode("Product ID:");
styledBarcode.AddBarcodeValueTextBelowBarcode();
// Export to multiple formats
styledBarcode.SaveAsPng("styled-barcode.png");
styledBarcode.SaveAsPdf("styled-barcode.pdf");
GeneratedBarcode styledBarcode = BarcodeWriter.CreateBarcode(
    "STYLED-2024",
    BarcodeWriterEncoding.Code128);
// Apply styling
styledBarcode.ResizeTo(450, 150);
styledBarcode.SetMargins(20);
styledBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
styledBarcode.AddAnnotationTextAboveBarcode("Product ID:");
styledBarcode.AddBarcodeValueTextBelowBarcode();
// Export to multiple formats
styledBarcode.SaveAsPng("styled-barcode.png");
styledBarcode.SaveAsPdf("styled-barcode.pdf");
$vbLabelText   $csharpLabel

Imagem de Código de Barras Estilizada

ASP .NET Barcode Generation: Crie um Gerador de Código de Barras para Sua Aplicação Web: Imagem 5 - Código de Barras Estilizado de Saída

O método SetMargins() adiciona espaço em branco ao redor do código de barras para melhor legibilidade pelo scanner. Você pode ajustar as configurações de fonte para o texto de anotação, mudar a família e o tamanho da fonte, e personalizar extensivamente o estilo do código de barras. A biblioteca renderiza texto utilizando fontes do sistema sem necessidade de fontes externas de código de barras.

Como Incluir um Código de Barras Diretamente em uma Visualização Razor?

Para visualizações ASP.NET MVC, gere códigos de barras como strings Base64 para incorporação direta em HTML sem salvar arquivos no disco:

public IActionResult DisplayBarcode()
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
        "INV-2024-0042",
        BarcodeWriterEncoding.Code128);
    string base64Image = barcode.ToDataUrl();
    ViewBag.BarcodeImage = base64Image;
    return View();
}
public IActionResult DisplayBarcode()
{
    GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
        "INV-2024-0042",
        BarcodeWriterEncoding.Code128);
    string base64Image = barcode.ToDataUrl();
    ViewBag.BarcodeImage = base64Image;
    return View();
}
$vbLabelText   $csharpLabel

Código de Barras Exibido

ASP .NET Barcode Generation: Crie um Gerador de Código de Barras para Sua Aplicação Web: Imagem 6 - Código de Barras exibido em nosso navegador

Na visualização Razor, exiba dentro de um elemento <div>:

<div class="barcode-container">
    <img src="@ViewBag.BarcodeImage" alt="Generated Barcode" />
</div>
<div class="print-actions">
    <button onclick="window.print()">Print Barcode</button>
</div>
<div class="barcode-container">
    <img src="@ViewBag.BarcodeImage" alt="Generated Barcode" />
</div>
<div class="print-actions">
    <button onclick="window.print()">Print Barcode</button>
</div>
HTML

Esta abordagem elimina a necessidade de salvar as imagens de código de barras no sistema de arquivos, mantendo o serviço web sem estado. A referência completa da API documenta todos os métodos e propriedades disponíveis.

Como Ler e Digitalizar Códigos de Barras no ASP.NET Core?

A leitura de códigos de barras de imagens enviadas ou fluxos de arquivos é tratada pela classe BarcodeReader. Isso é útil em fluxos de recebimento, processamento de devoluções e qualquer cenário em que um código de barras digitalizado precise ser decodificado no servidor:

using IronBarCode;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

public class BarcodeScanController : Controller
{
    public IActionResult ScanBarcode(IFormFile uploadedImage)
    {
        using var stream = uploadedImage.OpenReadStream();
        var results = BarcodeReader.Read(stream);
        if (results.Count > 0)
        {
            string decodedValue = results[0].Value;
            return Ok(new { barcode = decodedValue });
        }
        return BadRequest("No barcode detected in image.");
    }
}
using IronBarCode;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

public class BarcodeScanController : Controller
{
    public IActionResult ScanBarcode(IFormFile uploadedImage)
    {
        using var stream = uploadedImage.OpenReadStream();
        var results = BarcodeReader.Read(stream);
        if (results.Count > 0)
        {
            string decodedValue = results[0].Value;
            return Ok(new { barcode = decodedValue });
        }
        return BadRequest("No barcode detected in image.");
    }
}
$vbLabelText   $csharpLabel

O método BarcodeReader.Read() aceita caminhos de arquivos, fluxos e objetos System.Drawing.Bitmap. Ele detecta automaticamente o formato do código de barras e retorna uma coleção de objetos BarcodeResult, cada um contendo o valor decodificado, o tipo de formato e a posição na imagem. Quando vários códigos de barras aparecem em uma única imagem - por exemplo, em uma fotografia de prateleira de armazém - o leitor retorna todos os valores detectados na coleção, não apenas o primeiro.

O desempenho também vale a pena ser considerado para aplicações ASP.NET de alto rendimento. O leitor suporta a digitalização de regiões de interesse, que recorta a imagem para um retângulo de pixels específico antes da análise. Isso reduz significativamente o tempo de processamento quando os códigos de barras sempre aparecem em uma área conhecida da imagem.

Para cenários avançados, como ajuste de contraste para imagens de baixa qualidade ou ajuste da sensibilidade de detecção, consulte a documentação de leitura de códigos de barras.

Como Exportar Códigos de Barras para PDF no ASP.NET?

A geração de códigos de barras embutidos diretamente em documentos PDF é um requisito comum para etiquetas de remessa, etiquetas de armazém e documentos de compliance. IronBarCode suporta a gravação diretamente no formato PDF:

GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
    "SHIP-2024-99471",
    BarcodeWriterEncoding.Code128);
barcode.ResizeTo(500, 150);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.SaveAsPdf("shipping-label.pdf");
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(
    "SHIP-2024-99471",
    BarcodeWriterEncoding.Code128);
barcode.ResizeTo(500, 150);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.SaveAsPdf("shipping-label.pdf");
$vbLabelText   $csharpLabel

Para documentos PDF com múltiplos códigos de barras -- por exemplo, uma página de etiquetas de produtos -- gere cada código de barras separadamente e combine-os usando uma biblioteca de PDF. O guia de integração com IronPDF explica como carimbar códigos de barras em modelos de PDF existentes, o que é útil para adicionar códigos de barras a layouts de etiquetas pré-desenhados.

O método SaveAsPdf() também aceita dimensões de saída para que a página de PDF renderizada corresponda ao tamanho físico da etiqueta exigido pelas impressoras de etiquetas.

Como Lidar com Erros de Geração de Código de Barras e Validação?

As regras de codificação de código de barras variam conforme o formato. Por exemplo, o UPC-A requer exatamente 11 ou 12 dígitos, o EAN-13 requer exatamente 12 ou 13, e o Code 128 tem um limite prático de 48 caracteres para saída legível em tamanhos padrão. O fornecimento de dados inválidos gera um IronBarCodeEncoderException.

Trate erros de codificação explicitamente nas ações do controlador:

public IActionResult SafeGenerate(string data, string format)
{
    try
    {
        var encoding = Enum.Parse<BarcodeWriterEncoding>(format, true);
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, encoding);
        return File(barcode.ToPngBinaryData(), "image/png");
    }
    catch (IronBarCodeEncoderException ex)
    {
        return BadRequest($"Encoding error: {ex.Message}");
    }
    catch (ArgumentException ex)
    {
        return BadRequest($"Unknown format: {ex.Message}");
    }
}
public IActionResult SafeGenerate(string data, string format)
{
    try
    {
        var encoding = Enum.Parse<BarcodeWriterEncoding>(format, true);
        GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(data, encoding);
        return File(barcode.ToPngBinaryData(), "image/png");
    }
    catch (IronBarCodeEncoderException ex)
    {
        return BadRequest($"Encoding error: {ex.Message}");
    }
    catch (ArgumentException ex)
    {
        return BadRequest($"Unknown format: {ex.Message}");
    }
}
$vbLabelText   $csharpLabel

Para uso em produção, valide o comprimento dos dados de entrada e o conjunto de caracteres antes de chamar CreateBarcode(). A documentação do IronBarCode fornece restrições de codificação específicas por formato para cada tipo de código de barras suportado.

Quais são os seus próximos passos?

Construir um gerador de código de barras ASP.NET com IronBarCode fornece uma solução confiável para criar, estilizar e exportar imagens de código de barras em aplicações web .NET Core. A biblioteca lida automaticamente com padrões de codificação complexos enquanto oferece ampla personalização através de uma API amigável para desenvolvedores. Seja gerando códigos QR para escaneamento móvel, códigos de barras Data Matrix para aplicações industriais ou códigos UPC para varejo, IronBarCode integra-se diretamente com controladores MVC do ASP.NET e páginas Razor.

Explore estes recursos para aprofundar o seu conhecimento:

Você pode testar o conjunto completo de recursos durante o período de avaliação gratuita. Para implantação em produção e uso comercial, veja as opções de licenciamento para selecionar a licença apropriada para os requisitos do seu projeto. A biblioteca suporta exportações de bitmap e vetor, com cada versão mantendo a compatibilidade entre os alvos de implantação do Windows, Linux, Android e iOS.

Para dúvidas, comparações com outras bibliotecas de código de barras for .NET ou suporte à integração empresarial, visite o portal de suporte IronBarCode.

!{--010011000100100101000010010100100100000101010010010110010101111101000111010001010101010100010111110101001101010100010000010101001001010100010001010100010001011111010101110100100 101010100010010000101111101010000010100100111101000100010101010100001101010100010111110101010001010010010010010010010100000101001100010111110100001001001100010011110100001101001011--}

Perguntas frequentes

Quais formatos de código de barras o IronBarcode suporta no ASP.NET Core?

O IronBarcode suporta mais de 30 formatos de código de barras, incluindo QR Code, Data Matrix, Code 128, UPC-A, EAN-13, Code 39, PDF417, Aztec, MaxiCode, ITF e muitos outros. Ele abrange formatos lineares 1D e matriciais 2D.

Como retornar um código de barras gerado como uma imagem a partir de um controlador ASP.NET MVC?

Chame BarcodeWriter.CreateBarcode() com os dados e o formato de codificação, depois use ToPngBinaryData() para obter a matriz de bytes e retorne-a com File(bytes, 'image/png') da ação do controlador.

O IronBarcode consegue ler códigos de barras de imagens carregadas em ASP.NET?

Sim. Use BarcodeReader.Read() com um fluxo IFormFile para decodificar códigos de barras de imagens enviadas pelo usuário. O leitor retorna todos os códigos de barras detectados como uma coleção de objetos BarcodeResult.

Como incorporar um código de barras em uma view Razor sem salvar um arquivo?

Chame barcode.ToDataUrl() para obter uma string de URL de dados Base64, atribua-a a ViewBag e renderize-a na visualização Razor como o atributo src de um elemento img.

Quais versões do .NET o IronBarcode suporta?

O IronBarcode é compatível com .NET 6, 7, 8, 9, 10 e .NET Framework 4.6.2+. Ele funciona em Windows, Linux, macOS, Docker, Azure, AWS, Android e iOS.

Como lidar com dados de código de barras inválidos em ASP.NET?

Envolva o método BarcodeWriter.CreateBarcode() em um bloco try-catch para tratar a exceção IronBarCodeEncoderException. Valide o comprimento da entrada e o conjunto de caracteres em relação às restrições específicas do formato antes da codificação para evitar exceções.

O IronBarcode consegue exportar códigos de barras para PDF?

Sim. Chame o método SaveAsPdf() em qualquer objeto GeneratedBarcode para gerar um arquivo PDF. O método aceita um caminho de saída e dimensões de página opcionais para corresponder aos tamanhos físicos das etiquetas.

É necessário usar uma fonte de código de barras específica para o IronBarcode?

Não. O IronBarcode é autossuficiente e lida com toda a codificação e renderização internamente. Não são necessárias fontes de código de barras, bibliotecas GD ou configurações adicionais do sistema.

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