Se você está escolhendo uma biblioteca de código de barras C# para um projeto .NET agora, você está enfrentando uma decisão mais difícil do que você poderia esperar. O ecossistema cresceu para incluir pelo menos uma dúzia de opções viáveis, de pacotes de código aberto de custo zero a SDKs empresariais que custam milhares. Cada um faz alegações convincentes sobre suporte de formato, desempenho e compatibilidade entre plataformas. Isso importa porque a escolha errada é cara. Os códigos de barras não são decorativos, eles são infraestrutura. Um sistema de gerenciamento de armazém que processa 50.000 scans por dia, um aplicativo de cuidados de saúde onde os códigos de barras de medicamentos devem ser lidos corretamente a cada vez, um sistema de POS de varejo que lida com rótulos conforme GS1 em mercados internacionais, esses sistemas não podem tolerar uma troca de biblioteca seis meses em produção. Nós resolvemos corrigir a lacuna de avaliação. Nossa equipe comparou 12 bibliotecas de código de barras C# com um conjunto consistente de critérios: suporte de simbologia, capacidade de leitura/escritura, ergonomia da API, implantação cross-platform, suporte de versão .NET e custo total de propriedade. Divulgação completa: somos a equipe por trás do IronBarcode, uma das bibliotecas nesta comparação. Tratamo-lo como uma entrada entre doze, sujeito ao mesmo escrutínio. Exemplo de código: Gerar códigos de barras com o IronBarcode // The simplest barcode generation test: create a Code128 barcode and save it. // IronBarcode example — one line: using IronBarCode; var barcode = BarcodeWriter.CreateBarcode("HELLO-2026", BarcodeWriterEncoding.Code128); barcode.SaveAsPng("hello.png"); Exemplo de imagem de código de barras IronBarcode As 12 bibliotecas em um olhar Aqui está uma tabela de referência rápida com o essencial. Cada detalhe abaixo é expandido nas seções subsequentes. Library License Read Write Formats .NET 8+ Cross-Platform NuGet Downloads IronBarcode Commercial ($749+) ✅ ✅ 50+ ✅ Win/Linux/Mac ~2M ZXing.Net Apache 2.0 (Free) ✅ ✅ ~15 ✅ Win/Linux/Mac ~7M Aspose.BarCode Commercial ($979+) ✅ ✅ 80+ ✅ Win/Linux/Mac ~3M BarcodeLib Apache 2.0 (Free) ❌ ✅ ~30 1D ✅ Win/Linux/Mac ~5M Dynamsoft Barcode Reader Commercial (quote) ✅ ❌ 30+ ✅ Win/Linux/Mac ~500K Syncfusion Barcode Commercial (free <$1M) ❌ ✅ ~10 ✅ Win/Linux/Mac ~1M+ LEADTOOLS Barcode Commercial ($1,469+) ✅ ✅ 100+ ✅ Win/Linux/Mac ~200K Spire.Barcode Commercial (free tier) ✅ ✅ 39+ ⚠️ Win/Linux ~800K NetBarcode MIT (Free) ❌ ✅ ~12 1D ✅ Win/Linux/Mac ~500K OnBarcode Commercial ✅ ✅ 20+ ⚠️ Windows ~100K VintaSoft Barcode Commercial ✅ ✅ 40+ ⚠️ Windows ~50K QRCoder MIT (Free) ❌ ✅ QR only ✅ Win/Linux/Mac ~15M IronBarcode IronBarcode Comércio ($ 799 +) ✅ ✅ 50 + ✅ Win / Linux / Mac - 2M ZXing.Net Cidade.net Apache 2.0 (em inglês) ✅ ✅ • 15 ✅ Win / Linux / Mac 7M Aspose.BarCode Comércio ($979 +) ✅ ✅ Mais de 80 ✅ Win / Linux / Mac - 3M BarcodeLib BarcodeLib Apache 2.0 (em inglês) ❌ ✅ 30 1D ✅ Win / Linux / Mac - 5M Dynamsoft Barcode Reader Ação Comercial (Citação) ✅ ❌ 30+ ✅ Win / Linux / Mac • 500K Syncfusion Barcode Comércio (grátis <$1M) ❌ ✅ • 10 ✅ Win / Linux / Mac - 1 m + LEADTOOLS Barcode Comércio ($ 1.469 +) ✅ ✅ 100 + ✅ Win / Linux / Mac - 200k Spire.Barcode Comércio Livre (Free Tier) ✅ ✅ 39 mais ️ Win / Linux • 800K NetBarcode O que é (Free) ❌ ✅ 12 1D ✅ Win/Linux/Mac • 500K OnBarcode Commercial ✅ ✅ 20+ ️ janela - 100k VintaSoft Barcode Commercial ✅ ✅ Mais de 40 ⚠️ janela ~50K QRCoder MIT (Free) ❌ ✅ QR somente ✅ Win/Linux/Mac ~15M ✅ = Suporte total ⚠️ = Parcial/.NET Padrão somente 💡 = Não suportado Key: Essas bibliotecas são divididas em quatro categorias distintas, e entender onde cada um está sentado é a maneira mais rápida de estreitar sua lista curta. (leia + escreva + pré-processamento + suporte): IronBarcode, Aspose.BarCode, LEADTOOLS Barcode. Estes lidam tanto com a geração e reconhecimento de dados de código de barras, suportam dezenas de formatos, e vêm com acordos de suporte comercial. Full-featured commercial libraries : Dynamsoft Barcode Reader. Dynamsoft specializes in barcode recognition, reading barcodes from camera feeds, scanned images, and documents. It does not generate barcodes. If your application only needs to scan, Dynamsoft deserves serious consideration. Read-focused SDKs BarcodeLib, Syncfusion Barcode, NetBarcode, QRCoder, OnBarcode. Estes criam imagens de código de barras, mas não podem lê-las de fotografias, scans ou documentos. Eles vão desde pacotes de código aberto gratuitos (BarcodeLib, QRCoder) até suítes comerciais de controle de UI (Syncfusion). Generation-focused libraries : Spire.Barcode, VintaSoft Barcode. Estes navios como parte de suites de processamento de documentos maiores. Suas capacidades de código de barras são funcionais, mas secundárias às ofertas centrais de sua suite principal. Suite components Como escolher: correspondendo bibliotecas aos requisitos do projeto Escolher uma biblioteca de códigos de barras não é sobre encontrar o "melhor", é sobre encontrar o melhor. Aqui está uma estrutura de decisão prática organizada pelas questões que realmente importam. for your project's constraints Do You Need to Read Barcodes, Write Them, or Both? Este é o único filtro mais importante. Elimina metade das opções imediatamente. Se você só precisa de barcodes, carry out tasks like printing labels, creating QR codes for marketing materials, embedding barcodes in PDF invoices; then libraries like BarcodeLib, QRCoder, or Syncfusion Barcode are perfectly adequate. They are simpler, lighter, and often free. generate If you need to barcodes from images, camera feeds, scanned documents, or PDFs, your choices narrow to: IronBarcode, ZXing.Net, Aspose.BarCode, Dynamsoft, LEADTOOLS, Spire.Barcode, or VintaSoft. Only these libraries include recognition engines. read Se você precisar - e a maioria dos sistemas de produção eventualmente faz - então IronBarcode, Aspose.BarCode, LEADTOOLS e ZXing.Net são seus principais candidatos. both Qual é o seu orçamento? : ZXing.Net para ler e escrever, BarcodeLib para geração apenas, QRCoder para geração apenas QR. Estes são produtivos prontos para muitos cenários, mas o suporte comercial não existe. $0 (open-source only) : IronBarcode (starts at $749 per developer) offers the strongest feature-to-price ratio in this range. Syncfusion is free for organizations under $1M revenue. Under $1,000 : Aspose.BarCode ($979+ per developer) and LEADTOOLS ($1,469+ per developer) both sit here, with LEADTOOLS carrying additional deployment licensing costs. $1,000–$3,000 : Dynamsoft uses consumption-based pricing. LEADTOOLS requires separate runtime deployment licenses. Both scale well for large organizations but require vendor negotiation. Enterprise / quote-based Which Barcode Formats Do You Need? For mainstream formats (Code128, QR Code, EAN-13, UPC-A, Data Matrix), virtually every library on this list works. The differences emerge with specialized formats: : Crítico para varejo e saúde. IronBarcode, Aspose.BarCode e LEADTOOLS lidam com estes bem. GS1 DataBar / GS1-128 : Requerido para IDs governamentais e etiquetas de transporte. Suportado por IronBarcode, Aspose, LEADTOOLS, Dynamsoft. Não suportado por BarcodeLib ou QRCoder. PDF417 Usado pela UPS para a classificação de pacotes. Somente IronBarcode, Aspose e LEADTOOLS o suportam. MaxiCode : Used on airline boarding passes and transit tickets. Supported by IronBarcode, Aspose, LEADTOOLS, Dynamsoft, and ZXing.Net. Aztec Markets like Japan and China rely heavily on QR codes and specialized 2D formats for mobile payments, transit systems, and supply chain management. If your application targets these regions, prioritize libraries with strong QR code variant support (Micro QR, rMQR) and robust preprocessing for camera-captured images. Para que cenário do mundo real você está construindo? Diferentes indústrias impõem diferentes requisitos de código de barras, e a lacuna entre "suporte ao formato" e "manter o cenário de forma confiável" é onde a seleção de bibliotecas realmente importa. need to generate shipping labels and handle inventory management (typically Code 128 or GS1-128) at volume and read them back under imperfect conditions, damaged labels, poor lighting, skewed angles. Batch processing throughput matters. Libraries that support multithreaded scanning and automatic image preprocessing (IronBarcode, Dynamsoft, LEADTOOLS) have a concrete advantage here over libraries that return best-effort results from clean images only. Warehouse and logistics systems use barcodes on medication packaging (typically GS1 DataBar or Data Matrix) and patient wristbands for identification. Accuracy is non-negotiable, a misread barcode in a medication dispensing system puts patients at risk. Error correction and validation capabilities (checksum verification, confidence scoring) matter more in this domain than in any other. Healthcare and pharmaceutical applications precisam lidar com UPC-A, EAN-13 e códigos QR para a digitalização de produtos e a integração de pagamentos móveis. Em mercados como Japão, China e Coreia do Sul, o pagamento baseado em código QR é o principal método de transação. As bibliotecas devem lidar com a digitalização rápida e sucessiva e integrar-se com bancos de dados de inventário em tempo real. Retail POS and inventory systems encode barcodes in invoices, insurance claims, and legal documents for automated routing and classification. Here, the ability to read barcodes directly from PDF pages — without first rendering to images — saves both development time and processing overhead. IronBarcode and Aspose.BarCode support barcodes stored like this natively; most others require a separate PDF rendering step. Document processing pipelines uses Aztec codes (boarding passes) and PDF417 (ID documents). If your application processes these, you need a library that handles both symbologies with high accuracy from camera captures at various angles and lighting conditions. Airline and transit ticketing Onde você vai implantar? Uma biblioteca que funciona perfeitamente no Visual Studio no Windows pode falhar no tempo de execução em um contêiner do Linux Docker, e o modo de falha é muitas vezes um erro de biblioteca nativa criptográfica em vez de uma clara exceção. : Any library works. This is the easiest deployment scenario and the one most library documentation implicitly assumes. Windows-only server : Eliminate VintaSoft and OnBarcode (Windows-primary). Ensure the library does not depend on IronBarcode, Aspose, Dynamsoft e ZXing.Net todos lidam bem com a implantação cross-platform.Teste cedo, idealmente, seu primeiro "hello world" com a biblioteca deve ser executado em um contêiner Docker correspondente à sua imagem de base de produção. Linux / Docker / cloud Sistema.Drawing.Common O que é : IronBarcode, Syncfusion, and Dynamsoft explicitly support .NET MAUI. ZXing.Net has a mobile-specific package (ZXing.Net.Mobile) but it targets Xamarin, not modern MAUI. For real-time camera scanning, Dynamsoft is the strongest choice; for barcode generation in mobile UIs, Syncfusion's MAUI control is native and polished. .NET MAUI / mobile : Serverless environments add memory and execution-time constraints. Lightweight libraries (QRCoder, BarcodeLib) start faster. Heavier libraries (LEADTOOLS, Aspose) may need larger memory allocations and longer cold-start budgets. IronBarcode and Dynamsoft work in serverless but benefit from provisioned concurrency or premium plans that reduce cold starts. Azure Functions / AWS Lambda As 12 bibliotecas: o que cada uma faz bem e onde cada uma cai curta 1. IronBarcode Descrição: Iron Software A: Vôlei : 2026.2 | : ~2M Developer NuGet BarCode Latest Downloads IronBarcode é uma biblioteca comercial de código de barras .NET que cobre tanto a geração quanto o reconhecimento em mais de 50 simbologias. using IronBarCode; // Generate a styled QR code with a logo var qr = QRCodeWriter.CreateQrCode("https://example.com", 300); qr.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue); qr.SaveAsPng("styled-qr.png"); // Read barcodes from a scanned document var results = BarcodeReader.Read("warehouse-label.png"); foreach (var result in results) Console.WriteLine($"{result.BarcodeType}: {result.Value}"); Generated QR Code and Extracted Barcode Data : A API é concisa, gerando e lendo cada uma leva uma linha de código. As principais características incluem suporte para muitos formatos de dados, filtros de correção de imagem e a capacidade de exportar códigos de barras para vários formatos de imagem. O pré-processamento de imagem (auto-rotação, afiamento, ajuste de contraste) é executado automaticamente durante as leituras, o que é importante para as varreduras do mundo real de códigos de barras danificados ou mal impressos. A leitura de códigos de barras PDF é incorporada, não enrolada. A varredura assínctica e multitrade são suportadas para operações de lote. Suporte cross-platform cobre Windows, Linux, macOS, Docker e .NET MAUI. A biblioteca suporta .NET 8 LTS e .NET . Strengths here Descrição do mundo real SPAN where shipping labels must be generated and scanned at volume, where scanning accuracy directly affects patient safety, and where GS1-compliant labels need to integrate with existing POS systems. warehouse management systems healthcare medication tracking retail packaging workflows : Not free, the Lite license starts at $749 per developer. The NuGet package size (~30MB with dependencies) is heavier than open-source alternatives. Documentation is comprehensive but the comparison pages on Iron Software's site are obviously promotional. Limitations : Teams that need read+write in a single library, value API simplicity, and are building for cross-platform deployment. Especially strong for document-processing pipelines that mix barcode scanning with PDF operations. Best for 2. ZXing.Net : Michael Jahn (community) | : Vôlei : 0,16 x 16 : ~7M Developer NuGet Cidade.net Latest Downloads ZXing.Net é a porta .NET do Google , the most widely used open-source barcode library in existence. It is free, well-known, and installed in millions of projects. Zebra Crossing library using ZXing; using ZXing.Common; // Generate a Code128 barcode var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.CODE_128, Options = new EncodingOptions { Width = 400, Height = 100 } }; var pixelData = writer.Write("HELLO-2026"); // pixelData.Pixels contains raw ARGB bytes — requires additional imaging library to save ZXing.Net Resultados : Free and open-source under Apache 2.0. Massive community familiarity — most tutorials and Stack Overflow answers reference ZXing. Supports common 1D and 2D formats including QR Code, Data Matrix, Code128, EAN, and Aztec. Lightweight. The codebase is mature and battle-tested. Strengths O suporte de formato é mais restrito do que as alternativas comerciais — não há GS1 DataBar, não há MaxiCode, suporte limitado de código postal. A API é verbosa: gerar um código de barras requer a criação de objetos de escritor, opções de codificação e manipulação manual de dados de pixels. Salvar para um arquivo de imagem requer uma biblioteca de imagens separada (SkiaSharp, ImageSharp ou System.Drawing). Não há pré-processamento de imagem embutido para varreduras danificadas. Não há leitura de PDF. O pacote móvel (ZXing.Net.Mobile) visa Xamarin, não .NET MAUI. Manutenção comunitária é inconsistente — as versões podem durar meses. Limitations A practical consideration: because ZXing.Net produces raw pixel data rather than image files, every project that uses it ends up with custom imaging wrapper code. This code is rarely shared between projects, which means every team reinvents the same SkiaSharp-to-PNG pipeline. If your organization has multiple projects using ZXing.Net, you will eventually want to extract that wrapper into a shared library — at which point you have built a significant portion of what commercial libraries provide out of the box. : Projetos onde o orçamento é zero, os requisitos são formatos padrão, e a equipe de desenvolvimento é confortável montando seu próprio tubo de imagem ao redor da biblioteca principal. também uma escolha razoável para cenários simples de apenas leitura onde a qualidade da imagem é consistentemente boa (etiquetas pré-impressas, imagens de código de barras digital). Best for 3. Aspose.BarCode : Aspose | : | : 26.2 | : ~ 3M Developer NuGet Avaliação.BarCode Latest Downloads Aspose.BarCode is the barcode component of Aspose's . It claims support for 80+ symbologies and runs across .NET, Java, C++, and Python. document-processing suite using Aspose.BarCode.Generation; using Aspose.BarCode.BarCodeRecognition; // Generate var generator = new BarcodeGenerator(EncodeTypes.Code128, "HELLO-2026"); generator.Save("aspose-barcode.png"); // Read using var reader = new BarCodeReader("aspose-barcode.png", DecodeType.Code128); foreach (var result in reader.ReadBarCodes()) Console.WriteLine($"{result.CodeType}: {result.CodeText}"); Aspose.BarCode Saída 4. BarcodeLib : Brad Barnhill | : | : 3.1.5 | : ~5M Developer NuGet BarcodeLib Latest Downloads BarcodeLib is a lightweight, barcode library. It creates 1D barcode images from strings. That is all it does, and it does it well. Fonte aberta Geração using BarcodeLib; using SkiaSharp; var b = new Barcode(); b.IncludeLabel = true; var img = b.Encode(BarcodeStandard.Type.UpcA, "038000356216", SKColors.Black, SKColors.White, 290, 120); // img is an SKImage — save with SkiaSharp BarcodeLib Output : Simple, fast, zero configuration needed. Supports ~30 1D symbologies including UPC-A/E, EAN-8/13, Code128, Code39, Code93, ITF, Codabar, and Postnet. The API is one method call. Apache 2.0 licensed. Migrated from System.Drawing to SkiaSharp, ensuring cross-platform compatibility on modern .NET. Extremely lightweight package. Strengths : 1D barcodes only, no QR codes, no Data Matrix, no PDF417. Generation only, cannot read barcodes. No preprocessing, no PDF support, no batch operations. If your requirements grow beyond simple 1D generation, you will need to replace this library entirely. Limitations : Projects that need to generate standard 1D barcodes (product labels, inventory tags) with minimal overhead and zero cost. A good starting point for MVPs that may graduate to a fuller library later. Best for teams start with BarcodeLib for a prototype, ship it to production, and six months later receive a requirement to also Nesse ponto, eles adicionam uma segunda biblioteca (ZXing.Net para leitura) ou migram inteiramente para uma biblioteca de leitura e escrita (IronBarcode, Aspose). Se você suspeitar que seus requisitos crescerão além da geração, considere começar com uma biblioteca mais completa para evitar o custo de migração mais tarde. Se você está confiante de que o escopo permanecerá estreito, BarcodeLib é difícil de vencer pelo que faz. A common pattern we see: read 5. Dynamsoft Barcode Reader : Dynamsoft | : Dynamsoft.DotNet.BarcodeReader | : ~ 500K Developer NuGet Downloads Dynamsoft is a barcode Especialista.A empresa passou mais de duas décadas otimizando o reconhecimento de códigos de barras a partir de feeds de câmera, documentos digitalizados e imagens de baixa qualidade. covers setup, template configuration, and performance tuning. leitura .NET SDK documentation // Dynamsoft uses a template-based configuration approach // Initialization requires a license key and runtime setup using Dynamsoft.DBR; var reader = BarcodeReader.GetInstance(); var results = reader.DecodeFile("damaged-label.jpg"); foreach (var result in results) Console.WriteLine($"{result.BarcodeFormatString}: {result.BarcodeText}"); : A precisão de reconhecimento está entre as mais altas da indústria. A Dynamsoft reivindica 34,9% mais códigos QR reconhecidos do que o próximo melhor concorrente em seu benchmark de 1.000+ códigos em 16 tipos de qualidade de imagem. Os modelos de reconhecimento personalizáveis permitem o ajuste fino para condições específicas de códigos de barras (danificados, borrões, baixo contraste, ângulos extremos). A digitalização de feed de câmera em tempo real é uma funcionalidade de primeira classe, não uma reflexão posterior. SDKs multi-plataforma cobrem .NET, JavaScript, Python, Java e móveis. certificado ISO 27001. Strengths : Read-only, no barcode generation at all. Pricing is consumption-based and quote-dependent, making cost prediction difficult for variable-volume workloads. The .NET SDK requires more setup than simpler libraries. The licensing model involves runtime keys and online activation, which can complicate air-gapped deployments. Limitations Aplicativos onde a precisão de reconhecimento de feeds de câmera do mundo real ou documentos danificados é a prioridade máxima. escaneamento de armazém, sistemas POS móveis e imagem de controle de qualidade industrial. Também forte para organizações que precisam de suporte de SDK multi-linguagem (JavaScript para a web, .NET para backend, mobile-native para aplicativos) de um único fornecedor. Best for The read-only limitation is important to understand architecturally: if your application needs to both generate and scan barcodes (most production systems do), Dynamsoft must be paired with a generation library. Common pairings include Dynamsoft + QRCoder (for QR generation) or Dynamsoft + IronBarcode (for full-format generation). This adds a dependency but lets you use best-in-class tools for each task. 6. Syncfusion Barcode Generator : Syncfusion | : Various (por quadro) : ~1M+ Developer NuGet Downloads O gerador de códigos de barras da Syncfusion é um controle de interface incorporado dentro de seu enorme Ele gera códigos de barras como componentes visuais em aplicativos Blazor, .NET MAUI, WinForms, WPF e ASP.NET Core. Essential Studio suite // Syncfusion — MAUI XAML approach // <barcode:SfBarcodeGenerator Value="https://example.com" ShowText="True" // HeightRequest="250" WidthRequest="250"> // <barcode:SfBarcodeGenerator.Symbology> // <barcode:QRCode /> // </barcode:SfBarcodeGenerator.Symbology> // </barcode:SfBarcodeGenerator> : Free community license for organizations under $1M revenue and fewer than 5 developers. Deep UI framework integration, the barcode control is a native XAML/Blazor component, not an image-generation library. Supports common 1D symbologies (Code128, EAN, UPC, Code39) and 2D (QR Code, Data Matrix). Visual customization (colors, text positioning, module sizing) is built into the control properties. Documentation is thorough with framework-specific guides. Strengths : Geração somente, sem leitura/reconhecimento de código de barras. Área de simbologia limitada (~10 tipos) em comparação com bibliotecas de código de barras dedicadas. Você deve adotar o ecossistema Syncfusion completo (paquetes NuGet, registro de manipulador, infraestrutura de licenciamento). O controle de código de barras está estreitamente ligado a frameworks de UI específicos, não é uma biblioteca de geração de imagens de propósito geral que você pode chamar de um aplicativo de console ou serviço de fundo. Se você não estiver usando controles Syncfusion, adotá-los para a geração de código de barras sozinho é uma overkill arquitetônica. Limitations : Teams already invested in the Syncfusion UI ecosystem who need to display barcodes in front-end applications. Not suitable for backend barcode processing, document generation, or scanning workflows. Best for 7 - Código de Barras : Apryse (formerly LEAD Technologies) | : Leadtools.Código de barras : ~200K Developer NuGet Downloads LEADTOOLS é uma mulher de 30 anos that includes barcode functionality as part of a larger document and medical imaging toolkit. It supports over 100 barcode types and sub-types — the most of any library in this comparison. imaging SDK : Unmatched symbology breadth, over 100 types including all major 1D, 2D, postal, and composite barcodes. Patented AI-powered recognition algorithms. Advanced preprocessing (deskew, noise removal, hole-punch removal, glare correction). Multi-language support across .NET, C++, Java, and mobile platforms. Enterprise-grade with 30+ years of track record in medical imaging and government document processing. Strengths : A opção mais cara nesta comparação. As licenças de desenvolvimento começam em US $ 1.469, e a implantação requer licenças de tempo de execução separadas cujo preço varia de acordo com o modelo de implantação (você deve entrar em contato com as vendas para citações). A superfície da API é grande e complexa, o LEADTOOLS é um SDK de imagem primeiro e uma biblioteca de código de barras em segundo lugar. Você carrega objetos RasterImage, cria instâncias do BarcodeEngine e configura opções específicas para a simbologia. Esta não é uma API de uma linha. Limitations : Organizações empresariais que já usam LEADTOOLS para imagens, processamento de DICOM médico ou fluxos de trabalho de documentos do governo. Projetos que exigem simbologias de código de barras extremamente raras ou pré-processamento de imagem de classe industrial. Vale a pena notar: LEADTOOLS foi adquirido pela Apryse em 2023, o que pode afetar a estratégia de longo prazo de produtos e preços – algo a verificar com o fornecedor antes de se comprometer com uma implantação de vários anos. Best for 8. Spire.Barcode : e-iceblue | A: | : ~800K Developer NuGet Spire.Barcode Downloads Spire.Barcode é o componente de código de barras do Spire.Office da e-iceblue , um concorrente com sede na China para a Aspose. Ele suporta mais de 39 formatos de código de barras com geração e reconhecimento. suite : Free community edition available with limited features. Supports both 1D and 2D formats including QR Code, Data Matrix, and PDF417. Simple "one line of code" API for generation. Component mode allows drag-and-drop barcode creation in WinForms/ASP.NET designers. The paid edition improves scanning speed significantly over the free tier. Strengths : O suporte cross-platform é incompleto, a biblioteca depende do System.Drawing.Common no .NET Framework e usa o SkiaSharp no .NET moderno, mas o suporte MAUI/móvel não é claro. a compatibilidade .NET 8+ existe através da segmentação .NET Standard 2.0, não nas edições nativas do .NET 8.A documentação é mais escassa do que os concorrentes ocidentais.O nível gratuito adiciona watermarks de avaliação aos códigos de barras gerados.O tamanho do pacote NuGet é grande (~15MB).A adoção da comunidade fora da China é limitada. Limitations Equipes já usando componentes do Spire.Office, ou desenvolvedores que trabalham principalmente em ambientes de desenvolvimento em língua chinesa, onde o e-iceblue tem mais apoio comunitário. Best for 9. NetBarcode Tagliatti (comunidade) NETBARCODE : 1.7.x | : ~500K Developer NuGet Latest Downloads NetBarcode é um mínimo, Cria códigos de barras 1D usando o ImageSharp (anteriormente System.Drawing). Licenciado : Licença MIT, verdadeiramente livre sem restrições. Pequena pegada. API simples. Migrado para SixLabors.ImageSharp, removendo a dependência do System.Drawing para suporte cross-platform genuíno. Suporta formatos 1D padrão: Code128, Code39, Code93, EAN-13, EAN-8, e alguns outros. Strengths : Geração somente, sem leitura de código de barras. apenas códigos de barras 1D, sem códigos QR, sem Matriz de Dados. Suporte limitado à simbologia (~12 tipos). Opções mínimas de personalização. Manutenção única com atualizações raras. Sem suporte comercial. Limitations : Geração mínima de código de barras 1D em aplicações .NET onde cada byte de dependência conta e a licença MIT é um requisito difícil. NetBarcode é o "microlib" desta comparação, ele faz uma coisa com uma superposição mínima. Para microsserviços em contêiner onde o tamanho da imagem importa, a pequena pegada do NetBarcode é uma vantagem genuína sobre alternativas mais pesadas. A dependência ImageSharp também significa que ele funciona limpo em todas as plataformas sem o System.Drawing preocupações que atormentam bibliotecas mais antigas. Best for 10 - Código OnBarcode A: Vôlei .NET padrão 2.0 Developer OnBarcode Platform O OnBarcode fornece SDKs de geração de código de barras e reconhecimento com as variantes .NET e Java. A biblioteca suporta mais de 20 simbologias em dois DLLs separados, um baseado no System.Drawing.Common (Windows) e um no SkiaSharp (cross-platform). : Produto maduro com uma longa história. Suporte para geração e reconhecimento. Fornece DLLs separados para ambientes Windows e cross-platform. Suporte para codificação de dados GS1 para aplicações de varejo e cadeia de suprimentos. Strengths : O público primário é os desenvolvedores do Windows, o suporte para Linux e macOS veio mais tarde e é menos provado. .NET 8+ suporte é através do .NET Standard, não de segmentação nativa. Informações sobre preços e licenças não são publicadas de forma transparente em seu site. A qualidade da documentação está atrasada atrás dos concorrentes de topo. Números de downloads do NuGet sugerem uma base de usuários menor (~100K), o que correlaciona com menos recursos da comunidade e respostas de Stack Overflow. Limitations Projetos do .NET Framework centrados no Windows que requerem geração básica de código de barras com alguma capacidade de reconhecimento. O OnBarcode tem uma longa história no espaço de código de barras do .NET e foi um dos primeiros entradores no mercado. As equipes que mantêm aplicativos .NET Framework 4.x legados podem achar que é mais natural do que as bibliotecas que se orientaram inteiramente para o .NET moderno. No entanto, para novos projetos que visam o .NET 8+, as alternativas acima oferecem uma melhor experiência para desenvolvedores e um suporte mais forte entre plataformas. Best for VintaSoft Código de Barras Atividade: VintaSoft .NET Framework ou padrão .NET Developer Platform is part of VintaSoft's imaging toolkit. It supports reading and writing 40+ 1D and 2D symbologies in digital images and PDF files. VintaSoft Barcode .NET SDK : Suporta a geração e o reconhecimento em uma ampla gama de símbolos. leitura de código de barras PDF. Inclui um componente de visualizador de imagem WPF para exibição interativa de código de barras. Integração com o conjunto de ferramentas de imagem e documento mais amplo da VintaSoft. Strengths O suporte cross-platform (.NET Core / .NET 5+) existe, mas é secundário à experiência do Windows. Base de usuários menor significa menos recursos da comunidade, tutoriais e integrações de terceiros. Preço requer contato de vendas. O produto evolui mais lentamente do que bibliotecas ativamente concorrentes, como IronBarcode ou Aspose. Limitations A integração do visualizador WPF é seu ponto de venda único - se o seu aplicativo precisa de exibição de código de barras interativo com pan/zoom e anotação ao lado da detecção de código de barras, o VintaSoft fornece isso em um único componente, em vez de exigir bibliotecas de código de barras e imagens separadas. Best for 12o - QRCoder Raffael Herrmann (comunidade) A: Vôlei : ~ 15m Developer NuGet QRCoder Downloads QRCoder é o barcode-related package on NuGet — but it does exactly one thing: generate QR codes. No reading. No other formats. most downloaded using QRCoder; var generator = new QRCodeGenerator(); var data = generator.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.Q); var qrCode = new PngByteQRCode(data); byte[] qrCodeImage = qrCode.GetGraphic(20); File.WriteAllBytes("qr.png", qrCodeImage); QRCoder Saída : Escopo focado em laser. Extremamente bem mantido com lançamentos frequentes. 15M+ downloads NuGet provam confiabilidade de produção. Zero dependências externas no pacote principal. Multiplos renderizadores de saída: bytes PNG, SVG, arte ASCII, PDF e mais. licenciado pelo MIT. Suporta níveis de correção de erros, cores personalizadas e zonas silenciosas. Strengths Apenas códigos QR, nenhum outro símbolo.Geração somente, não pode ler códigos QR.Se você eventualmente precisar de qualquer outro tipo de código de barras ou capacidade de reconhecimento, você precisará de uma segunda biblioteca. Limitations Projetos que só precisam de geração de código QR e querem a opção mais comprovada, leve, livre de dependência disponível. materiais de marketing, codificação de URLs, códigos QR de pagamento móvel, bilhete de evento. Best for A contagem de 15 milhões de downloads do QRCoder torna-o um dos pacotes mais confiáveis no ecossistema .NET. Sua arquitetura de renderização é particularmente bem projetada: você pode extrair códigos QR como bytes PNG, cadeias SVG, arte ASCII para exibição terminal, ou até mesmo como páginas PDF, tudo sem adicionar uma única dependência externa. Para equipes que incorporam códigos QR em páginas da Web (PNGs codificados com Base64 ou SVGs inline), a API do QRCoder é a opção mais ergonômica disponível. O único cenário em que o QRCoder cai abaixo das expectativas é quando os desenvolvedores assumem que porque ele gera códigos QR tão bem, ele também deve lê-los. não. Se você precisa gerar e ler códigos QR, combine o QRCoder com o ZXing.Net (gratuito) ou o IronBarcode (comercial) para o lado de leitura. Avaliações sobre o Code128 Barcode Aqui está como quatro bibliotecas geram um código de barras Code128 da cadeia "SHIP-2026-0042" e salvam-no como uma imagem PNG. (1 linha de código significativo): IronBarcode using IronBarCode; BarcodeWriter.CreateBarcode("SHIP-2026-0042", BarcodeWriterEncoding.Code128) .SaveAsPng("iron-barcode.png"); (requer uma biblioteca de imagens adicional): ZXing.Net using ZXing; using ZXing.Common; using SkiaSharp; var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.CODE_128, Options = new EncodingOptions { Width = 400, Height = 100, Margin = 10 } }; var pixelData = writer.Write("SHIP-2026-0042"); using var bitmap = new SKBitmap(pixelData.Width, pixelData.Height); System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmap.GetPixels(), pixelData.Pixels.Length); using var image = SKImage.FromBitmap(bitmap); using var data = image.Encode(SKEncodedImageFormat.Png, 100); File.WriteAllBytes("zxing-barcode.png", data.ToArray()); (2 linhas de código significativo): Aspose.BarCode using Aspose.BarCode.Generation; var generator = new BarcodeGenerator(EncodeTypes.Code128, "SHIP-2026-0042"); generator.Save("aspose-barcode.png"); (3 linhas + SkiaSharp para salvar): BarcodeLib using BarcodeLib; using SkiaSharp; var b = new Barcode(); var img = b.Encode(TYPE.CODE128, "SHIP-2026-0042", SKColors.Black, SKColors.White, 400, 100); using var data = img.Encode(SKEncodedImageFormat.Png, 100); File.WriteAllBytes("barcodelib-barcode.png", data.ToArray()); A tomada é clara: IronBarcode e Aspose.BarCode abstraem completamente o pipeline de imagem. and BarcodeLib require you to bring your own image-encoding solution. For a one-off script this barely matters. For a codebase maintained by multiple developers across years, API simplicity compounds. Cidade.net Há um ponto arquitetônico mais profundo aqui. Bibliotecas que produzem dados de pixel brutos (ZXing.Net) ou objetos SkiaSharp (BarcodeLib) forçam você a adotar uma dependência de imagem específica em todo o seu fluxo de trabalho de código de barras. Se você mais tarde mudar bibliotecas de imagem - digamos, de SkiaSharp para ImageSharp - você precisará refactor cada site de chamada. Bibliotecas que lidam com sua própria saída de imagem (IronBarcode, Aspose) isolam seu código de aplicação de detalhes de implementação de imagem. Isto importa mais do que a maioria dos desenvolvedores percebem até que eles tenham três anos em um projeto e enfrentam uma dependência de upgrade. Head-to-Head: Leia códigos de barras de imagens Aqui está como quatro bibliotecas lidam com a leitura de códigos de barras de uma imagem de rótulo de armazém digitalizada: : IronBarcode using IronBarCode; var results = BarcodeReader.Read("warehouse-label.png"); foreach (var r in results) Console.WriteLine($"[{r.BarcodeType}] {r.Value}"); (requer carregar a imagem manualmente): ZXing.Net using ZXing; using SkiaSharp; using var bitmap = SKBitmap.Decode("warehouse-label.png"); var reader = new BarcodeReaderGeneric(); var luminanceSource = new SKBitmapLuminanceSource(bitmap); var result = reader.Decode(luminanceSource); Console.WriteLine(result?.Text ?? "No barcode found"); // Note: Decode() returns only the first barcode found : Aspose.BarCode using Aspose.BarCode.BarCodeRecognition; using var reader = new BarCodeReader("warehouse-label.png"); foreach (var result in reader.ReadBarCodes()) Console.WriteLine($"[{result.CodeType}] {result.CodeText}"); : Dynamsoft using Dynamsoft.DBR; BarcodeReader.InitLicense("YOUR-LICENSE-KEY"); var reader = BarcodeReader.GetInstance(); var results = reader.DecodeFile("warehouse-label.jpg"); foreach (var r in results) Console.WriteLine($"[{r.BarcodeFormatString}] {r.BarcodeText}"); Todas as quatro lidam bem com imagens de código de barras limpas e de alto contraste. As diferenças superfiquem com entradas desafiadoras: códigos de barras rotativos, capturas de câmera de baixa resolução, rótulos danificados ou códigos de barras incorporados em PDFs de várias páginas. O pré-processamento automático do IronBarcode (acentuação, contraste, correção de rotação) e o ajuste de reconhecimento baseado em modelo do Dynamsoft são projetados especificamente para esses cenários. Uma sutileza que muitas vezes surpreende os desenvolvedores: o método Decode() da ZXing.Net retorna apenas o Se o seu documento digitalizado contém múltiplos códigos de barras (comuns em rótulos de envio, formulários de seguro e faturas de múltiplos itens), você precisa configurar explicitamente o leitor para retornar múltiplos resultados. IronBarcode, Aspose e Dynamsoft por padrão para a detecção de múltiplos códigos de barras. Esta distinção sozinha causou erros de produção em sistemas que assumiram que todos os códigos de barras em uma página seriam encontrados. first Another consideration is Em fluxos de trabalho pesados com documentos, processamento de reclamações de seguros, gerenciamento de documentos legais, papelaria da cadeia de suprimentos, códigos de barras são incorporados em arquivos PDF, não em imagens autônomas. IronBarcode lê códigos de barras diretamente de páginas PDF através do BarcodeReader.ReadPdf() sem exigir que o desenvolvedor primeiro reproduza cada página para uma imagem. Aspose consegue isso através da integração com Aspose.PDF. ZXing.Net e Dynamsoft exigem um passo separado de renderização de PDF para imagem usando uma biblioteca como o PDFium ou o IronPDF. Esse passo adicional adiciona complexidade, dependências e tempo de processamento, especialmente para lotes de documentos de centenas de páginas. PDF reading Desempenho e Processamento de Batch Os benchmarks de desempenho para bibliotecas de códigos de barras são difíceis de padronizar porque a velocidade de reconhecimento depende fortemente da qualidade da imagem, do tipo de código de barras, da resolução da imagem e do número de códigos de barras por imagem. Velocidade de reconhecimento de imagem única For clean, well-formatted barcode images (high contrast, no damage, single barcode per image), all libraries that support reading complete the task in under 100 milliseconds. The differences are negligible for interactive applications. Speed becomes meaningful only at scale or with challenging inputs. Arquitetura de Processamento de Batch Ao processar milhares de imagens de código de barras - um requisito comum na digitalização de documentos, recebimento de armazém e processamento de reclamações de seguros - a arquitetura de processamento de lote da biblioteca importa significativamente. O BarcodeReader aceita opções de BarcodeReader que incluem Multithreaded = true e pode processar TIFFs e PDFs de várias páginas página por página sem carregar documentos inteiros na memória. IronBarcode using IronBarCode; var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced, ExpectMultipleBarcodes = true, Multithreaded = true, MaxParallelThreads = 4, ExpectBarcodeTypes = BarcodeEncoding.All }; var results = BarcodeReader.Read("multiple-barcodes.pdf", options); Console.WriteLine($"Found {results.Count()} barcodes across all pages"); Batch Processing with IronBarcode fornece capacidades de lote semelhantes através de sua classe BarCodeReader com predefinições de QualitySettings configuráveis (HighPerformance, NormalQuality, HighQuality, MaxBarCodes). Aspose.BarCode usa uma abordagem baseada em modelo onde os parâmetros de varredura (formatos esperados, região de interesse, configurações de desbloqueio) são especificados em modelos JSON. Isso permite a otimização de grãos finos por caso de uso. Dynamsoft Os desenvolvedores implementam seu próprio paralelismo usando Task.WhenAll ou Parallel.ForEach, carregando e processando imagens individualmente. Isso funciona, mas coloca a carga de orquestração no código do aplicativo. ZXing.Net supports multithreaded barcode operations as part of its broader imaging pipeline. The advantage here is that preprocessing (deskew, despeckle, border removal) and barcode reading can be chained in a single threaded pipeline, which is efficient for scanned-document workflows where every image needs cleanup before reading. LEADTOOLS Considerações de pegada de memória As bibliotecas que carregam documentos PDF inteiros ou imagens de alta resolução na memória podem causar problemas em ambientes restritos por recursos (Azure App Service, AWS Lambda, Pods Kubernetes com limites de memória).O IronBarcode processa páginas PDF individualmente para gerenciar a memória.A abordagem da Aspose é semelhante.O ZXing.Net opera em imagens individuais, por isso a gestão da memória é da responsabilidade do desenvolvedor.O SDK do servidor da Dynamsoft é otimizado para operações de memória de baixa capacidade.O LEADTOOLS fornece gerenciamento de memória explícito através de seus padrões de descarte RasterImage, mas requer codificação cuidadosa para evitar vazamentos em cenários de lote. A vantagem do pré-processamento Para sistemas de produção, a precisão de reconhecimento em entradas imperfeitas é mais importante do que a velocidade bruta em entradas limpas. Uma biblioteca que lê 10.000 códigos de barras limpos por segundo, mas falha em 5% das varreduras do mundo real custa mais – em termos operacionais – do que uma que processa 5.000 por segundo com uma taxa de falha de 0,5%. Pré-processamento de imagem (auto-rotação, aumento de contraste, afiado, redução de ruído) é o que coloca essa lacuna. IronBarcode, Dynamsoft e LEADTOOLS incluem todos o pré-processamento em seu pipeline de reconhecimento. Suporte para Matrix Esta matriz abrange os formatos mais comumente necessários na produção.Para listas completas, consulte a documentação oficial de cada biblioteca. Symbology IronBarcode ZXing.Net Aspose BarcodeLib Dynamsoft Syncfusion LEADTOOLS Spire QRCoder Code 128 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ Code 39 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ QR Code ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ Data Matrix ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ EAN-13 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ UPC-A ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ PDF417 ✅ ✅ ✅ ❌ ✅ ❌ ✅ ✅ ❌ Aztec ✅ ✅ ✅ ❌ ✅ ❌ ✅ ❌ ❌ GS1 DataBar ✅ ⚠️ ✅ ❌ ✅ ❌ ✅ ❌ ❌ MaxiCode ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Micro QR ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Intelligent Mail ✅ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ Código 128 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ Code 39 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ Código QR ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ Matriz de Dados ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ EAN-13 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ UPC-A ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ PF417 ✅ ✅ ✅ ❌ ✅ ❌ ✅ ✅ ❌ Azteca ✅ ✅ ✅ ❌ ✅ ❌ ✅ ❌ ❌ GS1 DataBar ✅ ️ ✅ ❌ ✅ ❌ ✅ ❌ ❌ MaxiCode ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Micro QR ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Correio inteligente ✅ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ Key: ✅ = Leia + Escreva ⚠️ = Suporte parcial 💡 = Não é suportado Três padrões emergem desta matriz. Primeiro, as bibliotecas comerciais (IronBarcode, Aspose, LEADTOOLS) cobrem consistentemente a gama mais ampla, eles são as únicas opções se você precisar de formatos como MaxiCode, Micro QR ou Mail Intelligent. Segundo, o ZXing.Net cobre formatos mainstream bem, mas cai rapidamente para códigos industriais ou postais especializados. Terceiro, bibliotecas de geração única (BarcodeLib, QRCoder, Syncfusion) são inerentemente limitadas aos formatos para os quais foram projetados. Uma nota prática sobre a simbologia afirma: LEADTOOLS e Aspose citam os números mais altos (100+ e 80+ respectivamente), mas muitos deles são subtipos da mesma família. Por exemplo, Code 128A, Code 128B e Code 128C são listados como três entradas separadas por alguns fornecedores, mas são realmente variantes de uma única especificação. O número que importa não é "quantas simbologias" mas "apóia os formatos específicos que minha aplicação precisa". Para equipes que não sabem quais formatos precisarão, aqui está um mínimo seguro: Código 128 (alfanumérico para fins gerais), Código QR (2D dados com correção de erros), EAN-13 / UPC-A (produtos de varejo) e Data Matrix (compact 2D para marcação industrial). Qualquer biblioteca que suporte estes quatro cobre cerca de 90% dos cenários de código de barras do mundo real. Compatibilidade de plataforma e implantação Projetos .NET modernos são implantados em todos os lugares, servidores Windows, contêineres do Linux Docker, serviços de aplicativos do Azure, funções do AWS Lambda e dispositivos móveis. Library .NET 8 LTS .NET 10 Linux/Docker macOS .NET MAUI Blazor Azure/AWS IronBarcode ✅ ✅ ✅ ✅ ✅ ✅ ✅ ZXing.Net ✅ ✅ ✅ ✅ ⚠️ ✅ ✅ Aspose.BarCode ✅ ✅ ✅ ✅ ✅* ✅ ✅ BarcodeLib ✅ ✅ ✅ ✅ ❌ ✅ ✅ Dynamsoft ✅ ✅ ✅ ✅ ✅ ❌ ✅ Syncfusion ✅ ✅ ✅ ✅ ✅ ✅ ✅ LEADTOOLS ✅ ⚠️ ✅ ✅ ✅ ⚠️ ✅ Spire.Barcode ⚠️ ⚠️ ✅ ⚠️ ❌ ❌ ⚠️ NetBarcode ✅ ✅ ✅ ✅ ❌ ❌ ✅ QRCoder ✅ ✅ ✅ ✅ ❌ ✅ ✅ IronBarcode ✅ ✅ ✅ ✅ ✅ ✅ ✅ Cidade.net ✅ ✅ ✅ ✅ ️ ✅ ✅ Avaliação.BarCode ✅ ✅ ✅ ✅ * ✅ ✅ BarcodeLib ✅ ✅ ✅ ✅ ❌ ✅ ✅ Dinâmica ✅ ✅ ✅ ✅ ✅ ❌ ✅ Sincronização ✅ ✅ ✅ ✅ ✅ ✅ ✅ Diretrizes ✅ ⚠️ ✅ ✅ ✅ ️ ✅ Arquivo da tag: barcode ️ ️ ✅ ️ ❌ ❌ ️ NetBarcode ✅ ✅ ✅ ✅ ❌ ❌ ✅ Qrcoder ✅ ✅ ✅ ✅ ❌ ✅ ✅ Key: ✅ = Testado/documentado ⚠️ = Através do .NET Standard / não explicitamente testado ⚠️ = Não suportado ⚠️ * = Através do objetivo do .NET MAUI A linha de divisão crítica é A Microsoft As bibliotecas que ainda dependem dela (versões mais antigas de BarcodeLib, Spire, OnBarcode) falharão silenciosamente ou lançarão exceções de tempo de execução quando implementadas em contêineres Linux. IronBarcode, Aspose e ZXing.Net todos migraram para longe desta dependência. System.Drawing.Common Desativou este pacote para plataformas não-Windows Docker e implantação em nuvem As bibliotecas de código de barras que visam o .NET 8+ nativamente (não através da compatibilidade .NET Standard) geralmente oferecem a experiência mais suave. Bibliotecas que visam o .NET Standard 2.0 tecnicamente funcionam no .NET 8, mas podem perder otimizações específicas para a plataforma e introduzir conflitos de resolução de dependências. Um gotcha específico: algumas bibliotecas de códigos de barras requerem bibliotecas nativas do sistema para processamento de imagens. Em uma imagem Docker mínima (como mcr.microsoft.com/dotnet/runtime:8.0), estas podem não estar presentes. IronBarcode carrega seus próprios binários nativos. ZXing.Net depende de qualquer biblioteca de imagem que você combine com. Dynamsoft inclui bibliotecas nativas específicas de plataforma em seu pacote NuGet. Se sua imagem do Docker não tiver libgdiplus ou libfontconfig, bibliotecas dependendo do System.Drawing ou de certas configurações do SkiaSharp falharão no tempo de execução. Sempre teste em um contêiner que corresponda à sua imagem de base de produção. .NET MAUI e considerações móveis A digitalização de códigos de barras móveis é fundamentalmente diferente do processamento do lado do servidor. A entrada é um feed de câmera ao vivo com iluminação variável, distorção de movimento e ângulos imprevisíveis. Bibliotecas projetadas para processamento de imagem baseado em arquivos (a maioria das entradas nesta lista) precisam de adaptação para cenários de câmera em tempo real. IronBarcode suporta alvos .NET MAUI e pode processar imagens capturadas pela câmera, embora não seja especificamente otimizado para feeds de vídeo ao vivo da maneira que Dynamsoft é. O controle de código de barras da Syncfusion gera códigos de barras em UIs MAUI, mas não os lê. Comparação de Preços e Licenças Um "gratuito" biblioteca que custa sua equipe 40 horas extras de trabalho de integração não é realmente mais barato do que uma opção comercial de US $ 749. Library License Model Entry Price Includes Support Free Tier Redistribution IronBarcode Perpetual per-developer $749 1 year included 30-day trial Add-on ($) ZXing.Net Apache 2.0 $0 Community only ✅ Full ✅ Free Aspose.BarCode Perpetual per-developer $979 1 year included Evaluation (watermark) Add-on ($) BarcodeLib Apache 2.0 $0 Community only ✅ Full ✅ Free Dynamsoft Consumption-based Quote Included 30-day trial License-dependent Syncfusion Per-developer $0 (<$1M revenue) Included Community license Suite-dependent LEADTOOLS Per-developer + runtime $1,469 1 year included 60-day eval Separate runtime ($) Spire.Barcode Per-developer Quote Included Free edition (limited) Add-on ($) NetBarcode MIT $0 Community only ✅ Full ✅ Free QRCoder MIT $0 Community only ✅ Full ✅ Free IronBarcode Perpétuo Per-Developer Dólar 749 1 ano incluído 30 dias de julgamento Adesão ($) Cidade.net O Apache 2.0 Dólar 0 União só É cheio Livre Avaliação.BarCode Perpétuo Per-Developer Dólar 979 1 ano incluído Avaliação (marca d’água) Adesão ($) BarcodeLib O Apache 2.0 Dólar 0 União só É cheio Livre Dinâmica Consumo baseado Citações Incluído 30 dias de julgamento Licenciamento dependente Sincronização Per-desenvolvimento $0 (<$1M de receita) Incluído Licença Comunitária Suíte dependente Diretrizes Per-developer + tempo de execução Dólar 1469 1 ano incluído 60 dias de avaliação Tempo de execução separado ($) Arquivo da tag: barcode Per-desenvolvimento Citações Incluído Edição Gratuita (limitada) Adesão ($) NetBarcode com Dólar 0 União só É cheio Livre Qrcoder com Dólar 0 Community only É cheio Livre : Hidden cost factors to consider As ferramentas precisam ser separadas Licenças para produção, a licença de desenvolvimento sozinha não cobre o envio de seu aplicativo.Isso é incomum e pode aumentar significativamente o custo total para implantações multi-servidor. implantação O preço baseado no consumo da Dynamsoft torna o orçamento imprevisível para aplicações com volumes variáveis de digitalização de códigos de barras.Um sistema de gerenciamento de armazém que processa 10.000 digitalizações durante os picos de férias, mas 500 durante os meses mais lentos verá faturas muito diferentes. A licença de comunidade gratuita da Syncfusion tem requisitos de elegibilidade rigorosos (cap de receita de US$ 1 milhão, limite de desenvolvedor de 5 milhões, limite de funcionários de 10 milhões).As empresas em crescimento podem atingir esses limiares rapidamente e enfrentar uma transição abrupta para licenciamento pago. As bibliotecas de código aberto (ZXing.Net, BarcodeLib, QRCoder, NetBarcode) não carregam nenhum custo de licença, mas também nenhum SLA. Se um bug crítico bloqueia sua implantação de produção em uma tarde de sexta-feira, você está sozinho até que um membro da comunidade decida rever seu problema GitHub. Custo total de propriedade: além do preço do adesivo O esforço de integração, a carga de manutenção e o risco operacional são os custos invisíveis que muitas vezes dominam o total. : $0 custo de licença. Mas fatores em: 5-15 horas de trabalho de integração adicional para montar um pipeline de imagem (ZXing.Net), zero tempo de resposta garantido para bugs, e o risco de que um único mantenedor abandone o projeto. Para uma startup construindo um MVP, esses compromissos são geralmente aceitáveis. Para uma empresa implantando para a produção, o cálculo muitas vezes se desvia, uma licença comercial de US $ 749 que economiza 20 horas de tempo do desenvolvedor em US $ 100 / hora já pagou por si mesma. Open-source (ZXing.Net, BarcodeLib, QRCoder) : $749-$979 por desenvolvedor com um ano de suporte e atualizações. Licença perpétua significa que não são necessários pagamentos contínuos, você pode continuar usando a versão que comprou indefinidamente. As renovações de suporte para os anos subsequentes são opcionais. O custo total para uma equipe de 3 pessoas ao longo de 3 anos varia de cerca de $2,250 a $5,900 dependendo se você renova o suporte anualmente. Mid-tier commercial (IronBarcode, Aspose.BarCode) : Custos de base mais altos, além de licenças específicas de implantação. A separação de licenças de desenvolvimento e de implantação da LEADTOOLS significa que os seus custos aumentam com a infraestrutura. Uma licença de desenvolvimento de US $ 1.469 é apenas o começo; cada servidor de produção pode exigir licenças adicionais de tempo de execução. O modelo de consumo da Dynamsoft liga o custo ao volume de uso, o que é eficiente para aplicações de baixo volume, mas torna-se caro em escala. Esses modelos são adequados para grandes organizações com equipes de compras dedicadas, mas criam atrito para equipes menores. Enterprise commercial (LEADTOOLS, Dynamsoft) Se você está adotando o pacote apenas para funcionalidade de código de barras, o overhead, dependências de pacotes, registro de manipulador, infraestrutura de licenciamento, é desproporcional ao valor. Suite components (Syncfusion, Spire) Perguntas frequentes What is the best free barcode library for .NET? Depende do que você precisa. Apenas para a geração de código QR, o QRCoder é imbatível, 15M+ downloads, zero dependências, licenciado pelo MIT. Para a geração de código de barras 1D, o BarcodeLib é a opção gratuita mais popular. Para a capacidade de leitura e escrita a custo zero, o ZXing.Net é a única escolha, mas espera investir tempo extra de desenvolvimento em torno de seu pipeline de imagem. Can I read barcodes from PDF documents? Apenas algumas bibliotecas suportam isso nativamente. IronBarcode lê códigos de barras de páginas PDF sem precisar de uma biblioteca PDF separada. Aspose.BarCode pode ler de PDF quando combinado com Aspose.PDF. A VintaSoft suporta a leitura de PDF através de sua pilha de imagem. Com ZXing.Net, você precisaria renderizar páginas PDF para imagens primeiro usando uma biblioteca separada como o PDFium, depois passar essas imagens para a ZXing para leitura. How do I generate a barcode in C# with just one line of code? IronBarcode: BarcodeWriter.CreateBarcode("dados", BarcodeWriterEncoding.Code128).SaveAsPng("out.png"); Isso gera, codifica e salva em uma única chamada em cadeia. Which library works best with .NET MAUI for mobile scanning? IronBarcode suporta alvos .NET MAUI para iOS e Android. A Dynamsoft tem um SDK MAUI dedicado para digitalização baseada em câmera em tempo real. ZXing.Net.Mobile existe, mas visa o framework Xamarin mais antigo, não a moderna MAUI. Gerador Is ZXing.Net still actively maintained? Sim, mas o ritmo de desenvolvimento desacelerou. A biblioteca recebe atualizações, mas novos recursos e adições de formato são raros em comparação com as alternativas comerciais. A base de código central é estável e continua a funcionar em novas versões do .NET, o que é suficiente para muitos projetos. No entanto, o pacote específico para dispositivos móveis (ZXing.Net.Mobile) visa o Xamarin em vez do .NET MAUI, tornando-o cada vez mais datado para desenvolvimento móvel. Which barcode formats are used most in retail and logistics? A Retail baseia-se em EAN-13, UPC-A e GS1-128 para identificação de produtos e rastreamento da cadeia de suprimentos. Os códigos QR são dominantes nos mercados asiáticos para pagamentos móveis e marketing. As operações de logística usam Código 128 para etiquetas de envio, PDF417 para IDs governamentais e documentos de transporte, e GS1 DataBar para produtos frescos e cupons. Qualquer biblioteca com recursos completos (IronBarcode, Aspose, LEADTOOLS) cobre tudo isso. How do I handle damaged or low-quality barcode images? A pré-processamento de imagens é a resposta, e é o único maior diferenciador entre bibliotecas para aplicações do mundo real. Bibliotecas com pré-processamento embutido (IronBarcode, Dynamsoft, LEADTOOLS) aplicam automaticamente afiamento, correção de contraste, deskewing e redução de ruído antes de tentar decodificar. Com ZXing.Net ou outras bibliotecas que não têm pré-processamento, você precisaria implementar essas correções usando uma biblioteca de imagens como SkiaSharp ou ImageSharp, depois passar a imagem corrigida para o leitor de códigos de barras. What is the difference between 1D and 2D barcodes, and does my library choice matter? Os códigos de barras 1D (lineares) — Código 128, UPC-A, EAN-13 — codificam dados em uma única linha de barras e espaços. Armazenam dados limitados (geralmente de 20 a 25 caracteres) e são lidos por scanners a laser. Os códigos de barras 2D — Código QR, Matriz de Dados, PDF417 — codificam dados em dimensões horizontais e verticais, armazenando centenas a milhares de caracteres. Cada biblioteca nesta comparação suporta formatos 1D comuns. O diferenciador é de suporte 2D: bibliotecas de geração única como BarcodeLib e NetBarcode não suportam formatos 2D. Se o seu projeto requer códigos QR, Data Matrix, ou PDF417, as suas opções são IronBarc, ZXing Can I use these libraries in Docker containers on Linux? Sim, mas com precauções. Qualquer biblioteca que depende do System.Drawing.Common falhará no Linux no .NET 6+ porque a Microsoft o fez apenas para Windows. IronBarcode, Aspose, Dynamsoft e versões modernas do ZXing.Net migraram longe desta dependência. BarcodeLib mudou-se para SkiaSharp. QRCoder tem zero dependências externas. Teste sempre a sua biblioteca escolhida em um contêiner do Linux Docker antes de se comprometer, mesmo as bibliotecas que afirmam suporte cross-platform podem ter casos de borda em torno de renderização de fontes ou disponibilidade de codec de imagem. Escolhendo a sua biblioteca: recomendações finais Depois de avaliar todas as 12 bibliotecas em qualidade de código, design de API, suporte de formato, compatibilidade de plataforma e custo, aqui estão nossas recomendações organizadas pelo que você está construindo. Comece com o ZXing.Net se você precisar de capacidade de leitura, ou BarcodeLib + QRCoder se você só precisar de geração. Aceite a rigidez da API e os recursos perdidos como o preço de livre. Planeje reavaliar uma vez que seus requisitos se solidificarem. Building a startup MVP or proof of concept on a zero budget? IronBarcode offers the strongest balance of API simplicity, format coverage, cross-platform support, and price. It handles the full pipeline — generation, recognition, preprocessing, PDF reading — in a single package without requiring supplementary imaging libraries. . Building a production application that reads and writes barcodes? Para começar, é necessário instalar um NuGet e uma linha de código. Fique no seu ecossistema. Aspose.BarCode integra-se perfeitamente com Aspose.PDF, Aspose.Words e o resto da suíte. LEADTOOLS Barcode integra-se com seus SDKs de imagem, médicos e documentos. Trocar ecossistemas para um único componente raramente faz sentido arquitetônico. Building within an enterprise Aspose or LEADTOOLS ecosystem? O Dynamsoft Barcode Reader é projetado para reconhecimento de feeds de câmera em tempo real com a maior precisão neste espaço. Building a mobile scanning application? Use o controle Syncfusion Barcode Generator. Ele já está em sua árvore de dependência e renderiza nativamente em sua estrutura de UI. Não o adote apenas para necessidades de código de barras, é um controle de UI, não uma biblioteca de processamento de backend. Building a Syncfusion-powered UI that needs to display barcodes? QRCoder. 15 milhões de downloads. zero dependências. feito. Need only QR codes? Nenhuma única biblioteca é a melhor escolha para cada projeto.A resposta certa depende se você precisa ler, escrever ou ambos; que formatos sua indústria requer; onde você implantar; e o que seu orçamento permite. Um comentário sobre Future-Proofing O ecossistema .NET evolui rapidamente. , .NET 10 está no horizonte, e System.Drawing.Common está depreciado. Qualquer escolha de biblioteca que você fizer hoje precisa sobreviver a pelo menos duas ou três atualizações de versão .NET. Priorize bibliotecas que demonstram desenvolvimento ativo (lançamentos mensais ou trimestrais), direcionamento explícito de versão .NET (não apenas compatibilidade .NET Standard), e um histórico de suporte rápido a novas funcionalidades da plataforma. IronBarcode, Aspose e Dynamsoft todos publicam atualizações regulares. ZXing.Net e QRCoder são mantidos, mas em uma cadência mais lenta. BarcodeLib e NetBarcode dependem de manutentores individuais, o que introduz risco de fator de ônibus para projetos de longa duração. .NET 8 é a atual versão LTS Se você está tomando essa decisão para uma equipe, documentar seus critérios de avaliação e o raciocínio por trás de sua escolha.O próximo desenvolvedor que pergunta "por que escolhemos esta biblioteca?" agradecerá. Arquitetura da Integração Tipo Independentemente da biblioteca que você escolher, envolva-a por trás de uma interface. Um IBarcodeService simples com os métodos Generate() e Read() permite que você troque implementações sem tocar no código da aplicação. Isto não é sobre-engenharia, é seguro. O mercado da biblioteca de códigos de barras é competitivo e em evolução. As bibliotecas são adquiridas (LEADTOOLS → Apryse), a manutenção é lenta (ZXing.Net), e os modelos de preços mudam. Uma camada de abstração significa que sua lógica de aplicação é desconectada das APIs específicas do vendedor. Mesmo que você nunca mude bibliotecas, a abstração torna o teste de unidade trivialmente fácil – ridicularize a interface em vez de lutar com imagens de códigos de barras reais em testes. Para a documentação completa sobre , em e Visite o hub de documentação do IronBarcode. Criando códigos de barras em C# Leia códigos de barras de imagens e PDFs Criação de códigos QR The Bottom Line: Experiment with Trials and Find Your Fit Em última análise, a melhor biblioteca de códigos de barras para o seu projeto dependerá de suas necessidades e restrições únicas.Se você está construindo um MVP de arranque com orçamento zero, um aplicativo de produção com suporte completo de pipeline de leitura/escritura ou uma ferramenta de digitalização móvel para feeds de câmera em tempo real, há uma biblioteca que se adapta às suas necessidades. Nós encorajamos você a aproveitar os testes gratuitos oferecidos por e outras bibliotecas para obter experiência prática e ver como elas funcionam em seus próprios projetos.Não hesite em experimentar diferentes opções para encontrar a que melhor se alinha com o fluxo de trabalho e as necessidades técnicas da sua equipe. IronBarcode Tente a Melhor Biblioteca de Código de Barras para C# – Baixar IronBarcode Trial Grátis Ao explorar essas bibliotecas e entender seus pontos fortes, você pode tomar uma decisão informada que não só economizará tempo, mas também garantirá que você esteja usando uma ferramenta que apoie seus objetivos de longo prazo - tanto em termos de desempenho quanto de manutenção.