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

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

O Biblioteca de código de barras já foi baixado mais de 12 milhões de vezes. A maioria desses desenvolvedores acaba descobrindo que ele só consegue criar códigos de barras. Uma parcela significativa deles também descobre o conflito com o SkiaSharp — geralmente no pior momento possível, quando acabaram de adicionar o Biblioteca de código de barras a um projeto MAUI ou Blazor que já depende do SkiaSharp, e a compilação começa a exibir avisos NU1608 que eles não esperavam ter que depurar naquela tarde. Este artigo aborda ambas as questões com honestidade. Biblioteca de código de barras é uma biblioteca legítima com um caso de uso claro. Entender onde isso termina é a questão prática.

Entendendo o BarcodeLib

BarcodeLib é uma biblioteca de código aberto para geração de imagens de código de barras para .NET, mantida no GitHub por Brad Barnhill. Está em funcionamento desde 2007 e suporta mais de 25 simbologias de código de barras. A licença Apache 2.0 permite seu uso comercial gratuito. Para a geração pura de códigos de barras — criar uma imagem a partir de uma sequência de caracteres — funciona de forma confiável e tem cumprido bem essa função ao longo de muitos anos de uso ativo.

A API é baseada em instâncias. Você cria um objeto Barcode, define propriedades e chama Encode() com uma constante de tipo e uma string de dados. O resultado é um System.Drawing.Image que você pode salvar ou reproduzir conforme necessário. Este fluxo de trabalho é simples e acessível, sendo suficiente para projetos que exigem apenas a impressão de imagens de código de barras — etiquetas de envio, etiquetas de inventário, etiquetas de preço de varejo.

Principais características arquitetônicas do BarcodeLib:

  • Escopo somente de geração: A biblioteca não possui nenhuma API de leitura ou decodificação de qualquer tipo; Toda a sua superfície pública está voltada para a produção de imagens a partir de sequências de dados.
  • API baseada em instâncias: Cada operação requer a instanciação de um objeto Barcode e a definição das propriedades width, height e label antes de chamar Encode()
  • Retorna System.Drawing.Image: A saída é um objeto de imagem GDI+, que requer uma etapa intermediária MemoryStream para produzir uma matriz de bytes para respostas HTTP ou armazenamento em banco de dados.
  • Geração apenas de códigos 1D e QR: Suporta mais de 25 simbologias, incluindo Code128, EAN-13, UPC-A, Code39 e QR Code, mas não oferece capacidade de leitura de códigos 2D.
  • Dependência do SkiaSharp (v3.x): A série 3.x substituiu o System.Drawing.Common pelo SkiaSharp para permitir suporte multiplataforma; Isso introduz o risco de conflito de versões quando outros pacotes no projeto também dependem do SkiaSharp.
  • Gratuito, sem necessidade de chave de licença: a licença Apache 2.0 cobre o uso comercial sem necessidade de chave de execução ou ativação.

Padrão de geração do núcleo do BarcodeLib

O fluxo de trabalho padrão de geração do Biblioteca de código de barras requer a criação de uma instância, a configuração de propriedades e a chamada de Encode():

@@--CÓDIGO-63539--@@`csharp // BarcodeLib using BarcodeLib; using System.Drawing; using System.Drawing.Imaging;

var b = new Barcode(); b.IncludeLabel = true; b.Width = 300; b.Height = 100; Image img = b.Encode(TYPE.CODE128, "PRODUCT-12345"); img.Save("barcode.png", ImageFormat.Png); @@--CÓDIGO-63539--@@`

Este é o fluxo de trabalho completo de geração. O padrão de configuração de propriedade é o design: toda a configuração ocorre na instância antes da chamada Encode(), e o valor de retorno é um System.Drawing.Image que deve ser salvo separadamente ou convertido em bytes.

Entendendo o IronBarcode

IronBarcode é uma biblioteca comercial .NET para códigos de barras que abrange tanto a geração quanto a leitura em um único pacote. Ele é instalado via NuGet, funciona no .NET Framework 4.6.2 até o .NET 9 e opera em Windows, Linux, macOS, Docker, Azure e AWS Lambda. A biblioteca é desenvolvida e mantida pela Iron Software com um modelo de suporte comercial.

A API de geração é estática e fluida — não há instância para criar, nem propriedades para definir antes da chamada principal. As opções de configuração encadeiam-se ao resultado de BarcodeWriter.CreateBarcode() ou QRCodeWriter.CreateQrCode(). Os métodos de saída no final da cadeia — .SaveAsPng(), .ToPngBinaryData(), .ToAnyImageData() — eliminam o padrão intermediário MemoryStream que o Biblioteca de código de barras exige. A leitura faz parte do mesmo pacote, sem necessidade de biblioteca separada ou integração com o ZXing .NET para manter.

Principais características do IronBarcode:

  • Geração e leitura em um único pacote: BarcodeWriter lida com a geração; BarcodeReader lida com a leitura; ambos são distribuídos na mesma instalação do NuGet.
  • API fluente estática: Não requer instanciação; cadeias de configuração após CreateBarcode() usando métodos fluentes
  • Saída direta de matriz de bytes: @@--CÓDIGO-63516--@@ retorna byte[] sem uma etapa MemoryStream
  • Suporte a PDF em ambas as extremidades: BarcodeReader.Read() aceita arquivos PDF nativamente; Os resultados da geração podem ser incorporados em PDFs.
  • Sem dependência do SkiaSharp: Independente do gráfico de versões do SkiaSharp, eliminando conflitos com o NU1608 no MAUI e em outros projetos.
  • Licença comercial com SLA: Preço entre US$ 749 e US$ 5.999 (licença perpétua); Inclui suporte comercial e garantia de atualização regular.
  • ReadingSpeed Ajuste: BarcodeReaderOptions permite trocar a abrangência da varredura pelo desempenho em alto volume

Comparação de recursos

Recurso Biblioteca de código de barras IronBarcode
Geração de código de barras Sim Sim
Leitura de código de barras Não Sim
Leitura de código de barras em PDF Não Sim
conflito de dependência SkiaSharp Sim (v3.x) Não
API encadeável fluente Não Sim
Licença Apache 2.0 (gratuito) $749–$5.999 perpétuo

Comparação Detalhada de Recursos

Recurso Biblioteca de código de barras IronBarcode
Geração
Geração Code128 Sim Sim
Geração EAN-13 / UPC-A Sim Sim
Geração de código QR Sim (básico) Sim (avançado, com incorporação de logotipo)
Mais de 25 simbologias Sim Sim
API de geração encadeável fluente Não Sim
Saída direta byte[] Manual (MemoryStream) @@--CÓDIGO-63516--@@
Saída da geração de PDF Não Sim
Leitura
Leitura de código de barras a partir de imagem Não Sim (BarcodeReader.Read())
Leitura de código de barras a partir de PDF Não Sim (nativo, sem biblioteca extra)
Detecção de múltiplos códigos de barras Não Sim (ExpectMultipleBarcodes)
Ajuste da velocidade de leitura N / D Sim (ReadingSpeed enum)
Plataforma
Windows Sim Sim
Linux / macOS Parcial (dependente de SkiaSharp) Completo
Docker / contêiner Configuração necessária Sim
Compatibilidade do projeto MAUI Risco de conflito (NU1608) Sem conflito
.NET Framework 4.6.2+ Sim Sim
.NET 6–9 Sim (requer SkiaSharp 3.x) Sim
Licenciamento
Código aberto / gratuito Sim (Apache 2.0) Não
Suporte comercial / SLA Não Sim
É necessária uma chave de licença. Não Sim
Preços Livre $749–$5.999 perpétuo

API de geração de código de barras

As APIs de geração representam filosofias de design diferentes: Biblioteca de código de barras usa configuração de instância mutável, enquantoIronBarcodeusa uma cadeia fluente imutável.

Abordagem BarcodeLib

BarcodeLib requer a construção de uma instância e a definição de propriedades antes de chamar Encode(). A saída é um objeto System.Drawing.Image:

@@--CÓDIGO-63539--@@`csharp using BarcodeLib; using System.Drawing; using System.Drawing.Imaging;

public byte[] GenerateCode128(string data) { var b = new Barcode(); b.IncludeLabel = true; b.Width = 300; b.Height = 100; Image img = b.Encode(TYPE.CODE128, data);

using var ms = new MemoryStream();
img.Save(ms, ImageFormat.Png);
return ms.ToArray();

} @@--CÓDIGO-63539--@@`

O tipo de retorno System.Drawing.Image significa que a saída do array de bytes requer um intermediário MemoryStream. A propriedade IncludeLabel é um interruptor booleano — o Biblioteca de código de barras renderiza automaticamente a string de dados codificada como o rótulo visível abaixo das barras.

Abordagem do IronBarcode

A geração doIronBarcodeé totalmente estática. As cadeias de configuração após CreateBarcode() e os métodos de saída encerram a cadeia diretamente:

@@--CÓDIGO-63539--@@`csharp // NuGet: dotnet add package IronBarcode using IronBarCode;

public byte[] GenerateCode128(string data) { return BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128) .ResizeTo(300, 100) .AddAnnotationTextBelowBarcode(data) .ToPngBinaryData(); } @@--CÓDIGO-63539--@@`

.ToPngBinaryData() retorna o array de bytes diretamente — sem objeto intermediário Image ou MemoryStream. .AddAnnotationTextBelowBarcode() recebe a string do rótulo explicitamente, dando controle sobre qual texto aparece abaixo das barras. Para cenários de geração avançados, consulte a documentação de geração de código de barras do IronBarcode .

Capacidade de leitura de código de barras

A leitura é a fronteira funcional mais significativa entre essas duas bibliotecas. O Biblioteca de código de barras não possui capacidade de leitura; OIronBarcodeinclui um mecanismo de leitura completo no mesmo pacote.

Abordagem BarcodeLib

BarcodeLib não possui uma API de leitura. Não existe nenhum método Decode(), Scan() ou ReadBarcode(). A ausência não se trata de uma diferença de versão — a leitura nunca fez parte do projeto da biblioteca. Qualquer tentativa de chamar um método de decodificação resulta em um erro de compilação:

@@--CÓDIGO-63539--@@`csharp // Biblioteca de código de barras — reading does not exist using BarcodeLib;

var b = new Barcode();

// This will not compile — there is no Decode or Read method // var value = b.Decode("barcode.png"); // CS1061: no definition // var value = b.Scan("barcode.png"); // CS1061: no definition // var value = b.ReadBarcode("barcode.png"); // CS1061: no definition

// The only thing you can do is generate: Image img = b.Encode(TYPE.CODE128, "PRODUCT-12345"); // this works @@--CÓDIGO-63539--@@`

Equipes que precisam tanto da geração quanto da leitura de código de barras em conjunto com o Biblioteca de código de barras devem adicionar uma segunda biblioteca — normalmente o ZXing .NET — o que introduz sua própria carga de gerenciamento de dependências e uma segunda superfície de API para manter.

Abordagem do IronBarcode

BarcodeReader.Read() aceita arquivos de imagem, arquivos PDF, fluxos e objetos System.Drawing.Bitmap. A leitura de um PDF não requer nenhuma biblioteca adicional:

@@--CÓDIGO-63539--@@`csharp using IronBarCode;

// Read from an image var results = BarcodeReader.Read("barcode.png"); Console.WriteLine(results.First().Value); // "PRODUCT-12345"

// Read all barcodes from a PDF — no separate PDF library needed var pdfResults = BarcodeReader.Read("invoice-batch.pdf"); foreach (var result in pdfResults) { Console.WriteLine($"Page {result.PageNumber}: {result.Value}"); }

// Tune reading for speed vs. thoroughness var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced, ExpectMultipleBarcodes = true }; var multiResults = BarcodeReader.Read("warehouse-scan.png", options); @@--CÓDIGO-63539--@@`

A enumeração ReadingSpeed permite ajustar o desempenho da varredura para cenários de alto volume. Para obter orientações sobre a configuração de leitura, consulte a documentação de leitura do IronBarcode .

Conflito de dependência SkiaSharp

A dependência do SkiaSharp introduzida no Biblioteca de código de barras 3.x cria um tipo de conflito que não existe no IronBarcode.

Abordagem BarcodeLib

A partir da versão 3.x do BarcodeLib, a biblioteca introduziu o SkiaSharp como um backend gráfico para substituir o System.Drawing.Common, que se tornou exclusivo doWindowsapós o .NET 6. O Biblioteca de código de barras fixa-se a um intervalo de versões específico do SkiaSharp. Se um projeto já utiliza o SkiaSharp por meio de outra dependência — comum em projetos MAUI que utilizam SkiaSharp.Views.Maui e Microsoft.Maui.Graphics — a versão resolvida pode ficar fora do intervalo esperado pelo BarcodeLib. O resultado é, no mínimo, um aviso NU1608 e, na pior das hipóteses, uma falha na vinculação do assembly em tempo de execução:

@@--CÓDIGO-63539--@@ Aviso NU1608: Versão do pacote detectada fora da restrição de dependência: BarcodeLib 3.1.5 requer SkiaSharp (>= 2.88.7 e < 2.89.0), mas A versão SkiaSharp 3.116.1 foi resolvida. @@--CÓDIGO-63539--@@

Forçar uma resolução por meio de referências explícitas a pacotes adiciona complexidade sem garantia de sucesso:

@@--CÓDIGO-63539--@@`xml

@@--CÓDIGO-63539--@@`

Mesmo com substituições explícitas, a compatibilidade depende de as chamadas da API interna do Biblioteca de código de barras corresponderem ao que a versão fixada expõe. Não existe nenhum contrato de suporte que garanta uma correção dentro de um prazo que seja relevante para o projeto.

Abordagem do IronBarcode

OIronBarcodenão compartilha o gráfico de dependências do SkiaSharp com o código do aplicativo. Não há negociação de versões para gerenciar, nenhum erro NU1608 para diagnosticar e nenhum risco de vinculação de assembly em tempo de execução relacionado à resolução de versão do SkiaSharp. Projetos MAUI, projetos Blazor e qualquer outro aplicativo que dependa do SkiaSharp podem instalar oIronBarcodesem qualquer conflito de versão. Para padrões de integração específicos do MAUI, consulte a documentação doIronBarcodeMAUI .

Referência de Mapeamento de API

Biblioteca de código de barras IronBarcode
@@--CÓDIGO-63541--@@ API estática — nenhuma instância necessária
@@--CÓDIGO-63542--@@ @@--CÓDIGO-63543--@@
@@--CÓDIGO-63544--@@ @@--CÓDIGO-63545--@@
b.Largura = 300; b.Altura = 100 @@--CÓDIGO-63546--@@
Retorna System.Drawing.Image @@--CÓDIGO-63548--@@ / @@--CÓDIGO-63549--@@
@@--CÓDIGO-63550--@@ @@--CÓDIGO-63551--@@
@@--CÓDIGO-63552--@@ @@--CÓDIGO-63553--@@
@@--CÓDIGO-63554--@@ @@--CÓDIGO-63555--@@
@@--CÓDIGO-63556--@@ @@--CÓDIGO-63557--@@
@@--CÓDIGO-63558--@@ BarcodeEncoding.QRCode (também QRCodeWriter)
Sem API de leitura @@--CÓDIGO-63561--@@
Conflito de versão do SkiaSharp no MAUI Sem dependências conflitantes

Quando as equipes consideram migrar do Biblioteca de código de barras para o IronBarcode

A exigência de leitura aparece.

Um sistema que gera etiquetas de envio há meses recebe um novo requisito: o aplicativo também deve processar etiquetas devolvidas pelos fornecedores. A integração com o armazém precisa analisar os códigos de barras presentes nos manifestos de remessas de entrada. Um sistema de gerenciamento de documentos precisa indexar códigos de barras em PDFs digitalizados. A Biblioteca de código de barras não consegue atender a nenhum desses requisitos — a API de leitura não existe. A equipe avalia a possibilidade de adicionar o ZXing .NET junto com a BarcodeLib, pondera o ônus de manutenção de duas bibliotecas e os dois grafos de dependência separados, e decide que o caminho mais limpo é uma biblioteca que lide com a geração e a leitura em uma única instalação do NuGet .

Conflito SkiaSharp em um projeto MAUI

Uma equipe adiciona a biblioteca Biblioteca de código de barras a um aplicativo MAUI existente e imediatamente se depara com avisos NU1608 durante a restauração. Eles investigam, identificam a incompatibilidade de versão entre o intervalo SkiaSharp esperado pelo Biblioteca de código de barras e a versão exigida pelo MAUI, adicionam substituições explícitas <PackageReference> para forçar uma resolução e conseguem que a compilação seja aprovada. Em seguida, ocorre uma falha de execução no dispositivo quando os binários nativos do SkiaSharp carregam a versão errada. A correção requer uma investigação mais aprofundada do registro de vinculação do assembly. A mudança para oIronBarcoderesolve o conflito pela raiz — não encontrando uma versão compatível do SkiaSharp, mas eliminando completamente a dependência compartilhada.

Processamento de código de barras em PDF necessário

Aplicações que geram documentos PDF com códigos de barras incorporados — faturas, ordens de serviço, manifestos de envio — às vezes precisam ler esses códigos de barras novamente durante o processamento subsequente. O Biblioteca de código de barras gera imagens de código de barras, mas não oferece suporte a PDF em nenhuma das extremidades. A leitura de códigos de barras de um PDF com o Biblioteca de código de barras requer primeiro a renderização do PDF em imagens usando uma biblioteca PDF separada e, em seguida, a passagem dessas imagens para uma biblioteca de leitura também separada. OIronBarcodeprocessa toda a cadeia nativamente: BarcodeReader.Read("file.pdf") percorre todas as páginas e retorna todos os códigos de barras detectados sem uma etapa intermediária de renderização.

Os recursos do código QR superam a geração básica.

Projetos que inicialmente exigiam apenas a geração básica de códigos QR frequentemente evoluem para a necessidade de incorporação de logotipos, personalização de cores ou configuração de correção de erros. A Biblioteca de código de barras suporta códigos QR até TYPE.QR_Code, mas não oferece opções além das propriedades padrão Width, Height e IncludeLabel. O recurso QRCodeWriter doIronBarcodeexpõe a incorporação de logotipos, o controle de cores e o ajuste da correção de erros por meio de métodos encadeados. Equipes cujos requisitos de código QR ultrapassaram o que a implementação básica do Biblioteca de código de barras suporta descobrem que essa lacuna de recursos é o fator determinante para a decisão de migração.

Considerações Comuns de Migração

API de instância para API fluente estática

O código Biblioteca de código de barras usa um padrão de objeto mutável: crie uma instância de Barcode, defina as propriedades e chame Encode().IronBarcodeusa um padrão fluente estático: chama BarcodeWriter.CreateBarcode(), encadeia métodos de configuração e termina com um método de saída. O código existente que armazena uma instância de Barcode como um campo ou a passa entre métodos precisará ser reestruturado. A alteração típica consiste em substituir o bloco de configuração de propriedades por uma cadeia de métodos:

@@--CÓDIGO-63539--@@csharp // The property setters on b become chained methods BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128) .ResizeTo(300, 100) .AddAnnotationTextBelowBarcode(data) .SaveAsPng(outputPath); @@--CÓDIGO-63539--@@

Sistema.Desenho.Imagem para Saída Direta

BarcodeLib retorna System.Drawing.Image, que requer MemoryStream para produzir bytes. Qualquer código digitado para Image ou System.Drawing.Image precisará ser atualizado. A cadeia fluente doIronBarcodetermina diretamente com o formato de saída desejado — .SaveAsPng(), .ToPngBinaryData(), .ToAnyImageData() — eliminando a necessidade do objeto de imagem intermediário e da etapa MemoryStream.

Enumeração TIPO para Enumeração de Codificação de Código de Barras

A Biblioteca de código de barras usa a classe TYPE com constantes em maiúsculas, como TYPE.CODE128.IronBarcodeusa o enum BarcodeEncoding com valores em PascalCase, como BarcodeEncoding.Code128. Os valores correspondem diretamente. Uma busca por TYPE\. em arquivos .cs identifica todas as ocorrências que precisam ser atualizadas, e uma operação sistemática de localizar e substituir abrange os formatos comuns: CODE128Code128, EAN13EAN13, UPCAUPCA, QR_CodeQRCode.

Limpeza de referência SkiaSharp

Projetos que adicionaram entradas explícitas <PackageReference Include="SkiaSharp"> apenas para resolver os avisos NU1608 do Biblioteca de código de barras podem remover essas alterações após a migração para o IronBarcode. O comando dotnet list package --include-transitive confirma se o SkiaSharp ainda é necessário para outros pacotes no projeto antes de removê-lo.

Funcionalidades adicionais do IronBarcode

Além da geração direta e da comparação de leitura, oIronBarcodeinclui funcionalidades que o Biblioteca de código de barras não oferece:

Compatibilidade com .NET e Preparação para o Futuro

OIronBarcodeoferece suporte ao .NET Framework 4.6.2 até o .NET 9 e mantém um ritmo regular de lançamentos alinhado com o cronograma de lançamentos do .NET da Microsoft. Com a crescente adoção do .NET 10 até 2026, o desenvolvimento ativo daIronBarcodegarante a compatibilidade futura sem exigir alterações no projeto. A biblioteca funciona sem modificações no Windows, Linux, macOS, Docker, Azure e AWS Lambda. O Biblioteca de código de barras também mantém um desenvolvimento ativo da comunidade, embora seu suporte multiplataforma na série 3.x dependa da compatibilidade de versão do SkiaSharp discutida nas seções de comparação acima. Para projetos que visam o .NET moderno no Linux ou em contêineres, a arquitetura multiplataforma sem dependências doIronBarcodeevita a negociação de versões introduzida pelo backend SkiaSharp do BarcodeLib.

Conclusão

BarcodeLib eIronBarcoderepresentam diferentes escopos de solução para trabalho com código de barras em .NET. Biblioteca de código de barras é uma biblioteca gratuita, focada e dedicada exclusivamente à geração de código, que tem atendido de forma confiável ao seu caso de uso definido por quase duas décadas.IronBarcodeé uma biblioteca comercial que abrange tanto a geração quanto a leitura de códigos de barras, com uma API estática e fluente e sem dependência do SkiaSharp. A diferença não reside na qualidade dentro de um escopo compartilhado — reside no próprio escopo.

O Biblioteca de código de barras continua sendo uma escolha genuinamente apropriada para projetos com requisitos estáveis, focados apenas na geração de código, em sistemasWindowsou em ambientes onde o panorama de versões do SkiaSharp é controlado. Sua licença Apache 2.0, custo zero e API intuitiva fazem dele uma solução prática para sistemas de etiquetas de envio, geradores de etiquetas de inventário e aplicações similares que nunca precisarão ler códigos de barras. Os 12 milhões de downloads refletem que uma grande parcela dos desenvolvedores .NET tem exatamente esse caso de uso.

OIronBarcodetorna-se a opção mais prática quando os requisitos vão além da simples geração de imagens: quando é necessária a capacidade de leitura, quando o projeto é uma aplicação MAUI ou multiplataforma onde são prováveis ​​conflitos de versão do SkiaSharp, quando o processamento de código de barras em PDF está nos planos futuros ou quando são necessários recursos de código QR além da geração básica. O custo da licença comercial representa a questão crucial — para equipes cujas necessidades se alinham com o que oIronBarcodeagrega em relação ao BarcodeLib, a solução de pacote único e o SLA comercial constituem a principal vantagem.

A avaliação honesta é que a maioria das equipes não começa a usar oIronBarcodedesde o início. Eles começam com o Biblioteca de código de barras porque é gratuito e suficiente. Eles migram para oIronBarcodequando suas necessidades ultrapassam o que o escopo de geração exclusivo do Biblioteca de código de barras suporta. A migração está bem documentada e as alterações na interface da API são previsíveis. Compreender onde o Biblioteca de código de barras para — e especificamente que ele para na geração — é a informação prática necessária para tomar a decisão correta em relação ao momento da execução.

Perguntas frequentes

O que é BarcodeLib?

BarcodeLib é 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 BarcodeLib e IronBarcode?

O IronBarcode utiliza uma API estática e sem estado, que não requer gerenciamento de instâncias, enquanto o BarcodeLib 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 BarcodeLib?

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 suportados pelo BarcodeLib?

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 BarcodeLib?

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 BarcodeLib?

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 BarcodeLib e 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 BarcodeLib para o IronBarcode?

A migração do BarcodeLib 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 relacionado a 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 de ferro

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