Jeśli teraz wybierasz bibliotekę kodów kreskowych C# dla projektu .NET, stajesz przed trudniejszą decyzją, niż można się spodziewać. Ekosystem rozwinął się, aby obejmować co najmniej kilkanaście możliwych opcji, od pakietów open-source o zerowym koszcie po SDK dla przedsiębiorstw, które kosztują tysiące. Ważne jest to, ponieważ niewłaściwy wybór jest kosztowny. Kody kreskowe nie są dekoracyjne, są infrastrukturą. System zarządzania magazynem, który przetwarza 50 000 skanów dziennie, aplikacja służby zdrowia, w której kody kreskowe leków muszą być poprawnie czytane za każdym razem, system POS detaliczny, który obsługuje etykiety zgodne z GS1 na rynkach międzynarodowych, systemy te nie mogą tolerować wymiany biblioteki przez sześć miesięcy w produkcji. Biblioteka kodów kreskowych, którą wybierzesz w dniu pierwszym, staje się trwałym uzależnieniem architektonicznym. Nasz zespół porównał 12 bibliotek kodów kreskowych C# do spójnego zestawu kryteriów: obsługa symbologii, zdolność czytania/pisania, ergonomia API, wdrażanie między platformami, obsługa wersji .NET i całkowity koszt posiadania. Pełne ujawnienie: jesteśmy zespołem za IronBarcode, jedną z bibliotek w tym porównaniu. Traktujemy go jako jeden z dwunastu, podlegającemu tej samej kontroli. Przykład kodu: Generowanie kodów kreskowych za pomocą 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"); Przykładowy obraz kodu kreskowego IronBarcode Dwanaście księgarni na pierwszy rzut oka Oto tabela szybkiego odniesienia z najważniejszymi rzeczami. Każdy szczegół poniżej jest rozszerzony w kolejnych sekcjach. 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 Sklepy handlowe ($749+) ✅ ✅ 50+ ✅ Win/Linux lub Mac • 2 m ZXing.Net ZXing.net » Apache 2.0 (bezpłatny) ✅ ✅ ~15 ✅ Win/Linux lub Mac • 7 m Aspose.BarCode Komercyjne ($979+) ✅ ✅ 80+ ✅ Win/Linux lub Mac ~3m BarcodeLib BarcodeLib Apache 2.0 (bezpłatny) ❌ ✅ 30 1D ✅ Win/Linux lub Mac ~ 5m Dynamsoft Barcode Reader Przedsiębiorczość komercyjna (cytat) ✅ ❌ 30+ ✅ Win/Linux lub Mac ~ 500K Syncfusion Barcode Komercyjne (bezpłatne <$1M) ❌ ✅ ~ 10 ✅ Win/Linux lub Mac • 1 m+ LEADTOOLS Barcode Komercyjne ($ 1,469 +) ✅ ✅ 100+ ✅ Win/Linux lub Mac ~ 200k Spire.Barcode wolny rynek (free tier) ✅ ✅ 39+ więcej ️ WIN / LINUX • 800K NetBarcode Mikołaj (z darmowym ❌ ✅ ~12 1D ✅ Win/Linux lub Mac ~500K OnBarcode Komercyjna ✅ ✅ 20+ ️ Okna ~ 100k VintaSoft Barcode Komercyjna ✅ ✅ 40+ ️ Okna • 50K QRCoder Mikołaj (z darmowym ❌ ✅ QR tylko ✅ Win/Linux lub Mac ~15m ✅ = Pełne wsparcie ⚠️ = Częściowe/.NET Standard tylko 💡 = Nie jest obsługiwane Key: These libraries split into four distinct categories, and understanding where each sits is the fastest way to narrow your shortlist. (read + write + preprocessing + support): IronBarcode, Aspose.BarCode, LEADTOOLS Barcode. These handle both generation and recognition of barcode data, support dozens of formats, and come with commercial support agreements. They are built for production systems where reliability matters more than cost. Full-featured commercial libraries : Dynamsoft Barcode Reader. Dynamsoft specjalizuje się w rozpoznawaniu kodów kreskowych, czytaniu kodów kreskowych z kanałów kamer, skanowanych obrazów i dokumentów. Nie generuje kodów kreskowych. Jeśli twoja aplikacja potrzebuje tylko skanowania, Dynamsoft zasługuje na poważne rozważenie. Read-focused SDKs BarcodeLib, Syncfusion Barcode, NetBarcode, QRCoder, OnBarcode. Te tworzą obrazy kodów kreskowych, ale nie mogą je odczytać z zdjęć, skanowania lub dokumentów. Rozciągają się od darmowych pakietów open-source (BarcodeLib, QRCoder) do komercyjnych pakietów sterowania UI (Syncfusion). Generation-focused libraries : Spire.Barcode, VintaSoft Barcode. Te statki jako część większych pakietów do przetwarzania dokumentów. Ich możliwości kodów kreskowych są funkcjonalne, ale drugorzędne do podstawowych ofert pakietu rodzica. Suite components Jak wybrać: dopasowanie bibliotek do wymagań projektu Choosing a barcode library is not about finding the "best" one. It is about finding the best one . Here is a practical decision framework organized by the questions that actually matter. Dla ograniczeń Twojego projektu Do You Need to Read Barcodes, Write Them, or Both? Jest to jeden z najważniejszych filtrów. natychmiast eliminuje połowę opcji. If you only need to kody kreskowe, wykonywanie zadań, takich jak drukowanie etykiet, tworzenie kodów QR do materiałów marketingowych, osadzenie kodów kreskowych w fakturach PDF; następnie biblioteki, takie jak BarcodeLib, QRCoder lub Syncfusion Barcode są doskonale odpowiednie. 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 If you need — and most production systems eventually do — then IronBarcode, Aspose.BarCode, LEADTOOLS, and ZXing.Net are your primary candidates. both Jaki jest Twój budżet? : 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+ per developer) and LEADTOOLS ($1,469+ per developer) both sit here, with LEADTOOLS carrying additional deployment licensing costs. $1,000–$3,000 : Dynamsoft wykorzystuje cenę opartą na konsumpcji. LEADTOOLS wymaga odrębnych licencji na wdrożenie w czasie bieżącym. Oba te rozwiązania są odpowiednie dla dużych organizacji, ale wymagają negocjacji z dostawcami. Enterprise / quote-based Which Barcode Formats Do You Need? W przypadku głównych formatów (Code128, QR Code, EAN-13, UPC-A, Data Matrix), praktycznie każda biblioteka na tej liście działa. : Krytyczne dla handlu detalicznego i opieki zdrowotnej. IronBarcode, Aspose.BarCode i LEADTOOLS radzą sobie dobrze. GS1 DataBar / GS1-128 : Wymagane dla rządowych identyfikatorów i etykiet wysyłkowych. Obsługiwane przez IronBarcode, Aspose, LEADTOOLS, Dynamsoft. Nie obsługiwane przez BarcodeLib lub QRCoder. PDF417 : Używany przez UPS do sortowania pakietów. tylko IronBarcode, Aspose i LEADTOOLS obsługują go. MaxiCode : Używane na kartach pokładowych linii lotniczych i biletach tranzytowych. Wspierane przez IronBarcode, Aspose, LEADTOOLS, Dynamsoft i ZXing.Net. Aztec Rynki takie jak Japonia i Chiny w dużej mierze polegają na kodach QR i wyspecjalizowanych formatach 2D do płatności mobilnych, systemów tranzytowych i zarządzania łańcuchem dostaw.Jeśli Twoja aplikacja jest ukierunkowana na te regiony, priorytetem są biblioteki z silnym wsparciem dla wariantów kodu QR (Micro QR, rMQR) i solidnym przetwarzaniem wstępnym dla obrazów nagranych kamerą. What Real-World Scenario Are You Building For? 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 need to handle UPC-A, EAN-13, and QR codes for both product scanning and mobile payment integration. In markets like Japan, China, and South Korea, QR code-based payment is the primary transaction method. Libraries must handle rapid successive scans and integrate with real-time inventory databases. Cross-platform mobile deployment (via .NET MAUI or native SDKs) is often a hard requirement. 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 Gdzie chcesz się rozmieścić? Biblioteka, która działa idealnie w programie Visual Studio w systemie Windows, może nie działać w czasie uruchamiania w kontenerze Linux Docker, a tryb niepowodzenia jest często kryptycznym błędem native library, a nie wyraźnym wyjątkiem. Jest to najprostszy scenariusz wdrażania i jeden, który większość dokumentacji biblioteki domyślnie zakłada. Windows-only server : Eliminate VintaSoft and OnBarcode (Windows-primary). Ensure the library does not depend on , 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 Informacje : 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 : Środowiska bezserwerowe zwiększają ograniczenia pamięci i czasu realizacji. Biblioteki lekkie (QRCoder, BarcodeLib) uruchamiają się szybciej. Biblioteki cięższe (LEADTOOLS, Aspose) mogą wymagać większych alokacji pamięci i dłuższych budżetów na zimne uruchamianie. IronBarcode i Dynamsoft działają w systemie bezserwerowym, ale korzystają z przewidzianych planów równoważności lub premium, które ograniczają zimne uruchamianie. Azure Functions / AWS Lambda The 12 Libraries: What Each Does Well and Where Each Falls Short 1 IronBarcode Źródło: Iron Software • : Włocławek 20262 zł : ~2M Developer NuGet BarCode Latest Downloads IronBarcode is a commercial .NET barcode library that covers both generation and recognition across 50+ symbologies. It targets the middle ground between open-source simplicity and enterprise-grade feature depth. 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 : API jest zwięzłe, generowanie i czytanie każdego z nich zajmuje jedną linię kodu. Kluczowe funkcje obejmują obsługę wielu formatów danych, filtry korekcji obrazu i możliwość eksportowania kodów kreskowych do różnych formatów obrazu. Wstępne przetwarzanie obrazu (automatyczne obracanie, zaostrzanie, regulacja kontrastu) działa automatycznie podczas odczytu, co ma znaczenie dla rzeczywistych skanowania uszkodzonych lub źle drukowanych kodów kreskowych. Czytanie kodów kreskowych PDF jest wbudowane, nie zawieszone. Asynchroniczne i wielowarstwowe skanowanie są obsługiwane dla operacji partii. Wsparcie międzyplatformowe obejmuje Windows, Linux, macOS, Docker i .NET MAUI. Biblioteka obsługuje .NET 8 LTS . Strengths here Real-world deployments 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 Śledzenie leków medycznych retail packaging workflows : Nie za darmo, licencja Lite zaczyna się od 749 USD za dewelopera. Rozmiar pakietu NuGet (~30 MB z zależnościami) jest cięższy niż alternatywy open-source. 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) | • : Włocławek : 0.16.x | • ~7 m Developer NuGet ZXing.Net Latest Downloads ZXing.Net jest portem .NET w systemie Google , the most widely used open-source barcode library in existence. It is free, well-known, and installed in millions of projects. Zebra Crossing Biblioteka 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 Wyjście : 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 : Port .NET opóźnia się od oryginału Java. Wsparcie formatu jest węższe niż alternatywy komercyjne – nie ma GS1 DataBar, nie ma MaxiCode, ograniczone wsparcie kodów pocztowych. API jest słowne: generowanie kodu kreskowego wymaga tworzenia obiektów pisarzy, opcji kodowania i ręcznego przetwarzania danych pikseli. Zapisywanie do pliku obrazu wymaga oddzielnej biblioteki obrazów (SkiaSharp, ImageSharp lub System.Drawing). Brak wbudowanej preprocesji obrazu do uszkodzonych skanowania. Brak odczytu PDF. Pakiet mobilny (ZXing.Net.Mobile) jest przeznaczony dla Xamarin, a nie .NET MAUI. Wsparcie społeczności jest niespójne – wydania mogą 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 • Zacznij od • : | : 262 zł • ~3 m Developer NuGet Aspose.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. Przetwarzanie dokumentów 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 Output 4. BarcodeLib : Brad Barnhill | • : | • 1,5 zł : ~5M Developer NuGet BarcodeLib Latest Downloads BarcodeLib jest lekką, barcode biblioteka. Tworzy obrazy kodów kreskowych 1D z strun. To wszystko, co robi, i robi to dobrze. open-source pokolenia 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 : Projekty, które muszą generować standardowe kody kreskowe 1D (tagi produktów, tagi zapasowe) z minimalnym nadmiarem i zerowym kosztem. Best for teams start with BarcodeLib for a prototype, ship it to production, and six months later receive a requirement to also 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 5. Dynamsoft Barcode Reader Źródło: Dynamsoft Źródło: Dynamsoft.DotNet.BarcodeReader : ~ 500K Developer NuGet Downloads Dynamsoft to kod kreskowy 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 covers setup, template configuration, and performance tuning. reading .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}"); : Recognition accuracy is among the highest in the industry. Dynamsoft claims 34.9% more QR codes recognized than the next-best competitor in their benchmark of 1,000+ codes across 16 image quality types. Customizable recognition templates allow fine-tuning for specific barcode conditions (damaged, blurry, low contrast, extreme angles). Real-time camera feed scanning is a first-class feature, not an afterthought. Multi-platform SDKs cover .NET, JavaScript, Python, Java, and mobile. ISO 27001 certified. Strengths : Tylko do odczytu, w ogóle nie generuje kodów kreskowych. Ceny są oparte na zużyciu i zależne od cytatów, co utrudnia przewidywanie kosztów obciążeń roboczych o zmiennej objętości. .NET SDK wymaga więcej instalacji niż prostsze biblioteki. Limitations : Aplikacje, w których najwyższym priorytetem jest dokładność rozpoznawania z rzeczywistych źródeł kamery lub uszkodzonych dokumentów. skanowanie magazynowe, mobilne systemy POS i obrazowanie w zakresie kontroli jakości przemysłowej. silne również dla organizacji, które potrzebują wielojęzycznego wsparcia SDK (JavaScript dla sieci Web, .NET dla backendów, mobile-native dla aplikacji) od jednego dostawcy. 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 (per framework) | • 1 m+ Developer NuGet Downloads Generator kodów kreskowych Syncfusion jest kontrolerem UI wbudowanym w ich masywne Generuje kody kreskowe jako elementy wizualne w aplikacjach Blazor, .NET MAUI, WinForms, WPF i ASP.NET Core. Podstawowe apartamenty Studio // 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> : Bezpłatna licencja społecznościowa dla organizacji o przychodach poniżej 1 mln USD i mniej niż 5 deweloperów. integracja w ramach głębokiego interfejsu użytkownika, sterowanie kodem kreskowym jest native XAML/Blazor komponent, a nie biblioteka generowania obrazu. Obsługuje wspólne symbologie 1D (Code128, EAN, UPC, Code39) i 2D (Kod QR, Matrix danych). Dostosowanie wizualne (kolory, pozycjonowanie tekstu, rozmiar modułu) jest wbudowane w właściwości sterowania. Strengths : Generation only, no barcode reading/recognition. Limited symbology range (~10 types) compared to dedicated barcode libraries. You must adopt the full Syncfusion ecosystem (NuGet packages, handler registration, licensing infrastructure). The barcode control is tightly coupled to specific UI frameworks, it is not a general-purpose image-generation library you can call from a console app or background service. If you are not already using Syncfusion controls, adopting them for barcode generation alone is architectural overkill. Limitations : Zespoły już zainwestowane w ekosystem Syncfusion UI, które muszą wyświetlać kody kreskowe w aplikacjach front-end. Best for 7. LEADTOOLS Barcode : Apryse (formerly LEAD Technologies) | Źródło: Leadtools.Barcode : ~200K Developer NuGet Downloads LEADTOOLS is a 30-year-old obsługuje ponad 100 typów kodów kreskowych i podtypów — najwięcej z każdej biblioteki w tym porównaniu. Zdjęcia SDK : Niezrównana szerokość symbologii, ponad 100 typów, w tym wszystkie główne kody kreskowe 1D, 2D, pocztowe i kompozytowe. Patentowane algorytmy rozpoznawania zasilane przez sztuczną inteligencję. Zaawansowana preprocesja (deskew, usuwanie hałasu, usuwanie otworów, korekta błyskawiczna). Wielojęzyczne wsparcie na platformach .NET, C++, Java i mobilnych. Strengths : Najdroższa opcja w tym porównaniu. Licencje rozwojowe zaczynają się od 1 469 USD, a wdrożenie wymaga oddzielnych licencji czasowych, których ceny różnią się w zależności od modelu wdrożenia (musisz skontaktować się ze sprzedażą w celu uzyskania cytatów). Powierzchnia API jest duża i złożona, LEADTOOLS to najpierw SDK do obrazowania, a po drugie biblioteka kodów kreskowych. Załadujesz obiekty RasterImage, tworzysz instancje BarcodeEngine i konfigurujesz opcje specyficzne dla symbologii. To nie jest jednorazowy API. 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 | • : | : ~ 800K Developer NuGet Wtyczka. barcode Downloads Spire.Barcode is the barcode component of e-iceblue's Spire.Office , konkurent z siedzibą w Chinach do Aspose. obsługuje 39+ formatów kodów kreskowych z generowaniem i rozpoznawaniem. Suita : 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 : Wsparcie międzyplatformowe jest niekompletne, biblioteka zależy od System.Drawing.Common w .NET Framework i wykorzystuje SkiaSharp w nowoczesnym .NET, ale wsparcie MAUI/mobile jest niejasne. kompatybilność .NET 8+ istnieje za pośrednictwem ukierunkowania .NET Standard 2.0, a nie native .NET 8 buduje. dokumentacja jest słabsza niż zachodnich konkurentów. bezpłatny poziom dodaje oceny znaków wodnych do wygenerowanych kodów kreskowych. rozmiar pakietu NuGet jest duży (~15 MB). przyjęcie społeczności poza Chinami jest ograniczone. Limitations : Zespoły już korzystające z komponentów Spire.Office lub deweloperzy pracujący głównie w środowiskach rozwoju w języku chińskim, w których e-iceblue ma silniejsze wsparcie społeczności. Best for 9. NetBarcode : Tagliatti (community) | Źródło: NetBarcode : 1.7.x Wymagania : ~500K Developer NuGet Latest Downloads Kod NetBarcode jest minimalny, Biblioteka generowania kodów kreskowych. Tworzy kody kreskowe 1D przy użyciu programu ImageSharp (dawniej System.Drawing). MIT-licensed : Licencja MIT, naprawdę wolna bez ograniczeń. Mały ślad. Proste API. Migrowano do SixLabors.ImageSharp, usuwając uzależnienie System.Drawing dla autentycznego wsparcia międzyplatformowego. Obsługuje standardowe formaty 1D: Code128, Code39, Code93, EAN-13, EAN-8, i kilka innych. Strengths : Tylko generacja, bez czytania kodów kreskowych. tylko kody kreskowe 1D, bez kodów QR, bez matrycy danych. Ograniczona obsługa symboliki (~12 typów). minimalne opcje dostosowania. pojedynczy konserwator z rzadkimi aktualizacjami. brak wsparcia komercyjnego. Limitations : Minimalna generacja kodu kreskowego 1D w aplikacjach .NET, w których liczy się każdy bajt zależności, a licencjonowanie MIT jest trudnym wymogiem. NetBarcode jest "microlibem" w tym porównaniu, robi jedną rzecz z minimalną nadwagą. W przypadku microservices z kontenerami, w których ma znaczenie rozmiar obrazu, mały ślad NetBarcode jest prawdziwą przewagą nad cięższymi alternatywami. Best for 10 OnBarcode • : Włocławek : .NET Standard 2.0 Developer OnBarcode Platform OnBarcode zapewnia generowanie kodów kreskowych i rozpoznawanie SDK z wersjami .NET i Java. Biblioteka obsługuje ponad 20 symbologii w dwóch oddzielnych DLL, jeden oparty na System.Drawing.Common (Windows) i jeden na SkiaSharp (platformowy). : Produkt dojrzały z długą historią. Wspiera zarówno generowanie, jak i rozpoznawanie. Zapewnia oddzielne DLL dla środowisk Windows i cross-platform. Wspiera kodowanie danych GS1 dla aplikacji detalicznych i łańcuchów dostaw. 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 : Projekty .NET Framework oparte na systemie Windows wymagające podstawowej generacji kodów kreskowych z pewnymi możliwościami rozpoznawania. OnBarcode ma długą historię w przestrzeni kodów kreskowych .NET i był jednym z pierwszych uczestników na rynku. zespoły utrzymujące zaawansowane aplikacje .NET Framework 4.x mogą uznać, że jest to bardziej naturalne niż biblioteki, które całkowicie przełożyły się na nowoczesny .NET. Jednak w przypadku nowych projektów ukierunkowanych na .NET 8+, powyższe alternatywy oferują lepsze doświadczenie dla programistów i silniejsze wsparcie międzyplatformowe. Best for 11. VintaSoft Barcode Tag: winowajca .NET Framework lub .NET Standard Developer Platform jest częścią zestawu narzędzi do obrazowania VintaSoft. obsługuje czytanie i pisanie ponad 40 symbologii 1D i 2D w cyfrowych obrazach i plikach PDF. Kod kreskowy VintaSoft .NET SDK : Supports both generation and recognition across a solid range of symbologies. PDF barcode reading. Includes a WPF image viewer component for interactive barcode display. Integration with VintaSoft's broader imaging and document toolkit. Strengths Obsługa międzyplatformowa (.NET Core / .NET 5+) istnieje, ale jest drugorzędna dla doświadczenia w systemie Windows. Mniejsza baza użytkowników oznacza mniej zasobów społecznościowych, samouczków i integracji stron trzecich. Ceny wymagają kontaktu ze sprzedażą. Produkt rozwija się wolniej niż aktywnie konkurujące biblioteki, takie jak IronBarcode lub Aspose. Limitations Integracja widzów WPF jest unikalnym punktem sprzedaży - jeśli Twoja aplikacja potrzebuje interaktywnego wyświetlania kodu kreskowego z pan/zoomem i anotacją obok wykrywania kodu kreskowego, VintaSoft zapewnia to w jednym składniku, a nie wymaga oddzielnych bibliotek obrazowania i kodu kreskowego. Best for 12. QRCoder : Raffael Herrmann (wspólnota) • : | : ~15M Developer NuGet Krokodyl Downloads QRCoder jest Pakiet związany z kodami kreskowymi w NuGet — ale robi dokładnie jedno: generuje kody QR. Najczęściej pobierane 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 Output : Zakres skoncentrowany na laserze. Bardzo dobrze utrzymywany z częstymi wydaniami. 15M+ pobrań NuGet dowodzi niezawodności produkcji. Zero zależności zewnętrznych w pakietie podstawowym. Wielokrotne rendery wyjściowe: bajty PNG, SVG, sztuka ASCII, PDF i więcej. licencjonowany przez MIT. Wspiera poziomy korekty błędów, niestandardowe kolory i ciche strefy. Strengths : tylko kody QR, żadna inna symbolika. tylko pokolenie, nie można odczytać kodów QR. Jeśli w końcu potrzebujesz innego typu kodu kreskowego lub możliwości rozpoznawania, będziesz potrzebował drugiej biblioteki. Limitations : Projekty, które potrzebują tylko generowania kodu QR i chcą najbardziej sprawdzonej, lekkiej, wolnej od uzależnień opcji dostępnej. materiały marketingowe, kodowanie adresów URL, kody QR do płatności mobilnych, bilety na wydarzenia. Best for 15 milionów pobrań sprawia, że QRCoder jest jednym z najbardziej zaufanych pakietów w ekosystemie .NET. Jego architektura renderowania jest szczególnie dobrze zaprojektowana: można wydobywać kody QR jako bajty PNG, struny SVG, sztukę ASCII do wyświetlania końcowego lub nawet jako strony PDF, wszystko bez dodawania jednej zewnętrznej zależności. Jedynym scenariuszem, w którym QRCoder nie spełnia oczekiwań, jest to, gdy deweloperzy zakładają, że ponieważ generuje kody QR tak dobrze, musi je również odczytać. Nie. Jeśli potrzebujesz zarówno generowania, jak i odczytywania kodów QR, połącz QRCoder z ZXing.Net (bezpłatny) lub IronBarcode (komercyjny) dla strony odczytu. Head-to-Head: Generating a Code128 Barcode Oto, jak cztery biblioteki generują kod kreskowy Code128 z wiersza "SHIP-2026-0042" i zapisują go jako obraz PNG. (1 wiersz znaczącego kodu): IronBarcode using IronBarCode; BarcodeWriter.CreateBarcode("SHIP-2026-0042", BarcodeWriterEncoding.Code128) .SaveAsPng("iron-barcode.png"); (requires additional imaging library): 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 linie znaczącego kodu): Aspose.BarCode using Aspose.BarCode.Generation; var generator = new BarcodeGenerator(EncodeTypes.Code128, "SHIP-2026-0042"); generator.Save("aspose-barcode.png"); (3 lines + SkiaSharp for save): 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()); Podsumowanie jest jasne: IronBarcode i Aspose.BarCode całkowicie abstrakcyjnie usuwają rurociąg obrazowania. i BarcodeLib wymagają, abyś przyniósł własne rozwiązanie do kodowania obrazów. W przypadku jednorazowego skryptów nie ma to znaczenia. W przypadku bazy kodów utrzymywanej przez wielu deweloperów przez lata, API łączy się z prostotą. ZXing.net » There is a deeper architectural point here. Libraries that produce raw pixel data (ZXing.Net) or SkiaSharp objects (BarcodeLib) force you to adopt a specific imaging dependency across your entire barcode workflow. If you later switch imaging libraries — say, from SkiaSharp to ImageSharp — you will need to refactor every call site. Libraries that handle their own image output (IronBarcode, Aspose) isolate your application code from imaging implementation details. This matters more than most developers realize until they are three years into a project and facing a dependency upgrade. Head-to-Head: czytanie kodów kreskowych z obrazów Oto, jak cztery biblioteki radzą sobie z czytaniem kodów kreskowych ze skanowanego obrazu etykiety magazynu: : IronBarcode using IronBarCode; var results = BarcodeReader.Read("warehouse-label.png"); foreach (var r in results) Console.WriteLine($"[{r.BarcodeType}] {r.Value}"); (wymagane jest ręczne załadowanie obrazu): 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}"); Wszystkie cztery obrazy kodów kreskowych są czyste i kontrastowe. Różnice z trudnymi wejściami: obracanie kodów kreskowych, nagrywanie kamer o niskiej rozdzielczości, uszkodzone etykiety lub kody kreskowe osadzone w wielostronnych plikach PDF. Auto-preprocesowanie IronBarcode (ostrzeżenie, kontrast, korekta obrotowa) i tuning rozpoznawania oparty na szablonie firmy Dynamsoft są specjalnie zaprojektowane do tych scenariuszy. ZXing.Net nie zapewnia preprocesowania, musisz samodzielnie poradzić sobie z korektą obrazu lub zaakceptować niższe stawki rozpoznawania. Subtelność, która często zaskakuje programistów: metoda Decode() firmy ZXing.Net zwraca tylko Jeśli skanowany dokument zawiera wiele kodów kreskowych (zwykłych w etykietach wysyłkowych, formularzach ubezpieczeniowych i fakturach wielopoziomowych), musisz wyraźnie skonfigurować czytnik, aby zwrócić wiele wyników. IronBarcode, Aspose i Dynamsoft domyślnie wykrywają wiele kodów kreskowych. first Kolejnym rozważaniem jest . In document-heavy workflows, insurance claim processing, legal document management, supply chain paperwork, barcodes are embedded in PDF files, not standalone images. IronBarcode reads barcodes directly from PDF pages via BarcodeReader.ReadPdf() without requiring the developer to first render each page to an image. Aspose achieves this through integration with Aspose.PDF. ZXing.Net and Dynamsoft require a separate PDF-to-image rendering step using a library like PDFium or IronPDF. That extra step adds complexity, dependencies, and processing time, especially for multi-hundred-page document batches. PDF reading Wydajność i przetwarzanie baterii Benchmarks wydajności dla bibliotek kodów kreskowych są trudne do standaryzacji, ponieważ szybkość rozpoznawania zależy w dużej mierze od jakości obrazu, typu kodu kreskowego, rozdzielczości obrazu i liczby kodów kreskowych na obraz. Prędkość rozpoznawania pojedynczego obrazu Dla czystych, dobrze sformatowanych obrazów kodów kreskowych (wysoki kontrast, brak uszkodzeń, jeden kod kreskowy na obraz), wszystkie biblioteki obsługujące czytanie wykonują zadanie w mniej niż 100 milisekund. Architektura przetwarzania batch Podczas przetwarzania tysięcy obrazów kodów kreskowych - wspólnego wymogu w cyfryzacji dokumentów, odbiór magazynowy i przetwarzanie roszczeń ubezpieczeniowych - architektura przetwarzania partii biblioteki ma znaczenie. BarcodeReader akceptuje opcje BarcodeReader, które zawierają Multithreaded = true i mogą przetwarzać wielostronne TIFF i pliki PDF na stronie bez ładowania całych dokumentów do pamięci. 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"); Przetwarzanie partii za pomocą IronBarcode oferuje podobne możliwości partii za pośrednictwem swojej klasy BarCodeReader z konfigurowalnymi ustawieniami wstępnymi QualitySettings (HighPerformance, NormalQuality, HighQuality, MaxBarCodes). Aspose.BarCode wykorzystuje podejście oparte na szablonie, w którym parametry skanowania (przewidywane formaty, region zainteresowania, ustawienia deblur) są określone w szablonach JSON. To pozwala na optymalizację na użytek. Dynamsoft nie zapewnia wbudowanego przetwarzania partii. Deweloperzy wdrażają swój własny paralelizm za pomocą Task.WhenAll lub Parallel.ForEach, ładowanie i przetwarzanie obrazów indywidualnie. ZXing.Net Korzyść polega na tym, że wstępne przetwarzanie (deskew, despeckle, border removal) i czytanie kodów kreskowych można łańcuchować w jednym przewodzie, co jest efektywne dla przepływów pracy skanowanych dokumentów, w których każdy obraz wymaga czyszczenia przed czytaniem. LEADTOOLS Memory Footprint Considerations Biblioteki, które ładują całe dokumenty PDF lub obrazy o wysokiej rozdzielczości do pamięci, mogą powodować problemy w środowiskach o ograniczonych zasobach (Azure App Service, AWS Lambda, Kubernetes pods z limitami pamięci). IronBarcode przetwarza strony PDF indywidualnie w celu zarządzania pamięcią. Podejście Aspose jest podobne. ZXing.Net działa na pojedynczych obrazach, więc zarządzanie pamięcią jest odpowiedzialnością dewelopera. SDK serwera Dynamsoft jest zoptymalizowany do pracy z niską przepustowością pamięci. LEADTOOLS zapewnia wyraźne zarządzanie pamięcią za pomocą wzorców usuwania RasterImage, ale wymaga starannego kodowania, aby uniknąć wycieków w scenariuszach serii. The Preprocessing Advantage W przypadku systemów produkcyjnych dokładność rozpoznawania na niedoskonałych wejściach jest ważniejsza niż prędkość surowa na czystych wejściach. Biblioteka, która odczytuje 10 000 czystych kodów kreskowych na sekundę, ale niepowoduje awarii w przypadku 5% skanowania w świecie rzeczywistym, kosztuje więcej – pod względem operacyjnym – niż biblioteka, która przetwarza 5000 na sekundę przy współczynniku awarii 0,5%. Symbolizacja Matrix This matrix covers the formats most commonly needed in production. For full lists, consult each library's official documentation. 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 ✅ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ Kod 128 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ Kod 39 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ QR Code ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ✅ Data Matrix ✅ ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ EAN 13 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ UPC ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ WP417 ✅ ✅ ✅ ❌ ✅ ❌ ✅ ✅ ❌ Azteków ✅ ✅ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Zestaw danych GS1 ✅ ️ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Maksymalizacja ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Mikro QR ✅ ❌ ✅ ❌ ✅ ❌ ✅ ❌ ❌ Inteligentna poczta ✅ ❌ ✅ ❌ ❌ ❌ ✅ ❌ ❌ Klucz: ✅ = Pełne przeczytanie + napisanie ⚠️ = Częściowe wsparcie 💡 = Nie jest obsługiwane Po pierwsze, biblioteki komercyjne (IronBarcode, Aspose, LEADTOOLS) konsekwentnie obejmują najszerszy zakres, są jedynymi opcjami, jeśli potrzebujesz formatów, takich jak MaxiCode, Micro QR lub Intelligent Mail. Po drugie, ZXing.Net obejmuje formaty mainstreamowe dobrze, ale szybko spada do specjalistycznych kodów przemysłowych lub pocztowych. Po trzecie, biblioteki generacyjne (BarcodeLib, QRCoder, Syncfusion) są z natury ograniczone do formatów, dla których zostały zaprojektowane. Praktyczna uwaga dotycząca symbologii twierdzi: LEADTOOLS i Aspose cytują najwyższe liczby (100+ i 80+ odpowiednio), ale wiele z nich jest podtypami tej samej rodziny. Na przykład Kod 128A, Kod 128B i Kod 128C są wymienione jako trzy oddzielne wpisy przez niektórych dostawców, ale są naprawdę wariantami jednej specyfikacji. Liczba, która ma znaczenie, nie jest „jak wiele symbologii”, ale „czy obsługuje konkretne formaty, których potrzebuje moja aplikacja”. Dla zespołów, które nie są pewne, jakie formaty będą im potrzebne, oto bezpieczne minimum: Kod 128 (alfanumeryczny ogólnego zastosowania), Kod QR (2D dane z korektą błędów), EAN-13 / UPC-A (produkty detaliczne) i Matrix danych (kompaktowy 2D do znakowania przemysłowego). Każda biblioteka, która obsługuje te cztery, obejmuje około 90% scenariuszy kodów kreskowych w świecie rzeczywistym. Kompatybilność platformy i wdrożenia Nowoczesne projekty .NET są wdrażane wszędzie, serwery Windows, kontenery Linux Docker, usługi Azure App Services, funkcje AWS Lambda i urządzenia mobilne. 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 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ZXing.net » ✅ ✅ ✅ ✅ ️ ✅ ✅ Podręcznik. barcode ✅ ✅ ✅ ✅ * ✅ ✅ BarcodeLib ✅ ✅ ✅ ✅ ❌ ✅ ✅ Dynamosoft ✅ ✅ ✅ ✅ ✅ ❌ ✅ Synfuzja ✅ ✅ ✅ ✅ ✅ ✅ ✅ Narzędzia przewodnie ✅ ️ ✅ ✅ ✅ ️ ✅ Wtyczka. barcode ️ ⚠️ ✅ ️ ❌ ❌ ️ NetBarcode ✅ ✅ ✅ ✅ ❌ ❌ ✅ Krokodyl ✅ ✅ ✅ ✅ ❌ ✅ ✅ Klucz: ✅ = Testowane / udokumentowane ⚠️ = Za pośrednictwem .NET Standard / nie wyraźnie testowane ⚠️ = Nie obsługiwane * = Za pośrednictwem celu .NET MAUI Krytyczna linia podziału jest • Microsoft Biblioteki, które nadal zależą od niego (starsze wersje BarcodeLib, Spire, OnBarcode) zawiodą w milczeniu lub wyrzucą wyjątki czasowe, gdy zostaną wdrożone do kontenerów Linux. IronBarcode, Aspose i ZXing.Net odeszły od tej zależności. System.Drawing.Common Ten pakiet jest przeznaczony dla platform innych niż Windows. Wdrażanie aplikacji Docker i Cloud Nowoczesne aplikacje .NET są coraz częściej wdrażane do kontenerów Docker opartych na systemie Linux uruchamianych w systemie Kubernetes, Azure App Service lub AWS ECS. Biblioteki kodów kreskowych, które są ukierunkowane na .NET 8+ natively (nie za pośrednictwem zgodności .NET Standard) zazwyczaj oferują najbardziej płynne doświadczenie. Biblioteki ukierunkowane na .NET Standard 2.0 technicznie działają w systemie .NET 8, ale mogą pominąć optymalizacje specyficzne dla platformy i mogą wprowadzać konflikty rozwiązywania zależności. Specyficzna gotcha: niektóre biblioteki kodów kreskowych wymagają native system biblioteki do przetwarzania obrazu. Na minimalnym obrazu Docker (jak mcr.microsoft.com/dotnet/runtime:8.0), te mogą nie być obecne. IronBarcode dostarcza własne native binary. ZXing.Net polega na dowolnej bibliotece obrazowania, z którą go parować. Dynamsoft zawiera platformowe native biblioteki w swoim pakiecie NuGet. Jeśli obraz Docker brakuje libgdiplus lub libfontconfig, biblioteki w zależności od System.Drawing lub niektórych konfiguracji SkiaSharp zawiodą w czasie pracy. Zawsze testuj w kontenerze odpowiadającym obrazu bazy produkcji. .NET MAUI i rozważania mobilne Skanowanie kodów kreskowych na urządzeniach przenośnych jest zasadniczo inne niż przetwarzanie po stronie serwera. Wstępem jest podajnik kamery na żywo z zmiennym oświetleniem, rozmyciem ruchu i nieprzewidywalnymi kątami. Biblioteki przeznaczone do przetwarzania obrazów opartych na plikach (większość wpisów na tej liście) wymagają dostosowania do scenariuszy kamery w czasie rzeczywistym. IronBarcode obsługuje cele .NET MAUI i może przetwarzać obrazy zarejestrowane przez kamerę, chociaż nie jest specjalnie zoptymalizowany do transmisji wideo na żywo w sposób Dynamsoft. Kontrola kodów kreskowych Syncfusion generuje kody kreskowe w interfejsie MAUI, ale nie czyta ich. ZXing.Net.Mobile istnieje dla Xamarin, ale nie została zaktualizowana dla .NET MAUI od tego pisania. Porównanie cen i licencji "Bezpłatna" biblioteka, która kosztuje twój zespół 40 dodatkowych godzin pracy integracyjnej, nie jest w rzeczywistości tańsza niż opcja komercyjna w wysokości 749 USD. 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-developer – stały deweloper 749 dolarów 1 rok wliczony 30-dniowy proces Dodatkowe ($ ) ZXing.net » Aplikacja Apache 2.0 0 dolarów Wspólnota tylko pełna ✅ darmowe Aspose.BarCode Perpetual per-developer – stały deweloper 979 zł 1 year included Ocena jakości (znak wodny) Dodatkowe ($ ) BarcodeLib Aplikacja Apache 2.0 0 dolarów Wspólnota tylko pełna ✅ darmowe Dynamosoft Konsumpcja oparta Cytaty włącznie 30-dniowy proces Licencja uzależniona Synfuzja Per-deweloperzy $0 (< $1M przychody) włącznie Licencja Wspólnoty Suita zależna Narzędzia przewodnie Zaawansowany deweloper + runtime $1,469 1 rok wliczony 60-dniowe oceny Oddzielny czas działania ($) Wtyczka. barcode Per-deweloperzy Cytaty włącznie Darmowa edycja (ograniczona) Dodatkowe ($ ) NetBarcode Mitem 0 dolarów Wspólnota tylko pełna ✅ darmowe Krokodyl Mitem 0 dolarów Wspólnota tylko pełna ✅ darmowe : Hidden cost factors to consider Narzędzia wymagają oddzielnego Licencje na produkcję, tylko licencja na rozwój nie obejmuje wysyłki aplikacji.To jest niezwykłe i może znacznie zwiększyć całkowity koszt wdrożenia wielu serwerów. Rozmieszczenie Cenowanie oparte na konsumpcji Dynamsoft sprawia, że budżetowanie jest nieprzewidywalne dla aplikacji o zmiennych objętościach skanowania kodów kreskowych.System zarządzania magazynem, który przetwarza 10 000 skanów podczas szczytów wakacyjnych, ale 500 w wolnych miesiącach, zobaczy bardzo różne rachunki. Bezpłatna licencja społeczności Syncfusion ma rygorystyczne wymagania kwalifikowalności (kapitalizacja przychodów w wysokości 1 mln USD, limit 5 dla deweloperów, limit 10 pracowników). Biblioteki z otwartym źródłem (ZXing.Net, BarcodeLib, QRCoder, NetBarcode) nie ponoszą żadnych kosztów licencyjnych, ale także nie mają umowy SLA. Jeśli krytyczny błąd blokuje wdrożenie produkcji w piątek po południu, jesteś na własną rękę, dopóki członek społeczności nie zdecyduje się na przegląd problemu GitHub. Całkowity koszt posiadania: poza ceną naklejki Wysiłek związany z integracją, obciążenie utrzymaniem i ryzyko operacyjne to niewidoczne koszty, które często dominują w sumie. : $0 koszt licencji. Ale czynnik: 5-15 godzin dodatkowej pracy integracyjnej w celu zmontowania rurociągu obrazowania (ZXing.Net), zero gwarantowanego czasu reakcji na błędy i ryzyko, że jeden konserwator porzuci projekt. Dla startupów budujących MVP te kompromisy są zwykle akceptowalne. Open-source (ZXing.Net, BarcodeLib, QRCoder) : $749-$979 za dewelopera z rocznym wsparciem i aktualizacjami. Licencja wieczna oznacza, że nie są wymagane dalsze płatności, możesz kontynuować korzystanie z wersji, którą kupiłeś na czas nieokreślony. Odnawianie wsparcia na kolejne lata jest opcjonalne. Koszty dla zespołu 3-osobowego w ciągu 3 lat wahają się od około $2,250 do $5,900 w zależności od tego, czy odnawiasz wsparcie rocznie. Mid-tier commercial (IronBarcode, Aspose.BarCode) : Wyższe koszty bazowe plus licencje specyficzne dla wdrożenia. Rozdzielenie licencji na rozwój i wdrożenie przez LEADTOOLS oznacza zwiększenie kosztów z infrastrukturą. Licencja na rozwój w wysokości 1 469 USD to dopiero początek; każdy serwer produkcyjny może wymagać dodatkowej licencji na czas realizacji. Model zużycia Dynamsoft łączy koszty z objętością użytkowania, co jest efektywne dla aplikacji o niskiej objętości, ale staje się drogie w skali. Enterprise commercial (LEADTOOLS, Dynamsoft) : Jeśli już płacisz za pakiet, komponent kodu kreskowego jest skutecznie darmowy. jeśli przyjmujesz pakiet wyłącznie dla funkcjonalności kodu kreskowego, nadwaga, zależności pakietu, rejestracja handlera, infrastruktura licencjonowania, jest nieproporcjonalna do wartości. Suite components (Syncfusion, Spire) Często zadawane pytania What is the best free barcode library for .NET? To zależy od tego, czego potrzebujesz. Tylko dla generowania kodu QR, QRCoder jest niepokonany, 15M+ pobrań, zero zależności, licencjonowany przez MIT. Dla generowania kodu kreskowego 1D, BarcodeLib jest najpopularniejszą bezpłatną opcją. Dla możliwości czytania i pisania przy zerowym koszcie, ZXing.Net jest jedynym wyborem, ale spodziewaj się zainwestować dodatkowy czas rozwoju wokół swojej rurociągu obrazów. Can I read barcodes from PDF documents? Tylko kilka bibliotek obsługuje to natywnie. IronBarcode czyta kody kreskowe ze stron PDF bez konieczności posiadania oddzielnej biblioteki PDF. Aspose.BarCode może czytać z PDF w połączeniu z Aspose.PDF. VintaSoft obsługuje czytanie plików PDF za pośrednictwem zestawu obrazowania. Dzięki ZXing.Net będziesz musiał najpierw odtworzyć strony PDF na obrazy za pomocą oddzielnej biblioteki, takiej jak PDFium, a następnie przekazać te obrazy do ZXing do odczytu. How do I generate a barcode in C# with just one line of code? IronBarcode: BarcodeWriter.CreateBarcode("dane", BarcodeWriterEncoding.Code128).SaveAsPng("out.png"); To generuje, koduje i zapisuje w jednym łańcuchu. Which library works best with .NET MAUI for mobile scanning? IronBarcode obsługuje cele .NET MAUI dla systemów iOS i Android. Dynamsoft posiada dedykowany SDK MAUI do skanowania w czasie rzeczywistym. Syncfusion oferuje kod kreskowy MAUI ZXing.Net.Mobile istnieje, ale ma na celu starsze ramy Xamarin, a nie nowoczesny MAUI. Generatorzy Is ZXing.Net still actively maintained? Tak, ale tempo rozwoju spowolniło. Biblioteka otrzymuje aktualizacje, ale nowe funkcje i dodatki formatów są rzadkością w porównaniu z alternatywami komercyjnymi. Podstawowa baza kodowa jest stabilna i nadal działa na nowych wersjach .NET, co jest wystarczające dla wielu projektów. Jednak pakiet mobilny (ZXing.Net.Mobile) ma na celu Xamarin zamiast .NET MAUI, co czyni go coraz bardziej datowanym dla rozwoju mobilnego. Which barcode formats are used most in retail and logistics? Sprzedaż detaliczna opiera się na EAN-13, UPC-A i GS1-128 do identyfikacji produktów i śledzenia łańcucha dostaw. Na rynkach azjatyckich dominują kody QR do płatności mobilnych i marketingu. Operacje logistyczne wykorzystują kod 128 do etykiet wysyłkowych, PDF417 do dokumentów rządowych i transportowych oraz GS1 DataBar do świeżych produktów i kuponów. How do I handle damaged or low-quality barcode images? Preprocesowanie obrazu jest odpowiedzią i jest jednym z największych różnicowców między bibliotekami dla aplikacji w świecie rzeczywistym. Biblioteki z wbudowanym preprocesowaniem (IronBarcode, Dynamsoft, LEADTOOLS) automatycznie stosują ostrość, korektę kontrastu, deskewing i redukcję hałasu przed próbą dekodowania. Z ZXing.Net lub innymi bibliotekami, które nie mają preprocesowania, musisz samodzielnie wdrożyć te korekty za pomocą biblioteki obrazów, takiej jak SkiaSharp lub ImageSharp, a następnie przekazać poprawiony obraz do czytnika kodów kreskowych. IronBarcode zgłasza 98%+ odsetek sukcesów na uszkodzonych lub źle drukowanych kodach kreskowych za pomocą automatycznej rurociągu preproces What is the difference between 1D and 2D barcodes, and does my library choice matter? 1D (linearne) kody kreskowe — Kod 128, UPC-A, EAN-13 — kodują dane w jednym rzędzie pasków i przestrzeni. Przechowują ograniczone dane (zwykle 20-25 znaków) i są odczytywane przez skanery laserowe. 2D kody kreskowe — QR Code, Data Matrix, PDF417 — kodują dane w wymiarach poziomym i pionowym, przechowując setki do tysięcy znaków. Każda biblioteka w tym porównaniu obsługuje wspólne formaty 1D. Diferenciator obsługuje 2D: biblioteki tylko generacji, takie jak BarcodeLib i NetBarcode, nie obsługują w ogóle formatów 2D. Jeśli Twój projekt wymaga kodów QR, Data Matrix, lub PDF417, Twoje opcje to IronBarc, ZXing. Can I use these libraries in Docker containers on Linux? Tak, ale z ostrzeżeniami. Wszelkie biblioteki, które zależą od System.Drawing.Common, zawiodą w systemie Linux w .NET 6+, ponieważ Microsoft uczynił je tylko dla systemów Windows. IronBarcode, Aspose, Dynamsoft i nowoczesne wersje ZXing.Net odeszły od tej zależności. BarcodeLib przeniósł się do SkiaSharp. QRCoder ma zerowe zależności zewnętrzne. Zawsze testuj wybraną bibliotekę w kontenerze Linux Docker przed zaangażowaniem, nawet biblioteki, które twierdzą, że wsparcie platformowe może mieć przypadki krawędzi wokół renderowania czcionek lub dostępności kodeków obrazu. Wybór biblioteki: ostateczne zalecenia Po ocenie wszystkich 12 bibliotek w zakresie jakości kodu, projektowania API, obsługi formatów, kompatybilności platformy i kosztów, oto nasze zalecenia zorganizowane według tego, co budujesz. Zacznij od ZXing.Net, jeśli potrzebujesz możliwości czytania, lub BarcodeLib + QRCoder, jeśli potrzebujesz tylko generowania. Zaakceptuj surowość API i brakujące funkcje w cenie za darmo. Building a startup MVP or proof of concept on a zero budget? IronBarcode oferuje najsilniejszą równowagę między prostotą API, zasięgiem formatów, obsługą platform i ceną. obsługuje cały rurociąg - generowanie, rozpoznawanie, preprocesowanie, czytanie plików PDF - w jednym pakiecie bez konieczności dodatkowych bibliotek obrazowania. . Building a production application that reads and writes barcodes? Rozpoczęcie wymaga jednej instalacji NuGet i jednej linii kodu Pozostań w swoim ekosystemie. Aspose.BarCode bezproblemowo integruje się z Aspose.PDF, Aspose.Words i resztą pakietu. LEADTOOLS Barcode integruje się z ich SDK do obrazowania, medycyny i dokumentów. Przełączanie ekosystemów na jeden komponent rzadko ma sens architektoniczny. Building within an enterprise Aspose or LEADTOOLS ecosystem? Dynamsoft Barcode Reader jest przeznaczony do rozpoznawania zasilania kamer w czasie rzeczywistym z najwyższą dokładnością w tej przestrzeni. Building a mobile scanning application? Użyj sterowania Syncfusion Barcode Generator. Jest już w twoim drzewie zależności i renderuje natively w ramce UI. Nie przyjmuj go wyłącznie dla potrzeb kodu kreskowego, jest to sterowanie UI, a nie biblioteka przetwarzania backend. Building a Syncfusion-powered UI that needs to display barcodes? QRCoder. 15 milionów pobrań. Zero uzależnień. Need only QR codes? Prawidłowa odpowiedź zależy od tego, czy potrzebujesz czytania, pisania lub obu; jakie formaty wymaga Twoja branża; gdzie wdrażasz; i co pozwala Twój budżet. Informacje o Future-Proofing Ekosystem .NET szybko się rozwija. , .NET 10 jest na horyzoncie, a System.Drawing.Common jest wyczerpany. Każdy wybór biblioteki, który wybierzesz dzisiaj, musi przetrwać co najmniej dwa lub trzy uaktualnienia wersji .NET. Priorytetowe biblioteki, które wykazują aktywny rozwój (księżycowe lub kwartalne wydania), wyraźne ukierunkowanie wersji .NET (nie tylko kompatybilność .NET Standard) i rekord szybkiego obsługi nowych funkcji platformy. IronBarcode, Aspose i Dynamsoft wszystkie publikują regularne aktualizacje. ZXing.Net i QRCoder są utrzymywane, ale w wolniejszym tempie. BarcodeLib i NetBarcode zależą od poszczególnych konserwatorów, co wprowadza ryzyko współczynnika dla długowiecznych projektów. .NET 8 to najnowsza wersja LTS Jeśli podejmujesz tę decyzję dla zespołu, udokumentuj swoje kryteria oceny i uzasadnienie swojego wyboru.Następny deweloper, który zapyta „dlaczego wybraliśmy tę bibliotekę?” podziękuje. Typ architektury integracji Niezależnie od tego, którą bibliotekę wybierzesz, wklej ją za interfejs. Prosta usługa IBarcodeService z metodami Generate() i Read() pozwala na wymianę wdrożeń bez dotykania kodu aplikacji. To nie jest nadmierna inżynieria, to ubezpieczenie. Rynek bibliotek kodów kreskowych jest konkurencyjny i ewolucyjny. Biblioteki są nabywane (LEADTOOLS → Apryse), konserwacja spowalnia (ZXing.Net), a modele cenowe zmieniają się. Warstwa abstrakcyjna oznacza, że Twoja logika aplikacji jest odłączona od API specyficznych dla dostawcy. Nawet jeśli nigdy nie przełączasz bibliotek, abstrakcja sprawia, że testowanie jednostek jest banalnie łatwe – żartuj z interfejsem zamiast walczyć z Aby uzyskać pełną dokumentację na , , oraz Odwiedź IronBarcode Documentation Hub. Generowanie kodów kreskowych w C# czytanie kodów kreskowych z obrazów i plików PDF Tworzenie stylowych kodów QR The Bottom Line: Experiment with Trials and Find Your Fit Ostatecznie najlepsza biblioteka kodów kreskowych dla Twojego projektu będzie zależeć od Twoich unikalnych potrzeb i ograniczeń. Niezależnie od tego, czy budujesz startup MVP z zerowym budżetem, aplikację produkcyjną z pełnym wsparciem dla rur czytania i pisania, czy mobilne narzędzie do skanowania zasilania kamer w czasie rzeczywistym, istnieje biblioteka, która pasuje do Twoich wymagań. Zachęcamy do skorzystania z bezpłatnych testów oferowanych przez i inne biblioteki, aby uzyskać praktyczne doświadczenie i zobaczyć, jak działają w swoich projektach.Nie wahaj się eksperymentować z różnymi opcjami, aby znaleźć ten, który najlepiej pasuje do przepływu pracy zespołu i potrzeb technicznych. IronBarcode Wypróbuj najlepszą bibliotekę kodów kreskowych dla C# – Pobierz IronBarcode Free Trial Przeglądając te biblioteki i rozumiejąc ich mocne strony, możesz podjąć świadomą decyzję, która nie tylko zaoszczędzi Ci czas, ale także zapewni, że używasz narzędzia, które wspiera Twoje długoterminowe cele – zarówno pod względem wydajności, jak i utrzymania.