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

Como gerar códigos QR em C# com IronBarcode

O IronBarcode permite que desenvolvedores .NET criem códigos QR de forma eficiente usando sua classe QRCodeWriter. Ele suporta logotipos personalizados, cores, múltiplos formatos de saída e implantação multiplataforma, incluindo Windows, Linux, macOS e dispositivos móveis.

Este guia demonstra como usar o IronBarcode para gerar códigos QR para sistemas de produção. A API do IronBarcode adere às convenções do .NET enquanto fornece o desempenho e a confiabilidade necessários para aplicações empresariais. A biblioteca oferece documentação completa e suporta implantação em plataformas Windows, Linux, macOS e móveis. Para uma visão completa de todas as capacidades, explore a página de recursos. O guia rápido de código de barras oferece exemplos práticos imediatos para começar.

Quais são os benefícios de usar o IronBarcode para geração de códigos QR?

Por que escolher o IronBarcode em vez de outras bibliotecas?

Como gerar códigos QR com o IronBarcode?

As seções a seguir demonstram código pronto para produção seguindo os princípios SOLID. Você aprenderá a criar vários tipos de códigos QR, implementar estilos personalizados e garantir desempenho confiável de escaneamento. Os recursos da biblioteca incluem suporte para códigos de barras 1D e 2D além de códigos QR. Para cenários avançados, consulte o referência da API para assinaturas de métodos completas. Explore as demonstrações para ver as capacidades do IronBarcode em ação.

Como configurar um novo projeto?

Abra o Visual Studio e selecione Novo Projeto no menu Arquivo. Para implantações empresariais, considere revisar o guia do instalador MSI para instalações automatizadas. A visão geral de introdução fornece instruções completas de configuração.

Escolha o template Aplicativo de Console e clique em Avançar.

Insira seu nome de projeto preferido (como Gerador de Código QR) e especifique a localização. Clique em Avançar.

Selecione um .NET Framework do menu suspenso (.NET 6.0 (Suporte de longo prazo)) e clique em Criar. O IronBarcode suporta todas as versões modernas do .NET conforme detalhado na documentação de compatibilidade. Para requisitos específicos de plataforma, verifique o guia de integração com Blazor.

Quais métodos de instalação estão disponíveis?

Instale o IronBarcode usando um dos quatro métodos adequados a diferentes fluxos de trabalho. As demonstrações ao vivo da biblioteca demonstram as capacidades de reconhecimento de código de barras em tempo real. Para testes rápidos, explore o exemplo de início rápido de código de barras.

Como instalo usando a Interface do Gerenciador de Pacotes do Visual Studio?

Vá para Ferramentas > Gerenciador de Pacotes NuGet > Gerenciar Pacotes NuGet para a solução...

Ou clique com o botão direito no seu projeto no Solution Explorer e selecione Gerenciar Pacotes NuGet...

Clique em Procurar, pesquise Barcode, selecione IronBarcode, escolha seu projeto e clique em Instalar. Para instalações específicas da plataforma, veja o guia de pacotes NuGet. Se você encontrar problemas, consulte o guia de resolução de problemas do NuGet. A biblioteca suporta vários cenários de implantação, incluindo AWS Lambda e Azure Functions.

Como instalo usando o Console do Gerenciador de Pacotes?

Abra Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes e execute:

Install-Package BarCode

Isso instala a biblioteca no seu projeto atual. Para implantações em contêineres, siga o guia de configuração do Docker. Ao usar chaves de licença, garanta a configuração adequada para o ambiente de implantação.

Como faço para baixar do NuGet ou do site da IronBarcode?

Baixe do site da Galeria NuGet ou visite a página inicial da IronBarcode para obter o mais recente DLL de código de barras .NET. Adicione o DLL ao seu projeto via Adicionar > Referência no Solution Explorer. Para solucionar problemas de DLL, veja o guia de DLL ausente. Ao encontrar problemas de execução, consulte o guia de exceção de cópia de tempo de execução.

Como posso criar e personalizar imagens de QR Code?

Como gerar um QR Code básico?

Crie códigos QR usando o método CreateQrCode da classe QRCodeWriter. Para um exemplo completo, veja o tutorial de gerador de QR code em C#. A biblioteca suporta criando imagens de código de barras em vários formatos:

using IronBarCode;

// Basic QR code generation with medium error correction
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0);
qrCode.SaveAsPng("MyQR.png");

// Generate QR code with automatic sizing and highest error correction
var autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example");
autoQr.SaveAsJpeg("AutoQR.jpg");

// Production-ready QR code with validation
public GeneratedBarcode CreateValidatedQrCode(string data, int size = 600)
{
    if (string.IsNullOrWhiteSpace(data))
        throw new ArgumentException("Data cannot be empty");

    if (data.Length > 2953) // QR Code capacity at highest error correction
        throw new ArgumentException("Data exceeds QR code capacity");

    var qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High);
    qr.VerifyQrCode(); // Verify the generated code is valid
    return qr;
}
using IronBarCode;

// Basic QR code generation with medium error correction
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0);
qrCode.SaveAsPng("MyQR.png");

// Generate QR code with automatic sizing and highest error correction
var autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example");
autoQr.SaveAsJpeg("AutoQR.jpg");

// Production-ready QR code with validation
public GeneratedBarcode CreateValidatedQrCode(string data, int size = 600)
{
    if (string.IsNullOrWhiteSpace(data))
        throw new ArgumentException("Data cannot be empty");

    if (data.Length > 2953) // QR Code capacity at highest error correction
        throw new ArgumentException("Data exceeds QR code capacity");

    var qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High);
    qr.VerifyQrCode(); // Verify the generated code is valid
    return qr;
}
$vbLabelText   $csharpLabel

O método CreateQrCode aceita:

  • Necessário: dados a codificar (String ou Stream)
  • Opcional: dimensões gráficas (padrão 500x500px)
  • Opcional: nível de correção de erro (Baixo 7%, Médio 15%, Alto 25%, Máximo 30%)
  • Opcional: número de versão do QR (0 para automático)

Para processamento em lote de alto desempenho, use operações assíncronas e estilização personalizada. Ao trabalhar com condições imperfeitas, use os recursos de tolerância a falhas. O tutorial de leitura de códigos de barras demonstra como verificar códigos gerados.

Quais tipos de dados posso codificar em QR Codes?

Os tipos de dados comuns de QR code para aplicações de produção incluem criação de códigos de barras a partir de várias fontes. Para exemplos detalhados, veja o exemplo de criação de QR code. IronBarcode suporta códigos de barras Unicode para codificação de caracteres internacionais:

QR Codes de URL:

// Generate QR code for website URL
var urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800);
urlQr.SetMargins(10); // Add quiet zone
urlQr.SaveAsPng("campaign-qr.png");

// Advanced URL QR code with tracking
public GeneratedBarcode CreateTrackableUrlQr(string baseUrl, Dictionary<string, string> utmParams)
{
    var uriBuilder = new UriBuilder(baseUrl);
    var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query);

    foreach (var param in utmParams)
        query[param.Key] = param.Value;

    uriBuilder.Query = query.ToString();
    var qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000);
    return qr;
}
// Generate QR code for website URL
var urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800);
urlQr.SetMargins(10); // Add quiet zone
urlQr.SaveAsPng("campaign-qr.png");

// Advanced URL QR code with tracking
public GeneratedBarcode CreateTrackableUrlQr(string baseUrl, Dictionary<string, string> utmParams)
{
    var uriBuilder = new UriBuilder(baseUrl);
    var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query);

    foreach (var param in utmParams)
        query[param.Key] = param.Value;

    uriBuilder.Query = query.ToString();
    var qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000);
    return qr;
}
$vbLabelText   $csharpLabel

Informações de contato vCard:

string vCard = @"BEGIN:VCARD
VERSION:3.0
FN:John Smith
ORG:Tech Corp
TEL:+1-555-0123
EMAIL:john@example.com
END:VCARD";

var contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium);
contactQr.SaveAsPng("contact-card.png");
string vCard = @"BEGIN:VCARD
VERSION:3.0
FN:John Smith
ORG:Tech Corp
TEL:+1-555-0123
EMAIL:john@example.com
END:VCARD";

var contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium);
contactQr.SaveAsPng("contact-card.png");
$vbLabelText   $csharpLabel

Configuração WiFi:

string wifiConfig = "WIFI:T:WPA;S:NetworkName;P:Password123;;";
var wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500);
wifiQr.SaveAsPng("wifi-config.png");
string wifiConfig = "WIFI:T:WPA;S:NetworkName;P:Password123;;";
var wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500);
wifiQr.SaveAsPng("wifi-config.png");
$vbLabelText   $csharpLabel

IronBarcode lida com suporte Unicode para caracteres internacionais e suporta formatos como Micro QR e rMQR para aplicações com restrição de espaço. Para formatos especializados, explore o marco de novos formatos. Ao trabalhar com formatos de dados especializados, a biblioteca pode ler de streams e exportar como streams para uso eficiente da memória.

Como posso adicionar logos e estilização personalizada?

Use CreateQrCodeWithLogo para adicionar logotipos de empresas aos códigos QR. Para opções completas de estilização, veja o exemplo de QR code personalizado e o guia de estilização de QR code. A biblioteca também suporta estilização de código de barras geral para todos os tipos de código de barras:

// Create QR code with embedded logo
var qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500);
qrWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkRed);
qrWithLogo.SaveAsPng("Logo_QR_Code.png");

// Advanced logo customization
var logo = new QRCodeLogo("company-logo.png")
{
    Width = 100,
    Height = 100,
    CornerRadius = 5
};
var advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600);

// Production-ready branded QR code
public GeneratedBarcode CreateBrandedQrCode(string data, string logoPath, string brandColor)
{
    var logo = new QRCodeLogo(logoPath)
    {
        Width = 80,
        Height = 80,
        CornerRadius = 10
    };

    var qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800);
    qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(brandColor));
    qr.SetMargins(15);
    return qr;
}
// Create QR code with embedded logo
var qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500);
qrWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkRed);
qrWithLogo.SaveAsPng("Logo_QR_Code.png");

// Advanced logo customization
var logo = new QRCodeLogo("company-logo.png")
{
    Width = 100,
    Height = 100,
    CornerRadius = 5
};
var advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600);

// Production-ready branded QR code
public GeneratedBarcode CreateBrandedQrCode(string data, string logoPath, string brandColor)
{
    var logo = new QRCodeLogo(logoPath)
    {
        Width = 80,
        Height = 80,
        CornerRadius = 10
    };

    var qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800);
    qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(brandColor));
    qr.SetMargins(15);
    return qr;
}
$vbLabelText   $csharpLabel

Aplique estilização adicional com recursos de personalização de código de barras. O recurso de estilização de códigos de barras oferece opções completas de personalização:

// Use HTML color codes for brand colors
qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000"));
qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray);
qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME");
qrWithLogo.AddAnnotationTextBelowBarcode("Company Name");
// Use HTML color codes for brand colors
qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000"));
qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray);
qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME");
qrWithLogo.AddAnnotationTextBelowBarcode("Company Name");
$vbLabelText   $csharpLabel

Quais formatos de exportação estão disponíveis?

Salve QR codes em vários formatos para diferentes casos de uso. Saiba mais no exemplo de salvar código de barras e no tutorial de gerador de imagem de código de barras. Para requisitos especializados, consulte o guia sobre criação de imagens de código de barras 1-BPP:

// Image formats
qrWithLogo.SaveAsJpeg("qr.jpg");
qrWithLogo.SaveAsPng("qr.png");
qrWithLogo.SaveAsGif("qr.gif");
qrWithLogo.SaveAsTiff("qr.tiff");

// Web formats
qrWithLogo.SaveAsHtmlFile("qr.html");
string dataUrl = qrWithLogo.ToDataUrl();

// Print formats
qrWithLogo.SaveAsPdf("qr.pdf");
qrWithLogo.ChangeBarcodeDpi(300);

// API formats
byte[] qrBytes = qrWithLogo.ToPngBinaryData();
var stream = qrWithLogo.ToStream();

// High-quality print export
public void ExportForPrint(GeneratedBarcode qr, string filename)
{
    qr.ChangeBarcodeDpi(600); // Alto DPI for print
    qr.ResizeTo(2000, 2000); // Large size
    qr.SaveAsTiff(filename); // Lossless format
}
// Image formats
qrWithLogo.SaveAsJpeg("qr.jpg");
qrWithLogo.SaveAsPng("qr.png");
qrWithLogo.SaveAsGif("qr.gif");
qrWithLogo.SaveAsTiff("qr.tiff");

// Web formats
qrWithLogo.SaveAsHtmlFile("qr.html");
string dataUrl = qrWithLogo.ToDataUrl();

// Print formats
qrWithLogo.SaveAsPdf("qr.pdf");
qrWithLogo.ChangeBarcodeDpi(300);

// API formats
byte[] qrBytes = qrWithLogo.ToPngBinaryData();
var stream = qrWithLogo.ToStream();

// High-quality print export
public void ExportForPrint(GeneratedBarcode qr, string filename)
{
    qr.ChangeBarcodeDpi(600); // Alto DPI for print
    qr.ResizeTo(2000, 2000); // Large size
    qr.SaveAsTiff(filename); // Lossless format
}
$vbLabelText   $csharpLabel

Para operações específicas de PDF, veja os guias sobre criação de códigos de barras como PDF e estampar códigos de barras em PDFs existentes. Ao ler códigos de barras de PDFs, use as configurações do leitor de código de barras de PDF para resultados ideais.

Como Implemento Códigos QR em Aplicações Web?

Para aplicações ASP.NET MVC, implemente fluxo sem E/S de arquivos. A biblioteca suporta criar códigos de barras como HTML para integração direta na web:

public IActionResult GetQrCode(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 400);
    byte[] qrBytes = qr.ToPngBinaryData();
    return File(qrBytes, "image/png", "qrcode.png");
}

// Stream directly without disk I/O
public IActionResult StreamQrCode(string content)
{
    var qr = QRCodeWriter.CreateQrCode(content, 500);
    var stream = qr.ToStream();
    return File(stream, "image/png");
}

// Generate HTML-embedded QR codes
public IActionResult GetHtmlQrCode(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 400);
    var htmlString = qr.ToHtmlTag();
    return Content(htmlString, "text/html");
}
public IActionResult GetQrCode(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 400);
    byte[] qrBytes = qr.ToPngBinaryData();
    return File(qrBytes, "image/png", "qrcode.png");
}

// Stream directly without disk I/O
public IActionResult StreamQrCode(string content)
{
    var qr = QRCodeWriter.CreateQrCode(content, 500);
    var stream = qr.ToStream();
    return File(stream, "image/png");
}

// Generate HTML-embedded QR codes
public IActionResult GetHtmlQrCode(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 400);
    var htmlString = qr.ToHtmlTag();
    return Content(htmlString, "text/html");
}
$vbLabelText   $csharpLabel

Para aplicações Blazor, implemente uma geração reativa de códigos QR:

@page "/qrcode"
@using IronBarCode

<input @bind="qrText" placeholder="Enter text" />
<button @onclick="GenerateQr">Generate</button>

@if (!string.IsNullOrEmpty(QrCodeDataUrl))
{
    <img src="@QrCodeDataUrl" alt="QR Code" />
}

@code {
    private string qrText = "";
    private string QrCodeDataUrl = "";

    private void GenerateQr()
    {
        if (!string.IsNullOrEmpty(qrText))
        {
            var qr = QRCodeWriter.CreateQrCode(qrText, 400);
            QrCodeDataUrl = qr.ToDataUrl();
        }
    }
}
@page "/qrcode"
@using IronBarCode

<input @bind="qrText" placeholder="Enter text" />
<button @onclick="GenerateQr">Generate</button>

@if (!string.IsNullOrEmpty(QrCodeDataUrl))
{
    <img src="@QrCodeDataUrl" alt="QR Code" />
}

@code {
    private string qrText = "";
    private string QrCodeDataUrl = "";

    private void GenerateQr()
    {
        if (!string.IsNullOrEmpty(qrText))
        {
            var qr = QRCodeWriter.CreateQrCode(qrText, 400);
            QrCodeDataUrl = qr.ToDataUrl();
        }
    }
}
$vbLabelText   $csharpLabel

Para exportar códigos de barras como HTML, revise o guia de criação de código de barras como HTML. Ao aplicar licenças em aplicações web, veja o guia da chave de licença web.config.

Quais São as Melhores Práticas para Implementação de Códigos QR?

Qual Nível de Correção de Erros Devo Escolher?

A correção de erros afeta a resiliência e a capacidade. Para informações detalhadas, veja o guia de correção de erros. A biblioteca inclui limiares de confiança de aprendizado de máquina para melhorar a precisão:

Nível Recuperação Caso de uso
Baixo 7% Ambientes digitais limpos
Médio 15% Materiais impressos, cartões de visita
Alto 25% Sinalização externa, itens manuseados
Maior 30% Uso industrial, logotipos adicionados

Qual Deve Ser o Tamanho dos Meus Códigos QR?

Calcule o tamanho ideal com base na distância de escaneamento. Saiba sobre configuração de margens para melhorar o escaneamento. O exemplo de configuração de margem demonstra as melhores práticas:

// 1:10 ratio - 1cm QR per 10cm distance
int CalculateQrSize(double scanDistanceMeters)
{
    int sizeInCm = (int)(scanDistanceMeters * 10);
    return (int)(sizeInCm * 37.8); // Convert to pixels at 96 DPI
}

// Set appropriate margins for reliable scanning
public GeneratedBarcode CreateScanOptimizedQr(string data, int scanDistance)
{
    int size = CalculateQrSize(scanDistance);
    var qr = QRCodeWriter.CreateQrCode(data, size);
    qr.SetMargins(size / 20); // 5% margin
    return qr;
}
// 1:10 ratio - 1cm QR per 10cm distance
int CalculateQrSize(double scanDistanceMeters)
{
    int sizeInCm = (int)(scanDistanceMeters * 10);
    return (int)(sizeInCm * 37.8); // Convert to pixels at 96 DPI
}

// Set appropriate margins for reliable scanning
public GeneratedBarcode CreateScanOptimizedQr(string data, int scanDistance)
{
    int size = CalculateQrSize(scanDistance);
    var qr = QRCodeWriter.CreateQrCode(data, size);
    qr.SetMargins(size / 20); // 5% margin
    return qr;
}
$vbLabelText   $csharpLabel

Como Garanto a Compatibilidade Móvel?

Melhore para escaneamento móvel usando configurações do leitor de código de barras. Ao lidar com problemas de reconhecimento, consulte o guia de solução de problemas de código de barras não reconhecido:

public GeneratedBarcode CreateMobileOptimizedQr(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium);
    qr.SetMargins(20); // Adequate quiet zone
    qr.ChangeBarCodeColor(System.Drawing.Color.Black);
    qr.ChangeBackgroundColor(System.Drawing.Color.White);
    return qr;
}
public GeneratedBarcode CreateMobileOptimizedQr(string data)
{
    var qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium);
    qr.SetMargins(20); // Adequate quiet zone
    qr.ChangeBarCodeColor(System.Drawing.Color.Black);
    qr.ChangeBackgroundColor(System.Drawing.Color.White);
    return qr;
}
$vbLabelText   $csharpLabel

Para desenvolvimento móvel multiplataforma, explore o tutorial de scanner de código de barras .NET MAUI. A biblioteca suporta nativamente as plataformas iOS e Android. ## Cenários Comuns de Integração

Criando Códigos QR para Campanhas de Marketing

Para implementar códigos QR de marketing rastreáveis com branding personalizado, consulte o guia de velocidades de leitura para gerenciar a velocidade de leitura de código de barras:

public GeneratedBarcode CreateCampaignQr(string campaignId, string userId)
{
    string trackingUrl = "___PROTECTED_URL_79___";
    var qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000);
    qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#1E3A8A"));
    qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}");
    return qr;
}

// Batch generate campaign materials
public async Task GenerateCampaignBatch(List<string> userIds, string campaignId)
{
    var tasks = userIds.Select(async userId =>
    {
        var qr = CreateCampaignQr(campaignId, userId);
        await Task.Run(() => qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png"));
    });

    await Task.WhenAll(tasks);
}
public GeneratedBarcode CreateCampaignQr(string campaignId, string userId)
{
    string trackingUrl = "___PROTECTED_URL_79___";
    var qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000);
    qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#1E3A8A"));
    qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}");
    return qr;
}

// Batch generate campaign materials
public async Task GenerateCampaignBatch(List<string> userIds, string campaignId)
{
    var tasks = userIds.Select(async userId =>
    {
        var qr = CreateCampaignQr(campaignId, userId);
        await Task.Run(() => qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png"));
    });

    await Task.WhenAll(tasks);
}
$vbLabelText   $csharpLabel

Gerando Códigos QR para Rótulos de Produtos

Crie códigos QR para gestão de inventário. Para lidar com formatos especiais, veja o guia de solução de problemas GS1-128. Ao trabalhar com tipos específicos de código de barras como Code 39 ou códigos MSI, consulte guias específicos de formato:

public void GenerateProductLabel(Product product)
{
    var productData = new
    {
        sku = product.SKU,
        batch = product.BatchNumber,
        expiry = product.ExpiryDate.ToString("yyyy-MM-dd")
    };

    string json = System.Text.Json.JsonSerializer.Serialize(productData);
    var qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High);
    qr.AddAnnotationTextAboveBarcode(product.Name);
    qr.SaveAsPng($"labels/product-{product.SKU}.png");
}

// Generate 1-BPP labels for thermal printers
public void GenerateThermalLabel(Product product)
{
    var qr = CreateProductQr(product);
    qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png");
}
public void GenerateProductLabel(Product product)
{
    var productData = new
    {
        sku = product.SKU,
        batch = product.BatchNumber,
        expiry = product.ExpiryDate.ToString("yyyy-MM-dd")
    };

    string json = System.Text.Json.JsonSerializer.Serialize(productData);
    var qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High);
    qr.AddAnnotationTextAboveBarcode(product.Name);
    qr.SaveAsPng($"labels/product-{product.SKU}.png");
}

// Generate 1-BPP labels for thermal printers
public void GenerateThermalLabel(Product product)
{
    var qr = CreateProductQr(product);
    qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png");
}
$vbLabelText   $csharpLabel

Para impressão de etiquetas especializadas, revise o guia de imagem de código de barras 1-BPP. Ao ler documentos multipágina, veja o guia de GIF e TIFF multipágina.

Melhorando o Desempenho de Escaneamento de Códigos de Barras

Para aplicações de escaneamento de alto volume, implemente regiões de recorte para limitar áreas de escaneamento e melhorar o desempenho. As opções de velocidade de leitura oferecem controle afinado sobre o compromisso precisão-velocidade:

// Define crop region for faster scanning
var cropRegion = new Rectangle(100, 100, 300, 300);
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode,
    CropArea = cropRegion
};

var results = BarcodeReader.Read("image.png", options);
// Define crop region for faster scanning
var cropRegion = new Rectangle(100, 100, 300, 300);
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode,
    CropArea = cropRegion
};

var results = BarcodeReader.Read("image.png", options);
$vbLabelText   $csharpLabel

Ao trabalhar com objetos System.Drawing, a biblioteca fornece compatibilidade cruzada de plataforma através de IronDrawing.

Principais conclusões

IronBarcode oferece uma solução completa para geração de códigos QR em aplicações .NET. A biblioteca fornece APIs intuitivas, extensa documentação, e recursos prontos para produção, incluindo tolerância a falhas, suporte multiplataforma, e otimização de desempenho. Mantenha-se atualizado com os últimos recursos através do registro de alterações. Para implantações preocupadas com a segurança, revise as divulgações de CVE de segurança.

Encontre informações sobre licenciamento na página de licenciamento. IronBarcode oferece uma licença de desenvolvedor gratuita com opções premium, incluindo suporte e atualizações. Para clientes existentes, explore extensões de licença e opções de upgrades. Se precisar de assistência com o licenciamento, consulte o guia de aplicação de chave de licença e a configuração de licenciamento do web.config.

Para implantações em produção, considere os guias para AWS Lambda, Azure Functions e contêineres Docker. Para solucionar problemas específicos de implantação, veja o guia de tempo de execução do AWS Lambda e as soluções para exceções de cópia de tempo de execução. Ao experimentar falsos positivos, consulte o guia detalhado de solução de problemas.

Para suporte técnico, envie um pedido de engenharia. A biblioteca passa por atualizações regulares, como mostrado na seção de atualizações de produtos, garantindo compatibilidade contínua e novos recursos.

Começando com um Exemplo Rápido de Código QR

Gere um código QR com estilo personalizado em apenas algumas linhas de código. Para mais exemplos, visite o exemplo de criação de código de barras e explore o tutorial de leitura de códigos de barras para soluções completas de códigos de barras. Exemplos adicionais incluem leitura de códigos de barras de PDFs e criação de códigos de barras a partir de dados:

using IronBarCode;

// Create QR code with custom size and error correction
var qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High);

// Add styling
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy);
qrCode.AddBarcodeValueTextBelowBarcode();

// Save as image
qrCode.SaveAsPng("quickstart-qr.png");

// Export for API
byte[] pngBytes = qrCode.ToPngBinaryData();
using IronBarCode;

// Create QR code with custom size and error correction
var qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High);

// Add styling
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy);
qrCode.AddBarcodeValueTextBelowBarcode();

// Save as image
qrCode.SaveAsPng("quickstart-qr.png");

// Export for API
byte[] pngBytes = qrCode.ToPngBinaryData();
$vbLabelText   $csharpLabel

IronBarcode suporta implantação em AWS Lambda, Azure, Docker e plataformas móveis através do .NET MAUI. Para suporte técnico, envie um pedido de engenharia. Revise as divulgações de CVE de segurança para requisitos de segurança corporativa.

Explore os recursos de leitura de códigos de barras para entender todas as capacidades de reconhecimento de códigos de barras, incluindo suporte para leitura de códigos de barras Code 39 e outros formatos especializados. O conjunto completo de recursos da biblioteca a torna adequada para aplicações empresariais que exigem capacidades confiáveis de geração e escaneamento de códigos de barras.

Perguntas frequentes

Como faço para gerar um código QR em uma aplicação .NET?

Você pode gerar um código QR em uma aplicação .NET usando o método QRCodeWriter.CreateQrCode do IronBarcode. Esse método permite especificar os dados do código QR, o tamanho e o nível de correção de erros.

Quais são as opções de personalização disponíveis para códigos QR?

O IronBarcode permite a personalização de códigos QR, incluindo a alteração de cores e a incorporação de imagens, como logotipos da empresa. Esses recursos aprimoram o apelo visual e a integração da marca aos códigos QR.

Como posso instalar a biblioteca IronBarcode no meu projeto?

Você pode instalar o IronBarcode em seu projeto através da interface do Gerenciador de Pacotes NuGet do Visual Studio, do Console do Gerenciador de Pacotes ou baixando-o do site do NuGet.

O IronBarcode pode ser usado para ler códigos de barras em frames de vídeo?

Sim, o IronBarcode consegue processar quadros de vídeo, permitindo a leitura de códigos de barras em tempo real, corrigindo a rotação e o ruído, aumentando assim a eficiência da leitura.

Quais formatos de arquivo podem ser usados para salvar códigos QR gerados com o IronBarcode?

Os códigos QR gerados com o IronBarcode podem ser salvos em vários formatos, incluindo PNG e HTML, proporcionando flexibilidade para diferentes necessidades de aplicação.

O IronBarcode é adequado tanto para aplicações de console quanto para aplicações web?

Sim, o IronBarcode é versátil e pode ser usado tanto em aplicações de console quanto em aplicações web .NET MVC, tornando-o uma escolha robusta para diversos ambientes de desenvolvimento.

Quais são os níveis de correção de erros disponíveis para códigos QR no IronBarcode?

O IronBarcode oferece suporte a quatro níveis de correção de erros para códigos QR: Baixo, Médio, Alto e Máximo, garantindo a integridade dos dados mesmo se o código QR for danificado.

Quais são as opções de licenciamento para o IronBarcode?

A IronBarcode oferece uma licença de desenvolvedor gratuita e uma versão premium que inclui suporte e atualizações adicionais, atendendo a diferentes necessidades de desenvolvimento e negócios.

O IronBarcode é compatível com .NET Core e .NET Framework?

Sim, o IronBarcode é compatível com .NET Core e .NET Framework, suportando diversas arquiteturas, incluindo sistemas de 32 e 64 bits.

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