Если вы выбираете библиотеку штрих-кода C# для проекта .NET прямо сейчас, вы сталкиваетесь с более сложным решением, чем вы могли ожидать. Экосистема выросла, чтобы включить по крайней мере десяток жизнеспособных вариантов, от пакетов с открытым исходным кодом с нулевыми затратами до корпоративных SDK, которые стоят тысячи. Каждая делает убедительные претензии о поддержке формата, производительности и совместимости между платформами. Очень немногие из этих претензий тестируются бок о бок, в одном месте, с честными компромиссами. Это важно, потому что неправильный выбор стоит дорого. Штрих-коды не являются декоративными, они являются инфраструктурой. Система управления складом, которая обрабатывает 50 000 сканирований в день, приложение здравоохранения, где штрих-коды лекарств должны читаться правильно каждый раз, розничная POS-система, которая обрабатывает GS1-совместимые этикетки на международных рынках, эти системы не могут терпеть библиотеку шесть месяцев в производстве. библиотека штрих-кодов, которую вы выбираете в первый день, становится постоянной архитектурной зависимостью. Мы решили исправить разрыв в оценке. Наша команда сравнила 12 библиотек штрих-кода C# с последовательным набором критериев: поддержка символики, способность читать/писать, эргономика API, развертывание на различных платформах, поддержка версий .NET и общая стоимость владения. Полное раскрытие: мы являемся командой за IronBarcode, одной из библиотек в этом сравнении. Мы относимся к нему как к одной из двенадцати, подвергаясь одному и тому же обследованию. Пример кода: Создание штрих-кодов с помощью 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"); Изображение баркода IronBarcode Двенадцать библиотек на один взгляд Вот таблица быстрого ссылки с основными. Каждая деталь ниже расширяется в последующих разделах. 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 Коммерческий ($749 +) ✅ ✅ 50+ ✅ Win/Linux и Mac ~ 2 м ZXing.Net Занятия.net Apache 2.0 (бесплатно) ✅ ✅ ~ 15 ✅ Win/Linux и Mac ~7 м Aspose.BarCode Коммерческий ($979 +) ✅ ✅ 80+ ✅ Win/Linux и Mac ~ 3 м BarcodeLib Баркод Apache 2.0 (бесплатно) ❌ ✅ 30 1Д ✅ Win/Linux и Mac ~5 м Dynamsoft Barcode Reader Коммерческая деятельность (цитата) ✅ ❌ 30+ ✅ Win/Linux и Mac ~ 500К Syncfusion Barcode Коммерческий (бесплатно <$1м) ❌ ✅ ~ 10 ✅ Win/Linux и Mac ~ 1 м + LEADTOOLS Barcode Коммерческий ($ 1,469 +) ✅ ✅ 100+ ✅ Win/Linux и Mac ~ 200к Spire.Barcode Коммерческий (свободный уровень) ✅ ✅ 39 + ️ Win / Linux • 800К NetBarcode Мой (свободный) ❌ ✅ 12 1Д ✅ Win/Linux и Mac ~ 500К OnBarcode коммерческой ✅ ✅ 20+ ️ Windows ~ 100 к VintaSoft Barcode коммерческой ✅ ✅ 40+ ️ Windows ~ 50К QRCoder Мой (свободный) ❌ ✅ QR только ✅ Win/Linux/Mac ~15M ✅ = Full support | ⚠️ = Partial/.NET Standard only | ❌ = Not supported Key: These libraries split into four distinct categories, and understanding where each sits is the fastest way to narrow your shortlist. (читать + писать + предварительная обработка + поддержка): IronBarcode, Aspose.BarCode, LEADTOOLS Barcode. Они обрабатывают как генерацию, так и распознавание данных штрих-кода, поддерживают десятки форматов, и поставляются с соглашениями о коммерческой поддержке. 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. Они создают изображения штрих-кода, но не могут читать их из фотографий, сканирования или документов. Они варьируются от бесплатных пакетов с открытым исходным кодом (BarcodeLib, QRCoder) до коммерческих комплектов управления пользовательским интерфейсом (Syncfusion). Generation-focused libraries Spire.Barcode, VintaSoft Barcode. Эти корабли как часть больших пакетов обработки документов. Их возможности штрих-кода функциональны, но вторичны к основным предложениям их родительского пакета. Suite components Как выбрать: Соответствие библиотек требованиям проекта Choosing a barcode library is not about finding the "best" one. It is about finding the best one Вот практическая рамка принятия решений, организованная вопросами, которые действительно имеют значение. Для ограничений вашего проекта Do You Need to Read Barcodes, Write Them, or Both? This is the single most important filter. It eliminates half the options immediately. Если вам нужно только штрих-коды, выполнение задач, таких как печать этикеток, создание QR-кодов для маркетинговых материалов, встраивание штрих-кодов в PDF-фактуры; тогда библиотеки, такие как BarcodeLib, QRCoder или Syncfusion Barcode являются идеальными. generate Если вам нужно 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 Если вам нужно — и большинство производственных систем в конечном итоге это делают — тогда IronBarcode, Aspose.BarCode, LEADTOOLS и ZXing.Net являются вашими основными кандидатами. both What Is Your Budget? : ZXing.Net for read+write, BarcodeLib for generation-only, QRCoder for QR-only generation. These are production-ready for many scenarios, but commercial support is nonexistent. $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+ за разработчика) и LEADTOOLS ($1,469+ за разработчика) оба сидят здесь, при этом LEADTOOLS несет дополнительные расходы на лицензирование развертывания. $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? Для основных форматов (Code128, QR Code, EAN-13, UPC-A, Data Matrix), практически каждая библиотека в этом списке работает. : Critical for retail and healthcare. IronBarcode, Aspose.BarCode, and LEADTOOLS handle these well. ZXing.Net has partial support. GS1 DataBar / GS1-128 : Требуется для правительственных идентификаторов и маркировки судоходства. Поддерживается IronBarcode, Aspose, LEADTOOLS, Dynamsoft. Не поддерживается BarcodeLib или QRCoder. PDF417 Используется UPS для сортировки пакетов. Поддерживается только IronBarcode, Aspose и LEADTOOLS. MaxiCode : Используется на бортовых билетах авиакомпаний и транзитных билетах. Поддерживается IronBarcode, Aspose, LEADTOOLS, Dynamsoft и 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. Для какого реального мирового сценария вы строите? Different industries impose different barcode requirements, and the gap between "supports the format" and "handles the scenario reliably" is where library selection truly matters. 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 необходимо обрабатывать UPC-A, EAN-13 и QR-коды для сканирования продуктов и интеграции мобильных платежей. На рынках, таких как Япония, Китай и Южная Корея, основанные на QR-коде платежи являются основным методом транзакции. Библиотеки должны обрабатывать быстрые последовательные сканирования и интегрироваться с базами данных инвентаря в режиме реального времени. 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 Where Will You Deploy? Deployment target is the constraint that most often gets evaluated too late. A library that works perfectly in Visual Studio on Windows may fail at runtime in a Linux Docker container, and the failure mode is often a cryptic native library error rather than a clear exception. Это самый простой сценарий развертывания и тот, который предполагает большинство документации библиотеки. Windows-only server : Удалить VintaSoft и OnBarcode (Windows-primary). Убедитесь, что библиотека не зависит от , which Microsoft deprecated for non-Windows platforms in .NET 6. IronBarcode, Aspose, Dynamsoft, and ZXing.Net all handle cross-platform deployment well. Test early, ideally, your first "hello world" with the library should run in a Docker container matching your production base image. Linux / Docker / cloud System.Drawing.Common : 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 : Безсерверные среды добавляют ограничения памяти и времени выполнения. Легкие библиотеки (QRCoder, BarcodeLib) запускаются быстрее. Тяжелые библиотеки (LEADTOOLS, Aspose) могут нуждаться в большем распределении памяти и более длинных бюджетах холодного старта. IronBarcode и Dynamsoft работают в серверном режиме, но пользуются предусмотренными согласованными или премиальными планами, которые уменьшают холодные старта. Azure Functions / AWS Lambda The 12 Libraries: What Each Does Well and Where Each Falls Short 1. IronBarcode Железное программное обеспечение : → | 20262 ¦ ¦ : ~2M Developer NuGet BarCode Latest Downloads IronBarcode является коммерческой библиотекой штрих-кодов .NET, которая охватывает как генерацию, так и распознавание в более чем 50 символиках. 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 : The API is concise, generation and reading each take one line of code. Key features include support for many data formats, image correction filters, and the ability to export barcodes to various image formats. Image preprocessing (auto-rotation, sharpening, contrast adjustment) runs automatically during reads, which matters for real-world scans of damaged or poorly printed barcodes. PDF barcode reading is built in, not bolted on. Async and multithreaded scanning are supported for batch operations. Cross-platform support covers Windows, Linux, macOS, Docker, and .NET MAUI. The library supports .NET 8 LTS and .NET 10. You can learn more about the advanced features offered by IronBarcode in it's extensive documentation, . Strengths здесь Real-world deployments span where shipping labels must be generated and scanned at volume, где точность сканирования напрямую влияет на безопасность пациента, и где GS1-совместимые этикетки должны интегрироваться с существующими системами POS. Системы управления складом Отслеживание медицинских препаратов retail packaging workflows Лицензия Lite начинается с $749 за разработчика. Размер пакета NuGet (~30 Мб с зависимостью) тяжелее, чем альтернативы с открытым исходным кодом. Документация обширна, но страницы сравнения на сайте Iron Software, очевидно, являются рекламными. 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) | : | : 0.16.x | • ~7 м Developer NuGet ZXing.Net Latest Downloads ZXing.Net is the .NET port of Google's , 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 Выход Бесплатный и с открытым исходным кодом под Apache 2.0. Массовое знакомство с сообществом — большинство учебников и Stack Overflow отвечает на ссылку ZXing. Поддерживает общие 1D и 2D форматы, включая QR Code, Data Matrix, Code128, EAN и Aztec. Легкий. Strengths : Порт .NET отстает от оригинального Java. Поддержка форматов более узкая, чем коммерческие альтернативы — нет GS1 DataBar, нет MaxiCode, ограниченная поддержка почтового кода. API является словесным: генерирование штрих-кода требует создания писательских объектов, вариантов кодирования и ручной обработки пиксельных данных. Сохранение файла изображения требует отдельной библиотеки изображений (SkiaSharp, ImageSharp или System.Drawing). Нет встроенной предварительной обработки изображения для поврежденных сканирований. Нет чтения PDF. Мобильный пакет (ZXing.Net.Mobile) нацелен на Xamarin, а не на .NET MAUI. Поддержка сообщества несовместима — выпуски могут быть разными месяцами 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. : Projects where budget is zero, requirements are standard formats, and the development team is comfortable assembling their own imaging pipeline around the core library. Also a reasonable choice for simple read-only scenarios where the image quality is consistently good (pre-printed labels, digital barcode images). Best for 3. Aspose.BarCode · Аппетиты : → | : 26.2 | • ~ 3 м Developer NuGet Aspose.BarCode Latest Downloads Aspose.BarCode is the barcode component of Aspose's Он поддерживает более 80 символов и работает в .NET, Java, C++ и 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 4. BarcodeLib : Brad Barnhill | : | : 3.1.5 Участники • ~ 5 м Developer NuGet BarcodeLib Latest Downloads BarcodeLib is a lightweight, баркод library. It creates 1D barcode images from strings. That is all it does, and it does it well. Открытый источник generation 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 : Проекты, которые должны генерировать стандартные 1D штрих-коды (этикетки продуктов, инвентарные теги) с минимальным объемом и нулевыми затратами. Best for Команды начинают с BarcodeLib для прототипа, отправляют его в производство, а через шесть месяцев получают требование также barcodes from customer-uploaded images. At that point, they either add a second library (ZXing.Net for reading) or migrate entirely to a read+write library (IronBarcode, Aspose). If you suspect your requirements will grow beyond generation, consider starting with a fuller library to avoid the migration cost later. If you are confident the scope will stay narrow, BarcodeLib is hard to beat for what it does. A common pattern we see: read Скачать Dynamsoft Barcode Reader Метка: Dynamsoft : Dynamsoft.DotNet.BarcodeReader | : ~500K Developer NuGet Downloads Dynamsoft — это штрих-код specialist. The company has spent over two decades optimizing barcode recognition from camera feeds, scanned documents, and low-quality images. They do not generate barcodes. Their Охватывает настройку, конфигурацию шаблонов и настройку производительности. reading .NET SDK документация // 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}"); : Точность распознавания является одной из самых высоких в отрасли. Dynamsoft претендует на 34,9% больше QR-кодов, признанных, чем следующий лучший конкурент в своем рейтинге 1000+ кодов по 16 типам качества изображения. Настраиваемые шаблоны распознавания позволяют тонко настроить для конкретных условий штрих-кода (поврежденный, размытый, низкий контраст, экстремальные углы). Сканирование камеры в режиме реального времени является функцией первого класса, а не последующей мыслью.Многоплатформенные SDK охватывают .NET, JavaScript, Python, Java и мобильные. Strengths Цена основана на потреблении и зависит от котировок, что затрудняет прогнозирование затрат для рабочих нагрузок с переменным объемом. .NET SDK требует большей установки, чем более простые библиотеки. Limitations : Приложения, где точность распознавания из реального света камеры источников или поврежденных документов является главным приоритетом. сканирование складов, мобильные POS-системы, и промышленного контроля качества изображения. также сильный для организаций, которые нуждаются в многоязычной поддержке SDK (JavaScript для веб, .NET для backend, mobile-native для приложений) от одного поставщика. 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. Генератор штрих-кодов Syncfusion Синхронизация : Various (по рамкам) : ~1M+ Developer NuGet Downloads Syncfusion's Barcode Generator - это UI-контроль, встроенный в их массивную Он генерирует штрих-коды как визуальные компоненты в приложениях Blazor, .NET MAUI, WinForms, WPF и 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> : Бесплатная лицензия сообщества для организаций с доходом менее 1 млн. долл. и менее 5 разработчиков. Интеграция в рамки глубокого пользовательского интерфейса, управление штрих-кодом является врожденным компонентом XAML/Blazor, а не библиотекой для создания изображений. Поддерживает общие 1D-симбологии (Code128, EAN, UPC, Code39) и 2D (QR Code, Data Matrix). Визуальная настройка (цветки, позиционирование текста, размеры модулей) встроена в свойства управления. Strengths : Только поколение, нет чтения / распознавания штрих-кодов. Ограниченный диапазон символики (~10 типов) по сравнению с выделенными библиотеками штрих-кодов. Вы должны принять полную экосистему Syncfusion (пакеты NuGet, регистрация трейдера, лицензионная инфраструктура). Управление штрих-кодом тесно связано с конкретными рамками UI, это не библиотека генерации изображений общего назначения, которую вы можете вызвать из приложения консоли или фонового сервиса. Если вы еще не используете контроли Syncfusion, принятие их для генерации штрих-кодов в одиночку является архитектурным переубийством. Limitations : Команды, уже инвестировавшие в экосистему Syncfusion UI, которые нуждаются в отображении штрих-кодов в приложениях front-end.Не подходит для обработки штрих-кодов, генерации документов или сканирования рабочих процессов. Best for Барочные коды LEADTOOLS Apryse (ранее LEAD Technologies) : Leadtools.Barcode | : ~ 200к Developer NuGet Downloads LEADTOOLS является 30-летним которая включает в себя функциональность штрих-кода в составе более крупного документа и набора инструментов для медицинского визуализации. она поддерживает более 100 типов штрих-кодов и подтипов — большинство из любой библиотеки в этом сравнении. imaging SDK : Непревзойденная ширина символики, более 100 типов, включая все основные 1D, 2D, почтовые и композитные штрих-коды. Патентованные алгоритмы распознавания на основе ИИ. Расширенная предварительная обработка (дескив, удаление шума, удаление отверстий, коррекция блеска). Многоязычная поддержка на .NET, C++, Java и мобильных платформах. Strengths : The most expensive option in this comparison. Development licenses start at $1,469, and deployment requires separate runtime licenses whose pricing varies by deployment model (you must contact sales for quotes). The API surface is large and complex, LEADTOOLS is an imaging SDK first and a barcode library second. You load RasterImage objects, create BarcodeEngine instances, and configure symbology-specific options. This is not a one-line API. Overkill for projects that only need barcode functionality. The learning curve is steepest among all 12 libraries. Limitations : Enterprise organizations already using LEADTOOLS for imaging, medical DICOM processing, or government document workflows. Projects requiring extremely rare barcode symbologies or industrial-grade image preprocessing. Worth noting: LEADTOOLS was acquired by Apryse in 2023, which may affect long-term product strategy and pricing — something to verify with the vendor before committing to a multi-year deployment. Best for 8. Spire.Barcode Название: E-Iceblue : Игорь • ~ 800 к Developer NuGet Спайер.Баркод Downloads Spire.Barcode является компонентом штрих-кода Spire.Office от e-iceblue , a China-headquartered competitor to Aspose. It supports 39+ barcode formats with both generation and recognition. Suite Бесплатное сообщество доступно с ограниченными возможностями. Поддерживает как 1D, так и 2D-форматы, включая QR-код, матрицу данных и PDF417.Простой API «одна строка кода» для генерации.Режим компонентов позволяет создавать штрих-коды в WinForms/ASP.NET дизайнеров.Платная версия значительно улучшает скорость сканирования в свободном уровне. Strengths : Межплатформенная поддержка является неполной, библиотека зависит от System.Drawing.Common на .NET Framework и использует SkiaSharp на современном .NET, но поддержка MAUI/mobile неясна. совместимость .NET 8+ существует через .NET Standard 2.0 таргетирование, а не родные .NET 8 builds. Документация более скудная, чем западные конкуренты. Бесплатный уровень добавляет оценочные водные знаки к генерируемым штрих-кодам. размер пакета NuGet большой (~15 МБ). принятие сообщества за пределами Китая ограничено. Limitations Команды, уже использующие компоненты Spire.Office, или разработчики, работающие преимущественно в средах разработки на китайском языке, где e-iceblue имеет более сильную поддержку сообщества. Best for Сетевой код : Tagliatti (community) | : NetBarcode | : 1.7.x Размер : ~ 500К Developer NuGet Latest Downloads NetBarcode is a minimal, barcode generation library. It creates 1D barcodes using ImageSharp (previously System.Drawing). Лицензионный : Лицензия MIT, действительно бесплатная без ограничений. Маленький отпечаток. Простой API. Мигрировал в SixLabors.ImageSharp, удаляя зависимость System.Drawing для подлинной межплатформенной поддержки. Поддерживает стандартные форматы 1D: Code128, Code39, Code93, EAN-13, EAN-8, и несколько других. Strengths : Generation only, no barcode reading. 1D barcodes only, no QR codes, no Data Matrix. Limited symbology support (~12 types). Minimal customization options. Single maintainer with infrequent updates. No commercial support. Limitations : Minimal 1D barcode generation in .NET applications where every dependency byte counts and MIT licensing is a hard requirement. NetBarcode is the "microlib" of this comparison, it does one thing with minimal overhead. For containerized microservices where image size matters, NetBarcode's small footprint is a genuine advantage over heavier alternatives. The ImageSharp dependency also means it works cleanly across all platforms without the System.Drawing concerns that plague older libraries. Best for Код OnBarcode : | : .NET Standard 2.0 Developer OnBarcode Platform OnBarcode provides barcode generation and recognition SDKs with both .NET and Java variants. The library supports 20+ symbologies across two separate DLLs, one based on System.Drawing.Common (Windows) and one on SkiaSharp (cross-platform). : Зрелый продукт с длинной историей. Поддерживает как генерацию, так и распознавание. Обеспечивает отдельные DLL для Windows и межплатформенных сред. Поддерживает кодирование данных GS1 для розничных и цепочек поставок. Strengths : Primary audience is Windows developers, Linux and macOS support came later and is less proven. .NET 8+ support is through .NET Standard, not native targeting. Pricing and licensing information is not transparently published on their website. Documentation quality lags behind top-tier competitors. NuGet download counts suggest a smaller user base (~100K), which correlates with fewer community resources and Stack Overflow answers. Limitations : Windows-centric .NET Framework projects requiring basic barcode generation with some recognition capability. OnBarcode has a long history in the .NET barcode space and was one of the early entrants in the market. Teams maintaining legacy .NET Framework 4.x applications may find it a more natural fit than libraries that have pivoted entirely to modern .NET. However, for new projects targeting .NET 8+, the alternatives above offer better developer experience and stronger cross-platform support. Best for 11. VintaSoft Barcode · Винницкого .NET Framework и .NET Standard 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 : Поддерживает как генерацию, так и распознавание в широком диапазоне символов. PDF чтение штрих-кодов. Включает компонент просмотра изображения WPF для интерактивного отображения штрих-кодов. Интеграция с более широким набором инструментов для изображения и документов VintaSoft. Strengths Поддержка на различных платформах (.NET Core / .NET 5+) существует, но является второстепенной для опыта Windows. Более маленькая база пользователей означает меньшее количество ресурсов сообщества, учебных пособий и интеграций третьих сторон. Ценообразование требует контакта с продажами. Limitations Интеграция зрителя WPF является его уникальной точкой продажи - если вашему приложению нужен интерактивный дисплей штрих-кода с панелью / зумом и аннотациями наряду с обнаружением штрих-кода, VintaSoft предоставляет это в одном компоненте, а не требует отдельных библиотек изображения и штрих-кода. Best for 12. QRCoder Рафаэль Херрманн (общество) : | • ~15 м Developer NuGet КРКОДЕР Downloads QRCoder является Пакет, связанный с штрих-кодом на NuGet — но он делает точно одно: генерирует QR-коды. 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 : Лазерный фокусированный диапазон. Чрезвычайно хорошо поддерживается с частыми выходами. 15M+ загрузки NuGet доказывают надежность производства. Нет внешних зависимостей в базовом пакете. Множественные рендери выхода: PNG байты, SVG, ASCII art, PDF и многое другое. лицензированный MIT. Поддерживает уровни коррекции ошибок, персонализированные цвета и тихие зоны. Strengths : только QR-коды, никакой другой символики. только поколение, не может читать QR-коды. Если вам понадобится какой-либо другой тип штрих-кода или возможность распознавания, вам понадобится вторая библиотека. Limitations : Проекты, которые нуждаются только в генерации QR-кода и хотят наиболее проверенного, легкого, свободного от зависимости варианта. маркетинговые материалы, кодирование URL-адресов, мобильные платежные QR-коды, билеты на мероприятия. Best for Число загрузок QRCoder составляет 15 миллионов, что делает его одним из самых надежных пакетов в экосистеме .NET. Его архитектура рендеров особенно хорошо спроектирована: вы можете выпускать QR-коды в виде байтов PNG, строк SVG, искусства ASCII для терминального отображения или даже в виде PDF-страниц, все без добавления одной внешней зависимости. Единственный сценарий, когда QRCoder не соответствует ожиданиям, заключается в том, что разработчики полагают, что, поскольку он так хорошо генерирует QR-коды, он также должен их читать. Head-to-Head: генерирование штрих-кода Code128 Вот как четыре библиотеки генерируют штрих-код Code128 из строки «SHIP-2026-0042» и сохраняют его в виде изображения PNG. (1 строка значимого кода): IronBarcode using IronBarCode; BarcodeWriter.CreateBarcode("SHIP-2026-0042", BarcodeWriterEncoding.Code128) .SaveAsPng("iron-barcode.png"); (требуется дополнительная библиотека изображений): 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 строки значимого кода): Aspose.BarCode using Aspose.BarCode.Generation; var generator = new BarcodeGenerator(EncodeTypes.Code128, "SHIP-2026-0042"); generator.Save("aspose-barcode.png"); (3 строки + SkiaSharp для сохранения): 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()); Внедрение понятно: IronBarcode и Aspose.BarCode полностью удаляют трубопровод для обработки изображений. 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. Занятия.net Здесь есть более глубокая архитектурная точка. Библиотеки, которые производят сырые пиксельные данные (ZXing.Net) или объекты SkiaSharp (BarcodeLib) вынуждают вас принять определенную зависимость изображения по всему вашему рабочему потоку штрих-кода. Если вы позже переключите библиотеки изображений — скажем, от SkiaSharp до ImageSharp — вам нужно будет переделать каждый сайт вызова. Библиотеки, которые обрабатывают свой собственный выход изображения (IronBarcode, Aspose) изолируют код вашего приложения от деталей имплементации изображений. Head-to-Head: чтение штрих-кодов из изображений Вот как четыре библиотеки справляются с чтением штрих-кодов из сканированного изображения наклейки склада: : IronBarcode using IronBarCode; var results = BarcodeReader.Read("warehouse-label.png"); foreach (var r in results) Console.WriteLine($"[{r.BarcodeType}] {r.Value}"); (requires loading image manually): 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}"); Все четыре хорошо справляются с чистыми, высококонтрастными изображениями штрих-кода. Различия поверхности с сложными вводами: вращающиеся штрих-коды, съемки камер с низким разрешением, поврежденные этикетки или штрих-коды, встроенные в многостраничные PDF-файлы. Автомобильная предварительная обработка IronBarcode (обострение, контрастность, коррекция вращения) и настройка распознавания на основе шаблона Dynamsoft специально разработаны для этих сценариев. ZXing.Net не обеспечивает предварительную обработку, вы должны заниматься коррекцией изображения самостоятельно или принимать более низкие показатели распознавания. Утонченность, которая часто удивляет разработчиков: метод ZXing.Net Decode() возвращает только Если сканированный документ содержит несколько штрих-кодов (обыкновенных в маркировках грузоперевозок, страховых формах и многоэлементных счетах), вы должны настроить читатель, чтобы вернуть несколько результатов. IronBarcode, Aspose и Dynamsoft по умолчанию обнаружили несколько штрих-кодов. Только это различие вызвало ошибки производства в системах, которые предполагали, что все штрих-коды на странице будут найдены. first Еще одним соображением является В документообогащенных рабочих процессах, обработке страховых претензий, управлении юридическими документами, документации по цепочке поставок, штрих-коды встраиваются в файлы PDF, а не в автономные изображения. IronBarcode читает штрих-коды непосредственно с PDF-страниц через BarcodeReader.ReadPdf() без необходимости от разработчика сначала производить каждую страницу в изображение. Aspose достигает этого через интеграцию с Aspose.PDF. ZXing.Net и Dynamsoft требуют отдельного шага рендерирования PDF-to-image с помощью библиотеки, такой как PDFium или IronPDF. Этот дополнительный шаг добавляет сложность, зависимости и время обработки, особенно для многосторонних партий документов. PDF reading Performance and Batch Processing Показатели производительности для библиотек штрих-кодов трудно стандартизировать, потому что скорость распознавания сильно зависит от качества изображения, типа штрих-кода, разрешения изображения и количества штрих-кодов на изображение. Скорость распознавания одного изображения Для чистых, хорошо форматированных изображений штрих-кода (высокий контраст, отсутствие повреждений, один штрих-код на изображение) все библиотеки, которые поддерживают чтение, выполняют задание менее чем за 100 миллисекунд. Архитектура обработки батарей При обработке тысяч изображений штрих-кода — общее требование в области цифровизации документов, складирования и обработки страховых претензий — архитектура обработки партий библиотеки имеет большое значение. BarcodeReader принимает BarcodeReaderOptions, которые включают Multithreaded = true и могут обрабатывать многостраничные TIFF и PDF-файлы странично без загрузки целых документов в память. 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 предоставляет аналогичные возможности для партий через свой класс BarCodeReader с конфигурируемыми предварительными настройками QualitySettings (HighPerformance, NormalQuality, HighQuality, MaxBarCodes). Aspose.BarCode использует подход, основанный на шаблоне, где параметры сканирования (ожидаемые форматы, регион интереса, настройки разблокировки) указываются в шаблонах JSON. Это позволяет оптимизировать их на случай использования. Dynamsoft Разработчики реализуют свой параллелизм с помощью Task.WhenAll или Parallel.ForEach, загружая и обрабатывая изображения индивидуально. ZXing.Net Преимущество здесь заключается в том, что предварительная обработка (deskew, despeckle, border removal) и чтение штрих-кода могут быть цепочками в одну нитку, что эффективно для сканированных рабочих процессов документов, где каждое изображение нуждается в очистке перед чтением. LEADTOOLS Воспоминания о отпечатках Библиотеки, загружающие целые PDF-документы или изображения с высоким разрешением в память, могут вызывать проблемы в средах с ограниченными ресурсами (Azure App Service, AWS Lambda, Kubernetes Pods с ограничениями памяти). IronBarcode обрабатывает PDF-страницы индивидуально для управления памятью. Подход Aspose схож. ZXing.Net работает на отдельных изображениях, поэтому управление памятью несет ответственность разработчика. Серверный SDK Dynamsoft оптимизирован для работы с низкой памятью с высоким пропускным потенциалом. LEADTOOLS обеспечивает эксплицитное управление памятью через свои шаблоны удаления RasterImage, но требует тщательного кодирования, чтобы избежать утечек в серийных сценариях. Преимущество предварительной обработки For production systems, recognition accuracy on imperfect inputs is more important than raw speed on clean inputs. A library that reads 10,000 clean barcodes per second but fails on 5% of real-world scans costs more — in operational terms — than one that processes 5,000 per second with a 0.5% failure rate. Image preprocessing (auto-rotation, contrast enhancement, sharpening, noise reduction) is what bridges this gap. IronBarcode, Dynamsoft, and LEADTOOLS all include preprocessing in their recognition pipeline. ZXing.Net, Aspose, and the generation-only libraries do not. Поддержка Matrix Эта матрица охватывает форматы, наиболее часто необходимые в производстве. Для полных списков проконсультируйтесь с официальной документацией каждой библиотеки. 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 ✅ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ Код 128 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ Код 39 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ QR код ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ Матрица данных ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ЭН-13 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ УПЦ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ПДД417 ✅ ✅ ✅ ❌ ✅ ❌ ✅ ✅ ❌ Ацтеки ✅ ✅ ✅ ❌ ✅ ❌ ✅ ❌ ❌ GS1 DataBar ✅ ️ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Максикод ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Микро QR ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Умная почта ✅ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ Ключ: ✅ = Полная прочтение + запись ⚠️ = Частичная поддержка ⚠️ = Не поддерживается Три шаблона вытекают из этой матрицы. Во-первых, коммерческие библиотеки (IronBarcode, Aspose, LEADTOOLS) последовательно охватывают самый широкий диапазон, они являются единственными вариантами, если вам нужны форматы, такие как MaxiCode, Micro QR или Intelligent Mail. Во-вторых, ZXing.Net хорошо охватывает основные форматы, но быстро отпадает для специализированных промышленных или почтовых кодов. В-третьих, библиотеки только поколения (BarcodeLib, QRCoder, Syncfusion) по своей сути ограничены форматами, для которых они были разработаны. Практическая записка по символике утверждает: LEADTOOLS и Aspose цитируют самые высокие цифры (100+ и 80+ соответственно), но многие из них являются подтипами одного семейства. Например, Код 128A, Код 128B и Код 128C перечислены некоторыми поставщиками как три отдельные записи, но на самом деле являются вариантами одной спецификации. Число, которое имеет значение, не «сколько символики», а «поддерживает ли он конкретные форматы, необходимые моему приложению». Для команд, которые не уверены, какие форматы им понадобятся, вот безопасный минимум: Код 128 (альфа-нумерический для общего назначения), Код QR (2D-данные с исправлением ошибок), EAN-13 / UPC-A (ретейлеры) и Матрица данных (компактный 2D для промышленной маркировки). Любая библиотека, которая поддерживает эти четыре сценария, охватывает примерно 90% реальных сценариев штрих-кода. Если ваши требования включают стандарты GS1 (здравоохранение, свежие продукты, купоны), убедитесь, что выбранная библиотека явно поддерживает GS1 DataBar и GS1-128 — частичная поддержка распространена и может вызвать сбои в соответствии. Совместимость платформы и развертывания Современные проекты .NET развертываются повсюду, серверы Windows, контейнеры Linux Docker, Azure App Services, функции AWS Lambda и мобильные устройства. 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 ✅ ✅ ✅ ✅ ✅ ✅ ✅ Занятия.net ✅ ✅ ✅ ✅ ️ ✅ ✅ Апп. баркод ✅ ✅ ✅ ✅ * ✅ ✅ Баркод ✅ ✅ ✅ ✅ ❌ ✅ ✅ Динамика ✅ ✅ ✅ ✅ ✅ ❌ ✅ Синхронизация ✅ ✅ ✅ ✅ ✅ ✅ ✅ Лидерские инструменты ✅ ️ ✅ ✅ ✅ ⚠️ ✅ Спайер.Баркод ️ ️ ✅ ️ ❌ ❌ ️ Сетевой код ✅ ✅ ✅ ✅ ❌ ❌ ✅ КРКОДЕР ✅ ✅ ✅ ✅ ❌ ✅ ✅ Ключевой: ✅ = Тестировано/документировано ⚠️ = Через .NET Standard / не эксплицитно тестировано 💡 = Не поддерживается * = Через цель .NET MAUI Критическая разделительная линия является • Microsoft Библиотеки, которые до сих пор зависят от него (старшие версии BarcodeLib, Spire, OnBarcode) будут молчать или бросать исключения по времени выполнения при развертывании на контейнеры Linux. IronBarcode, Aspose и ZXing.Net все мигрировали от этой зависимости. System.Drawing.Common Отказ от этого пакета для не-Windows платформ Докер и облачное развертывание Modern .NET applications increasingly deploy to Linux-based Docker containers running on Kubernetes, Azure App Service, or AWS ECS. Barcode libraries that target .NET 8+ natively (not via .NET Standard compatibility) generally offer the smoothest experience. Libraries targeting .NET Standard 2.0 technically work on .NET 8, but they may miss platform-specific optimizations and can introduce dependency resolution conflicts. Специфический готча: некоторые библиотеки штрих-кода требуют встроенных системных библиотек для обработки изображений. На минимальном изображении Docker (например, mcr.microsoft.com/dotnet/runtime:8.0) эти изображения могут не присутствовать. IronBarcode поставляет свои собственные встроенные бинарные файлы. ZXing.Net полагается на любую библиотеку изображений, с которой вы связываете ее. Dynamsoft включает в свой пакет NuGet платформенные встроенные библиотеки. Если вашему изображению Docker не хватает libgdiplus или libfontconfig, библиотеки, зависящие от System.Drawing или определенных конфигураций SkiaSharp, потерпят неудачу во время работы. Всегда проверяйте в контейнере .NET MAUI и мобильные соображения Мобильное сканирование штрих-кода фундаментально отличается от обработки на стороне сервера. Вход представляет собой живую камеру с переменным освещением, размытостью движения и непредсказуемыми углами. Библиотеки, предназначенные для обработки изображений на основе файлов (большинство записей в этом списке) нуждаются в адаптации для сценариев камеры в реальном времени. IronBarcode поддерживает цели .NET MAUI и может обрабатывать изображения, захваченные камерой, хотя он не оптимизирован специально для потоков видео в реальном времени, как это делает Dynamsoft. управление штрих-кодом Syncfusion генерирует штрих-коды в интерфейсе MAUI, но не читает их. ZXing.Net.Mobile существует для Xamarin, но не обновляется для .NET MAUI с этого момента. Сравнение цен и лицензий «Бесплатная» библиотека, которая стоит вашей команде 40 дополнительных часов работы по интеграции, на самом деле не дешевле коммерческой опции в $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 Perpetual Per-разработчик 749 долларов 1 год включено Тридцатидневный суд Add-on ($) Занятия.net Апач 2.0 $0 0 Сообщество только Полный Бесплатно Апп. баркод Perpetual Per-разработчик 979 долларов 1 год включено Оценка качества воды (Watermark) Дополнительный ($ ) Баркод Апач 2.0 $0 0 Сообщество только Полный Бесплатно Динамика На основе потребления цитаты Включено Тридцатидневный суд Лицензионная зависимость Синхронизация Пер-разработчик $0 (доход менее $1 млн) Включено Лицензия Сообщества Зависимый Лидерские инструменты Разработчик + Runtime 1 469 долларов 1 год включено 60-дневный эвалент Отдельное время выполнения ($) Спайер.Баркод Пер-разработчик цитаты Включено Бесплатное издание (ограниченное) Дополнительный ($ ) Сетевой код МИТ $0 0 Сообщество только Полный Бесплатно КРКОДЕР МИТ $0 0 Сообщество только Полный Бесплатно : Hidden cost factors to consider Инструменты требуют отдельного Лицензии на производство, только лицензия на разработку не охватывает доставку вашего приложения.Это необычно и может значительно увеличить общую стоимость многосерверных развертываний. Развертывание Ценообразование Dynamsoft, основанное на потреблении, делает бюджетирование непредсказуемым для приложений с переменными объемами сканирования штрих-кодов.Система управления складом, которая обрабатывает 10 000 сканирований во время праздничных пиков, но 500 в медленные месяцы, увидит совершенно разные счета. Лицензия бесплатного сообщества Syncfusion имеет строгие требования к квалификации (капитал доходов в размере 1 млн долларов США, лимит разработчиков в размере 5 млн долларов США, лимит сотрудников в размере 10 млн долларов США). Библиотеки с открытым исходным кодом (ZXing.Net, BarcodeLib, QRCoder, NetBarcode) не имеют лицензионных расходов, но также не имеют SLA. Если критический ошибка блокирует ваше развертывание производства в пятницу после обеда, вы находитесь на своем, пока член сообщества не решит пересмотреть вашу проблему GitHub. Общая стоимость собственности: Beyond the Sticker Price Интеграционные усилия, нагрузка на техническое обслуживание и операционный риск — это невидимые затраты, которые часто доминируют в общей сумме. Но фактор в: 5-15 часов дополнительной работы по интеграции для сборки трубопровода для обработки изображений (ZXing.Net), нулевое гарантированное время ответа на ошибки и риск того, что один подрядчик откажется от проекта. Для стартапа, строящего MVP, эти компромиссы обычно приемлемы. Для предприятия, развертывающего производство, расчет часто поворачивается, коммерческая лицензия в размере $749, которая экономит 20 часов времени разработчика в размере $100/час, уже оплатила себя. Open-source (ZXing.Net, BarcodeLib, QRCoder) : $749-$979 за разработчика с годом поддержки и обновлениями. Постоянная лицензия означает, что не требуется никаких текущих платежей, вы можете продолжать использовать версию, которую вы купили на неопределенный срок. Поддержка для последующих лет является дополнительной. Стоимость для 3-х человек в течение 3 лет варьируется от примерно $2,250 до $5,900 в зависимости от того, возобновляете ли вы поддержку ежегодно. Mid-tier commercial (IronBarcode, Aspose.BarCode) : Более высокие базовые затраты плюс лицензирование, специфическое для развертывания. Разделение лицензий на разработку и развертывание LEADTOOLS означает, что ваши затраты масштабируются с инфраструктурой. Лицензия на разработку в $1,469 - это только начало; каждый производственный сервер может потребовать дополнительного лицензирования на время запуска. Модель потребления Dynamsoft связывает стоимость с объемом использования, что эффективно для малых приложений, но становится дорого в масштабе. Эти модели подходят для крупных организаций с отдельными командами закупок, но создают трение для меньших команд. Enterprise commercial (LEADTOOLS, Dynamsoft) : Если вы уже платите за пакет, компонент штрих-кода фактически бесплатен.Если вы принимаете пакет исключительно для функциональности штрих-кода, общая стоимость, зависимость от пакета, регистрация трейдера, лицензионная инфраструктура, непропорциональна стоимости. Suite components (Syncfusion, Spire) Часто задаваемые вопросы What is the best free barcode library for .NET? Это зависит от того, что вам нужно. Только для генерации QR-кода, QRCoder является непобедимым, 15М+ загрузок, нулевых зависимостей, лицензированный MIT. Для генерации 1D штрих-кода, BarcodeLib является самым популярным бесплатным вариантом. Для возможности чтения и написания с нулевой стоимостью, ZXing.Net является единственным выбором, но ожидайте инвестировать дополнительное время разработки вокруг своего пиломатериала. Can I read barcodes from PDF documents? IronBarcode читает штрих-коды с PDF-страниц, не требуя отдельной PDF-библиотеки. Aspose.BarCode может читать из PDF, когда он сочетается с Aspose.PDF. VintaSoft поддерживает чтение PDF через свой набор изображений. С ZXing.Net вам нужно сначала перевести страницы PDF в изображения с помощью отдельной библиотеки, такой как PDFium, а затем передать эти изображения в ZXing для чтения. How do I generate a barcode in C# with just one line of code? IronBarcode: BarcodeWriter.CreateBarcode("данные", BarcodeWriterEncoding.Code128).SaveAsPng("out.png"); Это генерирует, кодирует и сохраняет в одном цепном вызове. Which library works best with .NET MAUI for mobile scanning? IronBarcode поддерживает цели .NET MAUI для iOS и Android. Dynamsoft имеет специальный SDK MAUI для сканирования на основе камеры в режиме реального времени. Syncfusion предлагает штрих-код MAUI ZXing.Net.Mobile существует, но нацелена на более старую рамку Xamarin, а не на современный MAUI. Генератор Is ZXing.Net still actively maintained? Да, но темп разработки замедлился. Библиотека получает обновления, но новые функции и добавления форматов встречаются редко по сравнению с коммерческими альтернативами. Основная кодовая база стабильна и продолжает работать на новых версиях .NET, что достаточно для многих проектов. Однако мобильный пакет (ZXing.Net.Mobile) нацелен на Xamarin, а не на .NET MAUI, что делает его все более давним для мобильного развития. Which barcode formats are used most in retail and logistics? Retail полагается на EAN-13, UPC-A и GS1-128 для идентификации продукции и отслеживания цепочки поставок. QR-коды доминируют на азиатских рынках для мобильных платежей и маркетинга. Логистические операции используют код 128 для судоходных этикеток, PDF417 для правительственных идентификаторов и транспортных документов, а также GS1 DataBar для свежих продуктов и купонов. Любая полнофункциональная библиотека (IronBarcode, Aspose, LEADTOOLS) охватывает все это. How do I handle damaged or low-quality barcode images? Предварительная обработка изображений является ответом, и это самый большой дифференциатор между библиотеками для реальных приложений. Библиотеки с встроенной предварительной обработкой (IronBarcode, Dynamsoft, LEADTOOLS) автоматически применяют резкость, коррекцию контраста, дескевинг и снижение шума перед попыткой расшифровки. С ZXing.Net или другими библиотеками, которые не имеют предварительной обработки, вам нужно будет реализовать эти корректировки самостоятельно с помощью библиотеки изображений, такой как SkiaSharp или ImageSharp, а затем передать исправленное изображение считывателю штрих-кодов. IronBarcode сообщает 98% + процентов успеха на поврежденных или плохо напечатанных штрих-кодах, используя его автоматическую трубо What is the difference between 1D and 2D barcodes, and does my library choice matter? 1D (линейные) штрих-коды — Code 128, UPC-A, EAN-13 — кодируют данные в одном ряду штрих- и пробелов. Они хранят ограниченные данные (обычно 20-25 символов) и читаются с помощью лазерных сканеров. 2D штрих-коды — QR Code, Data Matrix, PDF417 — кодируют данные как в горизонтальном, так и в вертикальном измерении, храня сотни или тысячи символов. Каждая библиотека в этом сравнении поддерживает общие 1D-форматы. Дифференциатор поддерживает 2D: библиотеки только поколения, такие как BarcodeLib и NetBarcode, не поддерживают 2D-форматы вообще. Если ваш проект требует QR-кодов, Data Matrix, или PDF417, Can I use these libraries in Docker containers on Linux? Да, но с предостережениями. Любая библиотека, которая зависит от System.Drawing.Common, потерпит неудачу на Linux в .NET 6+, потому что Microsoft сделала ее только для Windows. IronBarcode, Aspose, Dynamsoft и современные версии ZXing.Net мигрировали от этой зависимости. BarcodeLib переехал в SkiaSharp. QRCoder имеет нулевые внешние зависимости. Всегда проверяйте выбранную библиотеку в контейнере Linux Docker перед принятием обязательств, даже библиотеки, которые утверждают, что поддерживают кроссплатформы, могут иметь крайние случаи вокруг рендеринга шрифтов или доступности кодеков изображений. Выбираем библиотеку: заключительные рекомендации После оценки всех 12 библиотек по качеству кода, дизайну API, поддержке форматов, совместимости платформы и стоимости, вот наши рекомендации, организованные по тому, что вы строите. Начните с ZXing.Net, если вам нужна возможность чтения, или BarcodeLib + QRCoder, если вам нужно только генерация.Примите грубость API и отсутствующие функции в качестве цены бесплатно. Building a startup MVP or proof of concept on a zero budget? IronBarcode предлагает сильнейший баланс простоты API, покрытия формата, поддержки на различных платформах и цены. Он обрабатывает весь трубопровод — генерацию, распознавание, предварительную обработку, чтение PDF — в одном пакете, не требуя дополнительных библиотек изображения. . Building a production application that reads and writes barcodes? Для запуска требуется одна установка NuGet и одна строка кода Оставайтесь в своей экосистеме. Aspose.BarCode беспрепятственно интегрируется с Aspose.PDF, Aspose.Words и остальной частью пакета. LEADTOOLS Штрих-код интегрируется с их SDK для обработки изображений, медицины и документов. Переключение экосистем на один компонент редко имеет архитектурный смысл. Building within an enterprise Aspose or LEADTOOLS ecosystem? Dynamsoft Barcode Reader предназначен для распознавания камеры в режиме реального времени с наивысшей точностью в этом пространстве. Building a mobile scanning application? Используйте управление генератором штрих-кодов Syncfusion. Он уже находится в вашем дереве зависимости и рождается в вашей структуре пользовательского интерфейса. Не принимайте его исключительно для нужд штрих-кода, это контроль пользовательского интерфейса, а не библиотека обработки бак-эндов. Building a Syncfusion-powered UI that needs to display barcodes? QRCoder. 15 миллионов скачиваний. Zero dependencies. Need only QR codes? Правильный ответ зависит от того, нужно ли вам читать, писать или оба; какие форматы требует ваша отрасль; где вы развертываете; и что позволяет ваш бюджет. Отзывы о Future-Proofing Экосистема .NET быстро развивается. , .NET 10 находится на горизонте, и System.Drawing.Common обесценен. Любой выбор библиотеки, который вы делаете сегодня, должен выжить, по крайней мере, два или три обновления версии .NET. Приоритет библиотеки, которые демонстрируют активное развитие (месячные или квартальные выпуски), явный .NET версионное таргетирование (не только .NET стандарт совместимости), и историю быстрого поддержки новых функций платформы. IronBarcode, Aspose, и Dynamsoft все публикуют регулярные обновления. ZXing.Net и QRCoder поддерживаются, но на более медленной скорости. BarcodeLib и NetBarcode зависят от отдельных менеджеров, что вводит риск-фактор для долгоживущих проектов. .NET 8 является текущей версией LTS Если вы принимаете это решение для команды, документируйте свои критерии оценки и обоснование вашего выбора.Следующий разработчик, который спрашивает "почему мы выбрали эту библиотеку?" поблагодарит вас. Интеграционная архитектура Tip Независимо от того, какую библиотеку вы выберете, оберните ее за интерфейс. Простой IBarcodeService с методами Generate() и Read() позволяет обмениваться реализациями, не касаясь кода приложения. Это не сверхинженерство, это страхование. Рынок библиотеки штрих-кодов является конкурентоспособным и эволюционирующим. Библиотеки приобретаются (LEADTOOLS → Apryse), техническое обслуживание замедляется (ZXing.Net), а модели ценообразования меняются. Абстракционный слой означает, что логика вашего приложения отключена от специальных API-провайдеров. Даже если вы никогда не меняете библиотеки, абстракция делает тестирование единиц тривиально простым — шутите интерфейс вместо борьбы с реальными изображениями штри Для полной документации на , , и Посетите центр документации IronBarcode. Создание штрих-кодов в C# чтение штрих-кодов из изображений и PDF Создание стильных QR-кодов The Bottom Line: Experiment with Trials and Find Your Fit В конечном счете, лучшая библиотека штрих-кодов для вашего проекта будет зависеть от ваших уникальных потребностей и ограничений.Независимо от того, строите ли вы стартап MVP с нулевым бюджетом, производственное приложение с полной поддержкой трубопроводов чтения / письма или мобильный инструмент сканирования для потоков камер в режиме реального времени, есть библиотека, которая соответствует вашим требованиям. Мы рекомендуем вам воспользоваться бесплатными пробными версиями, предлагаемыми и другие библиотеки, чтобы получить практический опыт и увидеть, как они работают в ваших собственных проектах.Не стесняйтесь экспериментировать с различными вариантами, чтобы найти тот, который лучше всего соответствует рабочему процессу вашей команды и техническим потребностям. IronBarcode Попробуйте лучшую библиотеку штрих-кодов для C# - Скачать IronBarcode Free Trial Изучая эти библиотеки и понимая их сильные стороны, вы можете принять обоснованное решение, которое не только сэкономит вам время, но и гарантирует, что вы используете инструмент, который поддерживает ваши долгосрочные цели — как с точки зрения производительности, так и поддержания.