Como criar um código de barras a partir de dados em C#

Criar Código de Barras a partir de Textoo, URLs, IDs e Dados Binários em C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode permite que os desenvolvedores C# gerem códigos de barras a partir de várias fontes de dados, incluindo strings, arrays de bytes e fluxos de memória, usando o método BarcodeWriter.CreateBarcode() com suporte para múltiplos formatos de código de barras como QR Code, Code128 e PDF417.

Início Rápido: Crie um Código de Barras a partir de String em Uma Linha

Use a API do IronBarcode para gerar códigos de barras com configuração mínima. Este exemplo mostra como criar um código de barras a partir de uma string simples usando apenas uma linha de código. Para exemplos abrangentes, confira o guia Início Rápido de Código de Barras.

  1. Instale IronBarcode com o Gerenciador de Pacotes NuGet

    PM > Install-Package BarCode
  2. Copie e execute este trecho de código.

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Order123", IronBarCode.BarcodeWriterEncoding.Code128);
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronBarcode em seu projeto hoje com uma avaliação gratuita

    arrow pointer


Como faço para criar Código de Barras a partir de String?

Quais Formatos de Código de Barras Funcionam Melhor para Diferentes Tipos de String?

Diferentes formatos de código de barras são otimizados para tipos de dados e casos de uso específicos. Compreender os formatos de código de barras suportados ajuda a selecionar a codificação correta:

  • Códigos QR: Melhor para URLs, endereços de e-mail e dados de texto extensos. Suporta até 4.296 caracteres alfanuméricos com correção de erros.
  • Code128: Ideal para dados alfanuméricos como números de pedidos e códigos de série. Altamente eficiente para aplicações modernas.
  • PDF417: Perfeito para dados complexos como bilhetes de voos e IDs governamentais. Armazena até 1.850 caracteres alfanuméricos.
  • Code93: Excelente para serviços postais e rastreamento de inventário com dados numéricos compactos.
  • Aztec: Ótimo para bilhetagem móvel e transporte, requerendo menos espaço que os códigos QR.

O código a seguir demonstra como escrever códigos de barras com uma string:

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-string.cs
using IronBarCode;

string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/barcode/";
string receiptID = "2023-08-04-12345"; // Receipt ID (numeric id)
string flightID = "FLT2023NYC-LAX123456"; // Flight ID (alphanumeric id)
string number = "1234";

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
$vbLabelText   $csharpLabel

Quais são os Resultados dos Códigos de Barras Gerados?

Este código codifica cinco exemplos de dados diferentes em cinco tipos de código de barras: texto simples para Aztec, URL para QR Code, ID numérico para Code 93, ID alfanumérico para PDF417, e número para Codabar. Imagens são salvas como PNG. Para opções avançadas de exportação, veja o guia Criar Código de Barras como Imagem.

Aztec barcode containing 'Hello, World!' text with characteristic square spiral pattern
QR code generated from URL input demonstrating barcode creation functionality
Generated Code93 barcode example showing vertical black and white bars pattern
PDF417 barcode with stacked rows encoding flight ID alphanumeric data
Codabar barcode displaying numeric data with start/stop characters

Como Posso Personalizar Códigos de Barras Gerados?

Após criar seu código de barras, melhore sua aparência usando os recursos de estilo do IronBarcode. Veja como criar um código de barras personalizado com cores, anotações e margens:

using IronBarCode;

// Create a barcode with custom styling
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128);

// Apply custom styling
myBarcode.ResizeTo(300, 100);
myBarcode.SetMargins(10);
myBarcode.ChangeBarCodeColor(Color.DarkBlue);

// Add text annotations
myBarcode.AddBarcodeValueTextoBelowBarcode();
myBarcode.AddAnnotationTextoAboveBarcode("Product SKU", Font.Arial, Color.Black, 12);

// Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png");
using IronBarCode;

// Create a barcode with custom styling
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128);

// Apply custom styling
myBarcode.ResizeTo(300, 100);
myBarcode.SetMargins(10);
myBarcode.ChangeBarCodeColor(Color.DarkBlue);

// Add text annotations
myBarcode.AddBarcodeValueTextoBelowBarcode();
myBarcode.AddAnnotationTextoAboveBarcode("Product SKU", Font.Arial, Color.Black, 12);

// Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png");
$vbLabelText   $csharpLabel

Para mais opções de estilo, explore o tutorial Customizar e Estilizar Códigos de Barras.

Como Eu Crio Código de Barras a Partir de Array de Bytes?

Por Que a Codificação de Caracteres Importa para Códigos de Barras em Array de Bytes?

Para criar códigos de barras a partir de arrays de bytes, certifique-se de que a codificação de caracteres esteja alinhada com o necessário BarcodeEncoding, já que cada tipo de código de barras aceita diferentes codificações de caracteres. Compreender os formatos de dados de saída garante compatibilidade. Aqui estão as codificações de caracteres disponíveis no IronBarcode:

  • ASCII: Usa 7 bits por caractere para letras, dígitos e pontuação em inglês. Exemplo: 'A' = 65.
  • UTF-8: Codificação de comprimento variável para todos os caracteres Unicode. Exemplo: € = 0xE2 0x82 0xAC.
  • UTF-16: Usa sequências de 16 bits para Unicode. Exemplo: α = 0x03B1.
  • UTF-32: Sequência fixa de 32 bits por caractere. Exemplo: α = 0x000003B1.
  • ISO-8859-1: Estende ASCII para línguas da Europa Ocidental. Exemplo: é = 233.

[{i:A codificação de caracteres padrão no IronBarcode é ISO-8859-1.}]

Como Eu Converto Arrays de Bytes em Códigos de Barras?

O código a seguir demonstra a geração de um código de barras a partir de dados em byte:

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-byte.cs
using IronBarCode;
using System.Text;

byte[] text = Encoding.UTF8.GetBytes("Hello, World!");
byte[] url = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
byte[] receiptID = Encoding.UTF8.GetBytes("2023-08-04-12345"); // Receipt ID (numeric id)
byte[] flightID = Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456"); // Flight id (alphanumeric id)
byte[] number = Encoding.UTF8.GetBytes("1234");

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
$vbLabelText   $csharpLabel

Este trecho transforma cinco entradas de string em objetos System.Byte[]. Para converter esses arrays de bytes em códigos de barras, passe-os para BarcodeWriter com o desejado BarcodeEncoding. Opcionalmente, defina MaxWidth e MaxHeight para o tamanho do código de barras.

Trabalhando com Dados Binários e Caracteres Especiais

Ao trabalhar com dados binários ou caracteres especiais, use Escrevendo Códigos de Barras Unicode para suporte a caracteres internacionais. Aqui está um exemplo de tratamento de dados binários:

using IronBarCode;
using System.Texto;
using System.IO;

// Example: Encoding binary data (like a small file) into QR Code
byte[] binaryData = File.ReadAllBytes("document.pdf");
string base64Data = Convert.ToBase64String(binaryData);

// Create QR code with high error correction for binary data
GeneratedBarcode binaryBarcode = BarcodeWriter.CreateBarcode(
    base64Data, 
    BarcodeEncoding.QRCode
);

// Set high error correction for data integrity
binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High);

// Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500);
binaryBarcode.SaveAsPng("binary-data-qr.png");
using IronBarCode;
using System.Texto;
using System.IO;

// Example: Encoding binary data (like a small file) into QR Code
byte[] binaryData = File.ReadAllBytes("document.pdf");
string base64Data = Convert.ToBase64String(binaryData);

// Create QR code with high error correction for binary data
GeneratedBarcode binaryBarcode = BarcodeWriter.CreateBarcode(
    base64Data, 
    BarcodeEncoding.QRCode
);

// Set high error correction for data integrity
binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High);

// Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500);
binaryBarcode.SaveAsPng("binary-data-qr.png");
$vbLabelText   $csharpLabel

Como Eu Crio Código de Barras a Partir de Fluxo de Memória?

Quando Devo Usar Fluxos de Memória para Geração de Código de Barras?

Fluxos de memória funcionam melhor ao processar dados que não requerem armazenamento em disco, como conteúdo gerado dinamicamente em aplicações web ou processamento de banco de dados. O guia Exportar Código de Barras como Fluxo fornece contexto adicional para fluxos de trabalho baseados em fluxo.

O código a seguir demonstra a geração de um código de barras a partir de um fluxo de memória:

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-stream.cs
using IronBarCode;
using System.IO;
using System.Text;

MemoryStream text = new MemoryStream(Encoding.UTF8.GetBytes("Hello, World!"));
MemoryStream url = new MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/"));
MemoryStream receiptID = new MemoryStream(Encoding.UTF8.GetBytes("2023-08-04-12345")); // Receipt ID (numeric id)
MemoryStream flightID = new MemoryStream(Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456")); // Flight id (alphanumeric id)
MemoryStream number = new MemoryStream(Encoding.UTF8.GetBytes("1234"));

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
$vbLabelText   $csharpLabel

Quais São os Benefícios de Usar Fluxos de Memória?

Este trecho cria um MemoryStream de um objeto System.Byte[], depois o utiliza como entrada em BarcodeWriter.CreateBarcode() para gerar um código de barras a partir dos dados do fluxo de memória. Fluxos de memória oferecem várias vantagens:

  1. Desempenho: Sem operações de E/S de disco, mais rápido para dados temporários
  2. Segurança: Dados permanecem na memória, reduzindo a exposição de informações sensíveis
  3. Flexibilidade: Fácil integração com APIs e bibliotecas baseadas em fluxo
  4. Eficiência de Recursos: Gerenciamento e descarte automático de memória

Exemplo Avançado de Processamento de Fluxo

Para cenários complexos envolvendo processamento de fluxo, combine IronBarcode com outras operações de fluxo:

using IronBarCode;
using System.IO;
using System.Texto;

// Example: Processing multiple barcodes in a batch using streams
public static List<Stream> GenerateBarcodeStreams(List<string> dataItems)
{
    var barcodeStreams = new List<Stream>();

    foreach (var item in dataItems)
    {
        // Convert string to stream
        var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(item));

        // Generate barcode from stream
        var barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128);

        // Export barcode back to stream
        var outputStream = new MemoryStream();
        barcode.SaveAsPng(outputStream);
        outputStream.Position = 0; // Reset position for reading

        barcodeStreams.Add(outputStream);
    }

    return barcodeStreams;
}

// Usage example
var orderNúmeros = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(orderNúmeros);
using IronBarCode;
using System.IO;
using System.Texto;

// Example: Processing multiple barcodes in a batch using streams
public static List<Stream> GenerateBarcodeStreams(List<string> dataItems)
{
    var barcodeStreams = new List<Stream>();

    foreach (var item in dataItems)
    {
        // Convert string to stream
        var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(item));

        // Generate barcode from stream
        var barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128);

        // Export barcode back to stream
        var outputStream = new MemoryStream();
        barcode.SaveAsPng(outputStream);
        outputStream.Position = 0; // Reset position for reading

        barcodeStreams.Add(outputStream);
    }

    return barcodeStreams;
}

// Usage example
var orderNúmeros = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(orderNúmeros);
$vbLabelText   $csharpLabel

Para operações assíncronas e melhora de desempenho em aplicações multithread, veja o guia Usar Assíncrono e Multithread.

Perguntas frequentes

Como faço para criar um código de barras a partir de um texto em C#?

Você pode criar um código de barras a partir de um texto em C# usando o IronBarcode com apenas uma linha de código: `BarcodeWriter.CreateBarcode("YourText", BarcodeWriterEncoding.Code128)`. O IronBarcode suporta diversos formatos, incluindo QR Code, Code128, PDF417, Aztec e muitos outros.

Que tipos de dados posso codificar em códigos de barras?

O IronBarcode permite codificar vários tipos de dados, incluindo strings, URLs, IDs, dados binários (matrizes de bytes) e fluxos de memória. A biblioteca lida automaticamente com a conversão e a codificação com base no formato de código de barras escolhido.

Qual formato de código de barras devo usar para URLs?

Os códigos QR são a melhor opção para codificar URLs no IronBarcode. Eles podem armazenar até 4.296 caracteres alfanuméricos e incluem recursos de correção de erros, tornando-os ideais para endereços da web e endereços de e-mail.

Qual o melhor formato de código de barras para números de pedidos e códigos de série?

O Code128 é o formato ideal para dados alfanuméricos, como números de pedidos e códigos de série, quando usado com o IronBarcode. É altamente eficiente para aplicações modernas e oferece excelente densidade de dados para conjuntos de caracteres mistos.

Posso criar códigos de barras a partir de dados binários?

Sim, o IronBarcode suporta a criação de códigos de barras a partir de dados binários usando arrays System.Byte[] ou entradas System.IO.Stream através do método CreateBarcode, permitindo codificar qualquer tipo de informação binária.

Em que formatos de imagem posso salvar códigos de barras?

O IronBarcode permite salvar códigos de barras gerados em vários formatos de imagem, incluindo PNG, JPEG, BMP, GIF e TIFF. A biblioteca oferece opções flexíveis de exportação para diferentes casos de uso.

Qual a quantidade de dados que posso armazenar em um código de barras PDF417?

Os códigos de barras PDF417 criados com o IronBarcode podem armazenar até 1.850 caracteres alfanuméricos, tornando-os perfeitos para dados complexos como passagens aéreas, etiquetas de envio e documentos de identidade governamentais.

Qual o melhor formato de código de barras para bilhetes eletrônicos?

Os códigos de barras Aztec são ideais para bilhetagem móvel e aplicações de transporte quando usados com o IronBarcode. Eles exigem menos espaço do que os códigos QR, mantendo alta capacidade de dados e legibilidade em dispositivos móveis.

Hairil Hashimi Bin Omar
Engenheiro de Software
Como todo grande engenheiro, Hairil é um ávido aprendiz. Ele está aprimorando seus conhecimentos em C#, Python e Java, usando esse conhecimento para agregar valor aos membros da equipe da Iron Software. Hairil ingressou na equipe da Iron Software vindo da Universiti Teknologi MARA, na Malásia, onde se formou em ...
Leia mais
Pronto para começar?
Nuget Downloads 2,108,094 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package BarCode
executar um exemplo Veja seu fio se transformar em um código de barras.