Ir para o conteúdo do rodapé
COMPARAR COM OUTROS COMPONENTES

DevExpress Barcode vs IronBarcode: Comparação de bibliotecas de código de barras em C#

MESCIUS ComponentOne C1Código de barras vs IronBarcode

O controle de código de barras do MESCIUS ComponentOne (antigamente GrapeCity, rebatizado em 2023) gera códigos de barras dentro de aplicações Windows Forms, WPF, WinUI, Blazor, e ASP.NET Core MVC. Ele faz isso muito bem — a API é clara, a qualidade da saída é sólida e se integra naturalmente ao designer WinForms. Mas o âmbito de suas atividades é limitado. Não consegue ler códigos de barras. As edições WinForms e WPF rodam em um framework de destino exclusivo para Windows. E não é um produto autônomo — ele é enviado como parte do ComponentOne Studio Enterprise, uma assinatura de $1.299 por desenvolvedor por ano que inclui mais de 100 controles de UI. Se você está avaliando opções de código de barras para um projeto .NET e encontrou o ComponentOne em uma lista de comparação, este artigo explica o que esse escopo significa na prática.

Entendendo o código de barras C1

C1BarCode é um controle visual. O fluxo de trabalho de geração cria uma instância, define propriedades e chama GetImage() para recuperar um System.Drawing.Image:

// ComponentOne C1BarCode
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

// License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.Code128;
barcode.Text = "ITEM-12345";
barcode.BarHeight = 100;
barcode.ModuleSize = 2;
barcode.ShowText = true;
barcode.CaptionPosition = CaptionPosition.Below;

using var image = barcode.GetImage();
image.Save("barcode.png", System.Drawing.Imaging.ImageFormat.Png);
// ComponentOne C1BarCode
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

// License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.Code128;
barcode.Text = "ITEM-12345";
barcode.BarHeight = 100;
barcode.ModuleSize = 2;
barcode.ShowText = true;
barcode.CaptionPosition = CaptionPosition.Below;

using var image = barcode.GetImage();
image.Save("barcode.png", System.Drawing.Imaging.ImageFormat.Png);
Imports C1.Win.Barcode
Imports C1.BarCode
Imports System.Drawing
Imports System.Drawing.Imaging

' License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY"

Dim barcode As New C1BarCode()
barcode.CodeType = CodeType.Code128
barcode.Text = "ITEM-12345"
barcode.BarHeight = 100
barcode.ModuleSize = 2
barcode.ShowText = True
barcode.CaptionPosition = CaptionPosition.Below

Using image As Image = barcode.GetImage()
    image.Save("barcode.png", ImageFormat.Png)
End Using
$vbLabelText   $csharpLabel

A API de configuração de propriedades é familiar para desenvolvedores WinForms — ela mapeia diretamente para a superfície do designer. CodeType, BarHeight, ModuleSize, ShowText e CaptionPosition são todas propriedades visíveis pelo designer que funcionam de forma idêntica no código.

O C1BarCode suporta 38 simbologias que cobrem os formatos principais de 1D e 2D: Code 39, Code 128, EAN-8, EAN-13, UPC-A, UPC-E, ITF, Código QR, PDF417, e DataMatrix, entre outros. Para geração de códigos de barras, ele cobre os casos de uso comuns.

Sem API de leitura

Essa não é uma lacuna que uma opção de configuração preenche. Não há classe C1BarCodeReader. Não há método Decode() em C1BarCode. O controle de código de barras da ComponentOne é projetado para ser apenas de geração.

Se sua aplicação precisa escanear códigos de barras a partir de imagens carregadas, verificar etiquetas impressas, processar documentos com códigos incorporados ou extrair dados de códigos QR em uma API web — nada disso é possível com o C1BarCode. Você precisaria de uma biblioteca separada para leitura, o que levanta a questão de por que pagar por um componente exclusivo para geração de código de barras dentro de um Suite Enterprise com mais de 100 controles, quando bibliotecas de código de barras independentes abrangem ambas as operações.

A ausência de uma API de leitura não é incomum para controles de código de barras WinForms projetados para impressão. O que torna isso um ponto de decisão é quando os requisitos aumentam — e os requisitos de código de barras quase sempre aumentam.

Restrição exclusiva do Windows

As edições WinForms e WPF do C1BarCode exigem uma configuração de framework de destino específica do Windows:


<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>

<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
XML

O moniker do framework de destino net8.0-windows e UseWindowsForms não são preferências opcionais. C1.Win.BarCode depende dos tipos System.Windows.FormsUserControl, PaintEventArgs, Graphics — que existem apenas no Windows. Remover net8.0-windows quebra a compilação. ComponentOne realmente envia edições Blazor e ASP.NET Core MVC do controle de código de barras que têm como alvo TFMs multiplataforma, mas os pacotes WinForms e WPF são exclusivos do Windows.

Em contraste,IronBarcode tem como alvo net8.0 (ou qualquer TFM suportado) sem restrições de plataforma:


<TargetFramework>net8.0</TargetFramework>

<TargetFramework>net8.0</TargetFramework>
XML

Isso é importante em diversos cenários práticos:

  • Azure App Service no Linux: Plano padrão para novas implantações do App Service. net8.0-windows não pode tê-lo como alvo.
  • Contêineres Docker: Contêineres Linux são o padrão. Um contêiner Windows é maior, custa mais e não está disponível em muitos planos de nuvem.
  • API Web ASP.NET Core : Um endpoint de geração de código de barras que só pode ser implantado no Windows é uma restrição de implantação que a equipe eventualmente precisará remover.
  • Azure Functions: O plano de consumo é executado no Linux. Uma função de geração de código de barras com um alvo net8.0-windows não pode ser implantada no plano de Consumo.
  • Desenvolvimento no macOS: Desenvolvedores no macOS não podem executar um projeto net8.0-windows localmente, nem mesmo para testar a lógica de geração.

A restrição de plataforma não é um problema se o seu aplicativo for uma ferramenta de desktop WinForms que só será executada no Windows. Isso se torna um problema no momento em que os requisitos de implantação incluem qualquer ambiente Linux ou em nuvem.

Pacotes de Suite

O controle C1BarCode é vendido como parte do ComponentOne Studio Enterprise, que inclui a suíte completa de controles ComponentOne para WinForms, WPF, Blazor, e ASP.NET. O preço do ComponentOne Studio Enterprise é $1.299 por desenvolvedor por ano (assinatura); edições de plataforma única (WinForms ou WPF) são $799 por desenvolvedor por ano.

Esse Suite inclui mais de 100 componentes: grades, gráficos, agendadores, controles de entrada, designers de relatórios, controles de mapa, medidores e muito mais. Se você está construindo uma aplicação intensiva em dados e precisa de muitos desses controles, o preço da suíte pode fazer sentido. Se você precisa de geração de código de barras e chegou ao ComponentOne porque ele apareceu em uma pesquisa, você está comprando uma suíte de UI empresarial principalmente por um controle.

O pacote NuGet é C1.Win.BarCode para WinForms (com C1.WPF.BarCode, C1.WinUI.BarCode e C1.Blazor.BarCode para outras plataformas) e é licenciado por meio da assinatura do ComponentOne Studio. Para desenvolvedores que desejam funcionalidade de código de barras sem a suíte completa, não há um nível de licença separada apenas para código de barras.

A estrutura de preços do IronBarcode é diferente: é uma biblioteca de código de barras autônoma com licenciamento perpétuo a partir de $749 para um único desenvolvedor (Lite), $1,499 para três (Plus), $2,999 para dez (Professional), e $5,999 para desenvolvedores ilimitados. Não há controle de grade, biblioteca de gráficos ou designer de relatórios — apenas a funcionalidade de código de barras que você procura.

Personalização de código QR

Ambas as bibliotecas suportam a geração de códigos QR com opções de personalização. O estilo da API difere significativamente.

Abordagem do ComponentOne para definir propriedades:

// ComponentOne — QR code with error correction and color
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.QRCode;
barcode.Text = "https://example.com/product/4821";
barcode.QRCodeVersion = QRCodeVersion.Version5;
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High;
barcode.QRCodeModel = QRCodeModel.Model2;
barcode.ForeColor = Color.DarkBlue;
barcode.BackColor = Color.White;
barcode.ModuleSize = 4;

using var image = barcode.GetImage();
image.Save("product-qr.png", System.Drawing.Imaging.ImageFormat.Png);
// ComponentOne — QR code with error correction and color
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.QRCode;
barcode.Text = "https://example.com/product/4821";
barcode.QRCodeVersion = QRCodeVersion.Version5;
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High;
barcode.QRCodeModel = QRCodeModel.Model2;
barcode.ForeColor = Color.DarkBlue;
barcode.BackColor = Color.White;
barcode.ModuleSize = 4;

using var image = barcode.GetImage();
image.Save("product-qr.png", System.Drawing.Imaging.ImageFormat.Png);
Imports C1.Win.Barcode
Imports C1.BarCode
Imports System.Drawing
Imports System.Drawing.Imaging

C1.C1License.Key = "YOUR-COMPONENTONE-KEY"

Dim barcode As New C1BarCode()
barcode.CodeType = CodeType.QRCode
barcode.Text = "https://example.com/product/4821"
barcode.QRCodeVersion = QRCodeVersion.Version5
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High
barcode.QRCodeModel = QRCodeModel.Model2
barcode.ForeColor = Color.DarkBlue
barcode.BackColor = Color.White
barcode.ModuleSize = 4

Using image As Image = barcode.GetImage()
    image.Save("product-qr.png", ImageFormat.Png)
End Using
$vbLabelText   $csharpLabel

Cadeia fluente IronBarcode:

//IronBarcode— QR code with error correction and color
// NuGet: dotnet add package IronBarcode
using IronBarCode;
using System.Drawing;

QRCodeWriter.CreateQrCode(
        "https://example.com/product/4821",
        300,
        QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("product-qr.png");
//IronBarcode— QR code with error correction and color
// NuGet: dotnet add package IronBarcode
using IronBarCode;
using System.Drawing;

QRCodeWriter.CreateQrCode(
        "https://example.com/product/4821",
        300,
        QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("product-qr.png");
Imports IronBarCode
Imports System.Drawing

QRCodeWriter.CreateQrCode( _
        "https://example.com/product/4821", _
        300, _
        QRCodeWriter.QrErrorCorrectionLevel.Highest) _
    .ChangeBarCodeColor(Color.DarkBlue) _
    .SaveAsPng("product-qr.png")
$vbLabelText   $csharpLabel

A abordagem ComponentOne requer instanciar um objeto C1BarCode e definir múltiplas propriedades antes de chamar GetImage(). O QRCodeWriter do IronBarcode usa uma cadeia fluente — cada operação retorna o objeto de código de barras, e você chama .SaveAsPng() no final. Não há instâncias para gerenciar.

O IronBarcode também suporta a incorporação de logotipos em códigos QR, o que o C1BarCode não faz:

// QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500)
    .AddBrandLogo("company-logo.png")
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("branded-qr.png");
// QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500)
    .AddBrandLogo("company-logo.png")
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("branded-qr.png");
' QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500) _
    .AddBrandLogo("company-logo.png") _
    .ChangeBarCodeColor(Color.DarkBlue) _
    .SaveAsPng("branded-qr.png")
$vbLabelText   $csharpLabel

Entendendo o IronBarcode

IronBarcode é uma biblioteca independente para .NET que abrange a geração e a leitura de códigos de barras. Ele instala a partir do NuGet (dotnet add package IronBarcode), tem como alvo qualquer TFM .NET suportado sem restrições de plataforma, e roda no Windows, Linux, macOS, Docker, Azure e AWS Lambda.

A funcionalidade de leitura abrange documentos PDF nativamente:

// Read barcodes from a PDF — no image extraction needed
using IronBarCode;

var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}");
}
// Read barcodes from a PDF — no image extraction needed
using IronBarCode;

var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}");
}
Imports IronBarCode

' Read barcodes from a PDF — no image extraction needed
Dim results = BarcodeReader.Read("invoice.pdf")
For Each barcode In results
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}")
Next
$vbLabelText   $csharpLabel

Para cenários de alta produtividade, BarcodeReaderOptions controla o compromisso entre velocidade e precisão e a detecção de múltiplos códigos de barras:

// Multi-barcode read with performance options
using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode
};

var results = BarcodeReader.Read("warehouse-manifest.jpg", options);
// Multi-barcode read with performance options
using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode
};

var results = BarcodeReader.Read("warehouse-manifest.jpg", options);
Imports IronBarCode

' Multi-barcode read with performance options
Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = True,
    .ExpectBarcodeTypes = BarcodeEncoding.Code128 Or BarcodeEncoding.QRCode
}

Dim results = BarcodeReader.Read("warehouse-manifest.jpg", options)
$vbLabelText   $csharpLabel

A geração abrange os formatos padrão com uma API estática consistente:

// Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
    .SaveAsPng("shipping-label.png");

// Geração de código QR to byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
    .ToPngBinaryData();
// Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
    .SaveAsPng("shipping-label.png");

// Geração de código QR to byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
    .ToPngBinaryData();
' Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128) _
    .SaveAsPng("shipping-label.png")

' Geração de código QR to byte array (for HTTP response)
Dim qrBytes As Byte() = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400) _
    .ToPngBinaryData()
$vbLabelText   $csharpLabel

Plataformas suportadas: Windows, Linux, macOS, Docker, Azure (Serviço de Aplicativos e Funções), AWS Lambda. Versões .NET suportadas: .NET Framework 4.6.2+, .NET Core 3.1+, e .NET 5/6/7/8.

Comparação de recursos

Recurso MESCIUS ComponentOne C1Código de barras IronBarcode
Geração de código de barras Sim Sim
Leitura de código de barras Não Sim
Geração de código QR Sim Sim
Incorporação de logotipo QR Não Sim
Entrada de PDF para leitura N / D (sem leitura) Sim (nativo)
Destino da plataforma .NET (edições WinForms/WPF) net8.0-windows Qualquer TFM (net8.0, etc.)
UseWindowsForms necessário (edição WinForms) Sim Não
Implantação Linux/Docker Somente edições Blazor/ASP.NET MVC Sim
implantação do macOS Somente edições Blazor/ASP.NET MVC Sim
Azure Functions (Linux) Somente edições Blazor/ASP.NET MVC Sim
ASP.NET Core do lado do servidor Edição ASP.NET Core MVC Sim
Pacote NuGet independente Pacotes licenciados pela Suite Sim
Preços individuais N / D A partir de $749 (licença perpétua - Lite)
Preços de Suite $1,299/dev/ano Enterprise; $799/dev/ano única plataforma N / D
API de geração fluente Não (definidor de propriedade) Sim
BarcodeReader.Read() Não Sim
BarcodeWriter.CreateBarcode() Não Sim
QRCodeWriter.CreateQrCode() Não Sim
Versões .NET suportadas .NET 6+ (Windows for WinForms/WPF) .NET Framework 4.6.2+, .NET Core 3.1+, .NET 5–8
Opção de licença perpétua Não (assinatura) Sim

Referência de Mapeamento de API

Para equipes que estão migrando do C1BarCode para o IronBarcode, aplicam-se as seguintes equivalências diretas:

ComponentOne C1Código de barras IronBarcode
C1.C1License.Key = "..." IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
new C1BarCode() Estático — nenhuma instância necessária
barcode.CodeType = CodeType.Code128 BarcodeEncoding.Code128 (passado como parâmetro)
barcode.Text = "data" Primeiro argumento de BarcodeWriter.CreateBarcode()
barcode.BarHeight = 100 .ResizeTo(width, 100) no escritor de código de barras
barcode.ModuleSize = 2 .ResizeTo() controla o dimensionamento em pixels
barcode.ForeColor = Color.DarkBlue .ChangeBarCodeColor(Color.DarkBlue)
barcode.BackColor = Color.White .ChangeBackgroundColor(Color.White)
barcode.GetImage() .SaveAsPng() / .ToPngBinaryData()
barcode.QRCodeErrorCorrectionLevel enum QRCodeWriter.QrErrorCorrectionLevel
barcode.QRCodeVersion Automático (ou parâmetro de versão)
Sem API de leitura BarcodeReader.Read(path)
net8.0-windows necessário net8.0 (ou qualquer TFM)
UseWindowsForms = true necessário Não é necessário

Quando as equipes trocam

A necessidade de leitura surge. Este é o gatilho mais comum. Uma equipe cria um sistema de geração de etiquetas de código de barras com o C1BarCode e, em seguida, recebe a solicitação de verificar leituras, processar documentos de remessas recebidas ou decodificar códigos QR a partir de imagens carregadas. A biblioteca C1BarCode não pode ajudar. As opções são: adicionar uma segunda biblioteca de código de barras para leitura ou substituir a C1BarCode por uma biblioteca que suporte ambas as funções.

Implantação em Linux ou Docker. Um aplicativo de desktop WinForms distribuído para desktops Windows não enfrenta essa restrição. Uma API ASP.NET Core que gera imagens de código de barras é essencial — especialmente se precisar ser executada em um contêiner Linux ou implantada no Azure App Service no Linux. O framework de destino net8.0-windows bloqueia imediatamente essas opções de implantação.

Arquitetura de microsserviços ou sem servidor. Azure Functions, AWS Lambda e microsserviços em contêineres priorizam o Linux. Um serviço de geração de código de barras que não pode ser implantado no Linux não é um microsserviço viável.

Custo da assinatura do Suite versus escopo de requisitos. As equipes que pagam pelo ComponentOne Studio Enterprise e já utilizam seus grids, gráficos e outros controles já justificaram o investimento na assinatura. Equipes que assinaram o serviço principalmente ou exclusivamente para geração de códigos de barras estão pagando por mais de 100 controles que não utilizam. O custo da assinatura por desenvolvedor aumenta exponencialmente com o tamanho da equipe.

Preferência por licença perpétua. O ComponentOne Studio funciona apenas por assinatura. Não existe opção de licença perpétua. Para equipes que preferem possuir o software que enviam — particularmente por razões de conformidade ou manutenção a longo prazo — o licenciamento perpétuo do IronBarcode(começando em $749 Lite) é estruturalmente diferente.

Conclusão

O C1BarCode gera códigos de barras de forma limpa em um contexto WinForms. Essa é realmente a sua principal vantagem, e para um aplicativo desktop WinForms que precisa apenas de geração de rótulos no Windows, é uma escolha funcional dentro do Suite ComponentOne.

O escopo termina aí. Sem necessidade de leitura, implantação exclusiva para Windows, sem pacote independente, licenciamento por assinatura. Quando os requisitos de um projeto vão além da geração de WinForms no Windows — como um requisito de leitura, uma implantação em Linux, uma API web, um contêiner Docker ou uma função na nuvem — o C1BarCode não consegue atendê-los. O IronBarcode abrange a geração e leitura de códigos de barras, funciona em qualquer plataforma compatível com .NET e está disponível como um pacote independente, sem necessidade de assinatura de um Suite Enterprise com 100 controles.

Perguntas frequentes

O que é o código de barras GrapeCity?

GrapeCity Barcode é uma biblioteca .NET para geração e leitura de códigos de barras em aplicações C#. É uma das diversas alternativas que os desenvolvedores avaliam ao selecionar uma solução de código de barras para projetos .NET.

Quais são as principais diferenças entre o código de barras GrapeCity e o IronBarcode?

O IronBarcode utiliza uma API estática e sem estado, que não requer gerenciamento de instâncias, enquanto o GrapeCity Barcode normalmente exige a criação e configuração de instâncias antes do uso. O IronBarcode também oferece suporte nativo a PDF, detecção automática de formato e licenciamento com chave única em todos os ambientes.

O licenciamento do IronBarcode é mais fácil do que o do GrapeCity Barcode?

O IronBarcode utiliza uma única chave de licença que abrange tanto o ambiente de desenvolvimento quanto o de produção. Isso simplifica os pipelines de CI/CD e as configurações do Docker em comparação com sistemas de licenciamento que separam as chaves do SDK das chaves de tempo de execução.

O IronBarcode é compatível com todos os formatos de código de barras que o GrapeCity Barcode suporta?

O IronBarcode suporta mais de 30 simbologias de código de barras, incluindo QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 e muitas outras. A detecção automática de formato significa que não é necessária a enumeração explícita de formatos.

O IronBarcode suporta leitura nativa de códigos de barras em PDF?

Sim. O IronBarcode lê códigos de barras diretamente de arquivos PDF usando BarcodeReader.Read("document.pdf") sem a necessidade de uma biblioteca de renderização de PDF separada. Os resultados por página incluem número da página, formato do código de barras, valor e nível de confiança.

Como o IronBarcode lida com o processamento em lote em comparação com o GrapeCity Barcode?

Os métodos estáticos do IronBarcode são sem estado e naturalmente seguros para threads, permitindo o uso direto de Parallel.ForEach sem gerenciamento de instâncias por thread. Não há limite de throughput em nenhum plano de preços.

Quais versões do .NET o IronBarcode suporta?

O IronBarcode é compatível com o .NET Framework 4.6.2+, .NET Core 3.1 e .NET 5, 6, 7, 8 e 9 em um único pacote NuGet. As plataformas suportadas incluem Windows x64/x86, Linux x64 e macOS x64/ARM.

Como faço para instalar o IronBarcode em um projeto .NET?

Instale o IronBarcode via NuGet: execute 'Install-Package IronBarCode' no Console do Gerenciador de Pacotes ou 'dotnet add package IronBarCode' na CLI. Não são necessários instaladores de SDK ou arquivos de tempo de execução adicionais.

Posso avaliar o IronBarcode antes de comprar, ao contrário do GrapeCity?

Sim. O modo de avaliação do IronBarcode retorna os valores completos dos códigos de barras decodificados — apenas as imagens de saída geradas recebem uma marca d'água. Você pode testar a precisão de leitura em seus próprios documentos antes de efetuar a compra.

Qual é a diferença de preço entre o GrapeCity Barcode e o IronBarcode?

O IronBarcode tem um preço inicial de US$ 749 para uma licença perpétua de desenvolvedor único, que abrange desenvolvimento e produção. Detalhes sobre preços e opções de volume estão disponíveis na página de licenciamento do IronBarcode. Não há necessidade de uma licença de tempo de execução separada.

É simples migrar do GrapeCity Barcode para o IronBarcode?

A migração do GrapeCity Barcode para o IronBarcode envolve principalmente a substituição de chamadas de API baseadas em instâncias pelos métodos estáticos do IronBarcode, a remoção de código repetitivo de licenciamento e a atualização dos nomes das propriedades de resultado. A maioria das migrações consiste em reduzir o código em vez de adicioná-lo.

O IronBarcode gera códigos QR com logotipos?

Sim. O método `QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")` incorpora uma imagem da marca em um código QR nativamente, com correção de erros configurável. Códigos QR coloridos também são suportados através do método `ChangeBarCodeColor()`.

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

Equipe de Suporte Iron

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim