IRONSOFTWAREHOME
PORÓWNAJ Z INNYMI KOMPONENTAMI

Neodynamic Barcode vs IronBarcode: Porównanie rozdzielonej architektury SDK oraz wsparcia formatu

Curtis Chau
Curtis Chau
Updated: 19 maja 2026

Pakiet SDK czytnika kodów kreskowych firmy Neodynamic nie obsługuje kodów QR. Możesz kupić oba zestawy SDK firmy Neodynamic i nadal nie być w stanie odczytać tych samych kodów QR, które generuje dołączony generator. Ta pojedyncza sprzeczność — generator obsługujący kody QR, DataMatrix, PDF417 i Aztec w połączeniu z czytnikiem, który nie obsługuje żadnego z tych formatów — definiuje praktyczne doświadczenia związane z pracą z narzędziami do obsługi kodów kreskowych firmy Neodynamic i stanowi punkt odniesienia dla poniższego porównania z IronBarcode.

Zrozumienie BarCoda Neodynamic

Neodynamic oferuje funkcje związane z kodami kreskowymi poprzez dwa całkowicie odrębne produkty komercyjne: Barcode Professional SDK do generowania kodów kreskowych oraz Barcode Reader SDK do odczytu kodów kreskowych. Każdy produkt jest dystrybuowany jako osobny pakiet NuGet, wymaga osobnego zakupu i posiada własny klucz licencyjny. Projekt wymagający zarówno generowania, jak i odczytu musi zintegrować oba pakiety niezależnie, utrzymywać je w oddzielnych cyklach aktualizacji oraz konfigurować je podczas uruchamiania aplikacji.

Barcode Professional SDK to komponent generujący. Obsługuje szeroki zakres symboli, w tym formaty liniowe (Code 128, Code 39, EAN-13, UPC-A, Codabar, ITF) oraz formaty 2D (QR Code, DataMatrix, PDF417, Aztec). SDK używa API opartego na instancjach: tworzony jest obiekt BarcodeProfessional, przypisywane są jego właściwości Code i Symbology, a funkcja GetBarcodeImage() jest wywoływana w celu wygenerowania System.Drawing.Image, który jest zapisywany za pomocą standardowej rury produkcyjnej System.Drawing.Imaging. Edycja .NET Framework ma zależność od System.Drawing; osobna edycja .NET Standard jest dystrybuowana przez ComponentSource.

BarCode Reader SDK to komponent służący do odczytu. Akceptuje System.Drawing.Bitmap i zwraca wyniki tylko dla symbologii 1D. QR, DataMatrix, PDF417, Aztec i wszystkie inne formaty 2D nie są obsługiwane przez czytnik. Po przesłaniu kodu kreskowego 2D SDK nie zwraca żadnych wyników — nie generuje wyjątku, a jedynie zwraca pusty zestaw wyników. SDK Barcode Reader oznaczono jako koniec okresu usługi 31 grudnia 2019 roku, a jego pakiet NuGet (Neodynamic.SDK.BarcodeReader 1.0.2000) nie był aktualizowany od lipca 2012 roku, przy wsparciu tylko dla .NET Framework 2.0/3.x/4.x. Odzyskanie zdolnosci odczytu 2D wymaga wiec dodania trzeciej biblioteki spoza ekosystemu Neodynamic.

Kluczowe cechy architektury Neodynamic BarCode:

  • Oddzielne produkty do generowania i odczytu: Projekt wykorzystujący obie funkcje wymaga dwóch pakietów NuGet, dwóch zakupów i dwóch kluczy licencyjnych.
  • Generowanie 2D bez odczytu 2D: BarCode Professional SDK generuje kody QR, DataMatrix, PDF417 i Aztec, ale towarzyszący mu BarCode Reader SDK nie potrafi odczytać żadnego z tych formatów.
  • API generowania oparte na instancjach: Generacja wymaga skonstruowania obiektu BarcodeProfessional i przypisania właściwości przed wywołaniem GetBarcodeImage().
  • Zależność System.Drawing w większości edycji: Edycja Barcode Professional .NET Windows i SDK Barcode Reader polegają na System.Drawing, co ogranicza wdrożenia dla Linux i kontenerów dla tych edycji. Wydanie Barcode Professional .NET Standard uzywa SkiaSharp i unika tej zaleznosci.
  • Obsługa wyłącznie kodów 1D: Pakiet SDK czytnika BARCODE obsługuje kody Code 128, EAN-13, UPC-A, Code 39, Codabar, Interleaved 2 of 5 oraz MSI/Plessey. Nie zawiera formatów 2D.
  • Brak natywnej obsługi plików PDF: Żadne z SDK nie odczytuje kodów kreskowych bezpośrednio z dokumentów PDF; wymagany jest oddzielny etap wyodrębniania obrazów.
  • Brak automatycznego wykrywania formatu: czytnik wnioskuje o formacie na podstawie tego, co obsługuje, a nie na podstawie treści obrazu.

Architektura Split SDK

Projekt, który zakupi oba SDK Neodynamic, musi skonfigurować dwa oddzielne bloki licencyjne podczas uruchamiania. Podwójne przypisania LicenseOwner i LicenseKey używają różnych przestrzeni nazw i różnych nazw klas, a żaden z bloków nie jest świadom istnienia drugiego:

// Neodynamic: two products, two license configurations
using Neodynamic.SDK.Barcode;
using Neodynamic.SDK.BarcodeReader;

// Generation license (Barcode Professional SDK)
BarcodeProfessional.LicenseOwner = "Company";
BarcodeProfessional.LicenseKey = "GEN-KEY";

// Reader license — separate purchase, separate key
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner = "Company";
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey = "READ-KEY";

Ten schemat powtarza się w każdym środowisku — programistycznym, testowym i produkcyjnym — i musi być zachowany przy każdej aktualizacji lub odnowieniu produktu.

Zrozumienie IronBarcode

IronBarcode to komercyjna biblioteka kodów kreskowych .NET opracowana przez Iron Software, która umożliwia generowanie i odczytywanie kodów kreskowych za pośrednictwem jednego pakietu NuGet na podstawie jednej licencji. Biblioteka używa modelu API statycznego: generacja odbywa się przez BarcodeWriter.CreateBarcode(), a odczyt przez BarcodeReader.Read(). Obie metody działają we wszystkich obsługiwanych systemach symbolicznych bez konieczności stosowania ścieżek kodu specyficznych dla danego formatu.

IronBarcode jest zbudowany bez zależności od System.Drawing, co umożliwia jego wdrożenie na Linuxie, macOS i w kontenerach Docker bez wymogu specyficznej konfiguracji platformowej. Biblioteka odczytuje BarCodes z plików graficznych, strumieni obrazów i dokumentów PDF w sposób natywny, bez konieczności wykonywania oddzielnego kroku wyodrębniania obrazu w przypadku źródeł PDF.

Kluczowe cechy IronBarcode:

  • Jeden pakiet do generowania i odczytu: jeden pakiet NuGet, jeden klucz licencyjny i jeden blok konfiguracyjny obejmują wszystkie operacje związane z kodami kreskowymi.
  • Ujednolicona obsluga 1D i 2D: To samo API odczytuje i generuje ponad 50 symbologii, w tym Code 128, EAN-13, kod QR, DataMatrix, PDF417 i Aztec.
  • Statyczne płynne API: BarcodeWriter.CreateBarcode() zwraca wynik, który można kontynuować w łańcuchu; BarcodeReader.Read() akceptuje ścieżki plików, strumienie i dokumenty PDF.
  • Automatyczne wykrywanie formatu: czytnik rozpoznaje symbolikę na podstawie zawartości obrazu bez konieczności określania oczekiwanego formatu przez użytkownika.
  • Brak zależności od System.Drawing: Wdrożenie wielopłatformowe w systemie Linux i w kontenerach działa bez dodatkowej konfiguracji bibliotek natywnych.
  • Natywny odczyt plików PDF: BarCodes osadzone w dokumentach PDF są odczytywane bezpośrednio, zwracając metadane dotyczące numeru strony wraz z wartościami BarCoda.
  • Przetwarzanie asynchroniczne i wsadowe: BarcodeReader.ReadAsync() i operacje wsadowe wielostronicowe wspierają serwerowe zadania o dużej przepustowości.

Porównanie funkcji

Poniższa tabela podsumowuje najważniejsze różnice między produktami Neodynamic a IronBarcode:

FunkcjaNeodynamic BarCode ProfessionalNeodynamic BarCode ReaderIronBarcode
Generowanie BarCodeTakNieTak
Odczytywanie kodów kreskowych 1DNieTakTak
Odczytywanie kodów kreskowych 2DNieNieTak
Wymagane produkty1 (tylko generacja)1 (tylko do odczytu)1 (oba)
Wymagane klucze licencyjne1 na każdy zakupiony produkt1 na każdy zakupiony produktŁącznie 1
Natywny odczyt BARCODE-ów z plików PDFNieNieTak
Zależność od System.DrawingEdycja-specyficznaTakNie

Szczegółowe porównanie funkcji

FunkcjaNeodynamic BarCode ProfessionalNeodynamic BarCode ReaderIronBarcode
Generacja
Generowanie kodu 128TakNie dotyczyTak
Generowanie kodów EAN-13 / UPC-ATakNie dotyczyTak
Generowanie kodu 39TakNie dotyczyTak
Generowanie kodów QRTakNie dotyczyTak
Generowanie kodów DataMatrixTakNie dotyczyTak
Generowanie kodów PDF417TakNie dotyczyTak
Generacja AztecTakNie dotyczyTak
Czytanie
Odczyt kodu 128Nie dotyczyTakTak
Odczyt EAN-13 / UPC-ANie dotyczyTakTak
Odczyt kodu 39Nie dotyczyTakTak
Odczyt kodów CodabarNie dotyczyTakTak
Odczytywanie kodów QRNie dotyczyNieTak
Odczyt DataMatrixNie dotyczyNieTak
Odczyt PDF417Nie dotyczyNieTak
Czytanie azteckieNie dotyczyNieTak
Automatyczne wykrywanie formatuNie dotyczyNieTak
Źródła danych wejściowych
Plik graficznyTakTakTak
Wprowadzanie dokumentów PDFNieNieTak
Dane wejściowe strumieniaTakTakTak
Platforma i licencjonowanie
Zależność od System.DrawingEdycja-specyficznaTakNie
Obsługa systemu Linux / DockerTak (edycja .NET Standard)NieTak
.NET Standard 2.0Tak (edycja .NET Standard)NieTak
.NET 8 / .NET 9Tak (edycja .NET Standard)NieTak
Wymagane pakiety NuGet1 na produkt1 na produktŁącznie 1
Wymagane klucze licencyjne1 na produkt1 na produktŁącznie 1

Obsługa formatów czytania

Najważniejszą różnicą techniczną w tym porównaniu jest różnica w formatach odczytu między dwoma zestawami SDK firmy Neodynamic a IronBarcode.

Podejście Neodynamic BarCode Reader

Neodynamic BarCode Reader obsługuje wyłącznie kody kreskowe liniowe. Gdy kod kreskowy 2D zostanie przesłany do czytnika, SDK zwraca pusty lub zerowy zestaw wyników. Nie jest zgłaszany żaden wyjątek, a żaden komunikat o błędzie nie wskazuje, co się stało. Zespoły pracujące z tym SDK zazwyczaj odkrywają to ograniczenie po wdrożeniu kodu wywołującego czytnik w odniesieniu do obrazów kodów QR i zauważeniu, że zbiór wyników jest zawsze pusty.

Typowym wzorcem defensywnym w kodach wykorzystujących Neodynamic Reader jest jawna kontrola, która zgłasza wyjątek, gdy oczekiwany jest format 2D:

using Neodynamic.SDK.BarcodeReader;
using System.Drawing;

public string ReadQrCode(string imagePath)
{
    using var bitmap = new Bitmap(imagePath);
    var reader = new BarcodeReader();
    var results = reader.Read(bitmap);

    // Results will be null or empty — QR codes are not recognised by this SDK
    if (results == null || !results.Any())
    {
        throw new NotSupportedException(
            "Neodynamic Barcode Reader does not support QR codes");
    }

    return results.First().Value;
}

Metody tej nie da się zrealizować wyłącznie przy użyciu zestawu SDK Neodynamic Reader. NotSupportedException nie jest obejściem — odzwierciedla rzeczywiste ograniczenie możliwości czytnika dla danych wejściowych 2D.

Podejście IronBarcode

IronBarcode odczytuje wszystkie obsługiwane symbologie przez jedno wywołanie BarcodeReader.Read(). Format jest wykrywany automatycznie na podstawie zawartości obrazu. QR, kod 128 i BarCode DataMatrix używają identycznego kodu wywołania:

using IronBarCode;

public string ReadQrCode(string imagePath)
{
    // QR codes, DataMatrix, PDF417 — all handled automatically
    var result = BarcodeReader.Read(imagePath).FirstOrDefault();
    return result?.Value;
}

Zleceniodawca nie określa oczekiwanego formatu.IronBarcode identyfikuje symbolikę i zwraca wartość. Pełne informacje na temat opcji odczytu obrazów, w tym wykrywania wielu BARCODE'ów i wstępnego przetwarzania obrazów, można znaleźć w przewodniku dotyczącym odczytu BARCODE'ów z obrazów.

Generowanie kodów kreskowych

Zarówno Neodynamic BarCode Professional, jak i IronBarcode umożliwiają generowanie kodów kreskowych 1D i 2D. Różnica polega raczej na stylu API i śladzie zależności niż na możliwościach wyjściowych.

Professional approach to Neodynamic BarCode

API generowania firmy Neodynamic opiera się na instancjach. Tworzony jest obiekt BarcodeProfessional, jego właściwości są przypisywane indywidualnie, a następnie wywoływana jest funkcja GetBarcodeImage() w celu zwrócenia System.Drawing.Image. Obraz jest następnie zapisywany za pomocą wyliczenia System.Drawing.Imaging.ImageFormat:

using Neodynamic.SDK.Barcode;

// Configure license first
BarcodeProfessional.LicenseOwner = "Your Company";
BarcodeProfessional.LicenseKey = "YOUR-KEY";

// Build the barcode through property assignment
var barcode = new BarcodeProfessional();
barcode.Code = "12345678";
barcode.Symbology = Symbology.Code128;
barcode.BarcodeUnit = BarcodeUnit.Pixel;

// Get image and save via System.Drawing
System.Drawing.Image image = barcode.GetBarcodeImage();
image.Save("output.png", System.Drawing.Imaging.ImageFormat.Png);

Zestaw SDK oferuje legalne opcje dostosowywania, w tym kontrolę DPI, wyrównanie tekstu, ustawienia kolorów oraz rozmiar strefy cichej. Są one przydatne w procesach PRINT, gdzie liczą się precyzyjne wymiary fizyczne. Sama funkcja generowania jest kompletna; Ograniczenia, które skłaniają do migracji, dotyczą strony odczytu, a nie generowania.

Podejście IronBarcode

IronBarcode wykorzystuje płynne podejście statyczne. Kodowanie i dane są przekazywane jako parametry do BarcodeWriter.CreateBarcode(), a format wyjściowy jest wyrażany jako nazwa metody na zwróconym obiekcie. Nie jest wymagany import System.Drawing:

using IronBarCode;

BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
    .SaveAsPng("output.png");

Do generowania kodów kreskowych 2D dedykowana klasa QRCodeWriter oferuje dodatkowe opcje specyficzne dla kodów QR:

using IronBarCode;

QRCodeWriter.CreateQrCode("https://example.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .SaveAsPng("qrcode.png");

Wskazówki dotyczące generowania symboli 1D z opcjami rozmiaru i adnotacji można znaleźć w przewodniku tworzenia BARCODE'ów 1D. Aby dowiedzieć się więcej o tworzeniu kodów kreskowych 2D, w tym DataMatrix i PDF417, zapoznaj się z przewodnikiem dotyczącym tworzenia kodów kreskowych 2D.

Licencjonowanie i struktura produktu

Model licencjonowania stanowi jedną z najbardziej praktycznych różnic między tymi dwiema opcjami dla zespołów tworzących systemy, które wymagają zarówno generowania, jak i odczytu.

Podejście Neodynamic

Funkcjonalność Neodynamic w zakresie kodów barcode jest podzielona na dwa oddzielnie licencjonowane produkty. Professional BarCode SDK obejmuje generowanie, a Barcode Reader SDK – odczyt. Każdy produkt wymaga osobnego zakupu i posiada oddzielny klucz licencyjny. Zespół, który zakupi oba produkty, musi utrzymywać dwa bloki konfiguracji LicenseOwner / LicenseKey, śledzić dwie oddzielne daty odnowienia i obsługiwać dwa oddzielne kanały wsparcia, gdy pojawią się problemy.

SDK Barcode Professional jest wyceniony na około $352 za jedną licencję dewelopera w edycji podstawowej oraz od około $705 w edycji Ultimate (licencje deweloperskie poprzez ComponentSource). SDK Barcode Reader ma osobny koszt i jest dostarczany według starego cennika — produkt został oznaczony jako koniec cyklu serwisowego dnia 31 grudnia 2019. Projekt, który wymaga odczytu 2D, nie może spełnić tego wymogu z produktami Neodynamic za jakąkolwiek cenę; należy dodać trzecią bibliotekę. Pełną listę elementów objętych jedną, ujednoliconą licencją można znaleźć na stronie poświęconej formatom BARCODE-ów obsługiwanych przez IronBarcode.

Podejście IronBarcode

IronBarcode jest sprzedawany jako pojedynczy produkt, który obejmuje wszystkie operacje związane z kodami kreskowymi — generowanie i odczyt we wszystkich obsługiwanych symbolikach — w ramach jednego klucza licencyjnego. Nie ma oddzielnej licencji dla czytnika, oddzielnej licencji dla generatora ani dodatkowych kosztów za obsługę formatu 2D. Klucz licencyjny jest ustawiany jednorazowo podczas uruchamiania aplikacji i nie wymaga dalszej konfiguracji:

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Cena IronBarcode Lite wynosi 749 USD dla pojedynczego programisty i obejmuje pełen zestaw funkcji. Aby zapoznać się z aktualnymi poziomami cenowymi i opcjami ilościowymi, odwiedź stronę licencyjną IronBarcode.

Przewodnik po mapowaniu API

API NeodynamicOdpowiednik IronBarcodeUwagi
BarcodeProfessional.LicenseOwner = "..."IronBarCode.License.LicenseKey = "key"Pojedynczy klucz zastępuje właściciela + parę kluczy
BarcodeProfessional.LicenseKey = "..."(part of single key above)Brak oddzielnego pola właściciela
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseOwner(removed)Nie jest wymagane
Neodynamic.SDK.BarcodeReader.BarcodeReader.LicenseKey(removed)Nie jest wymagane
new BarcodeProfessional()BarcodeWriter.CreateBarcode(data, encoding)Metoda statyczna, bez instancji
barcode.Code = dataPierwszy parametr CreateBarcodeZaliczone na etapie tworzenia
barcode.Symbology = Symbology.Code128BarcodeEncoding.Code128Drugi parametr
barcode.Symbology = Symbology.QRCodeBarcodeEncoding.QRCodePełna obsługa w obie strony
barcode.GetBarcodeImage().Save(path, ImageFormat.Png).SaveAsPng(path)Płynny, bez wyliczenia ImageFormat
new BarcodeReader().Read(bitmap)BarcodeReader.Read(imagePath)Metoda statyczna, akceptuje ścieżkę pliku
result.Valueresult.ValueTa sama nazwa właściwości
throw new NotSupportedException(...) dla QRBarcodeReader.Read(imagePath)Zastąp standardowym wywołaniem read

Kiedy zespoły rozważają przejście z Neodynamic BarCode na IronBarcode

Wymagania dotyczące odczytu kodów QR

Najczęstszym scenariuszem, który prowadzi zespoły z Neodynamic do IronBarcode, jest odkrycie, że kody QR wygenerowane przez Barcode Professional SDK nie mogą być odczytane przez Barcode Reader SDK. Zespoły tworzące systemy etykietowania produktów, narzędzia do zarządzania zapasami lub procesy śledzenia dokumentów często wdrażają generowanie i odczyt jako oddzielne fazy większego systemu. Gdy generowanie jest tworzone najpierw przy użyciu programu BarCode Professional, ograniczenie czytnika staje się widoczne dopiero w momencie próby uruchomienia komponentu odczytu. W tym momencie projekt został już przekazany firmie Neodynamic do realizacji, a dodanie trzeciej biblioteki do obsługi odczytu 2D wprowadza złożoność w zarządzaniu wersjami, która nie istniałaby w przypadku ujednoliconego zestawu SDK.

Zmniejszenie złożoności produktu

Niektóre zespoły decydują się na migrację nie z powodu konkretnej rozbieżności formatów, ale dlatego, że nakład pracy związany z utrzymywaniem dwóch oddzielnych produktów dla funkcji, która koncepcyjnie jest pojedynczą funkcją, staje się powracającym punktem tarcia. Dwa pakiety w pliku .csproj, dwa cykle odnowienia licencji, dwa zestawy notatek o wydaniu do przeglądu i dwa potencjalne źródła niekompatybilności w przypadku zastosowania aktualizacji .NET lub Windows — żaden z tych narzutów nie dostarcza funkcjonalności poza tym, co zapewniłby jeden zintegrowany pakiet. Zespoły przeprowadzające audyt zależności jako część aktualizacji .NET często identyfikują układ z dwoma pakietami Neodynamic jako okazję do uproszczenia.

Przetwarzanie BarCodes w plikach PDF

Aplikacje przetwarzające dokumenty PDF zawierające kody kreskowe stanowią scenariusz, w którym oba zestawy SDK firmy Neodynamic nie spełniają wymagań jednocześnie. Ani SDK do generowania, ani SDK do odczytu nie mogą otworzyć pliku PDF i wyodrębnić wartości BARCODE z jego stron. Zespoły pracujące z listami przewozowymi, fakturami, dokumentacją medyczną lub dowolnym przepływem dokumentów, w którym BarCodes są osadzone w plikach PDF, muszą wdrożyć pośredni etap wyodrębniania obrazów, zanim będzie można przystąpić do odczytu. Ten etap ekstrakcji wymaga dodatkowej biblioteki IronBarcode, co oznacza, że projekt ma już trzecie zależności, aby obejść ograniczenie, które wyeliminowałaby pojedyncza instalacja IronBarcode.

Spójność formatowania w trybie odczytu i zapisu

Zespoły obsługujące procesy związane z BarCode na dużą skalę czasami zauważają, że niespójności w obsłudze formatów między generowaniem a odczytem powodują problemy z testowaniem i walidacją. Gdy system generuje kody QR w jednym celu, a odczytuje różne typy formatów w innym, rozbieżność między tym, co obsługuje generator, a tym, co obsługuje czytnik, powoduje luki w testach round-trip. System, w którym generowanie i odczyt korzystają z tej samej biblioteki i tej samej listy obsługiwanych formatów, jest łatwiejszy do zweryfikowania. Weryfikacja, czy wygenerowany BARCODE może zostać pomyślnie odczytany, staje się operacją wykonywaną w ramach jednej biblioteki, a nie testem integracyjnym obejmującym wiele bibliotek.

Typowe kwestie związane z migracją

Usuwanie podwójnych pakietów

Migracja z Neodynamic wymaga usunięcia obu pakietów NuGet: Neodynamic.SDK.Barcode i Neodynamic.SDK.BarcodeReader. Oba muszą zostać usunięte z pliku .csproj, a oba odpowiadające dyrektywy using muszą zostać usunięte z plików źródłowych. Uruchomienie dotnet remove package dla każdego z nich jest wystarczające; nie ma między nimi żadnych wspólnych zależności, które wymagałyby dodatkowego porządkowania.

Porządkowanie konfiguracji podwójnej licencji

Dwa bloki konfiguracji licencji — jeden dla BarcodeProfessional i jeden dla Neodynamic.SDK.BarcodeReader.BarcodeReader — są oba zastąpione pojedynczym przypisaniem IronBarCode.License.LicenseKey. To przypisanie jest wykonywane raz podczas uruchamiania aplikacji, zazwyczaj w Program.cs lub w bootstrap aplikacji do wstrzykiwania zależności. Wszelkie pliki konfiguracyjne lub zmienne środowiskowe, które przechowują klucze licencyjne Neodynamic, mogą zostać wycofane po zweryfikowaniu migracji.

Usunięcie wyjątku NotSupportedException

Bazy kodów, które napotkały ograniczenie odczytu 2D podczas rozwoju, często zawierają metody zastępcze, które rzucają NotSupportedException dla odczytu kodów QR lub DataMatrix. Te metody nie są obejściami — to szczere uznanie, że możliwość nie istniała. Po migracji do IronBarcode, każda taka metoda zostaje zastąpiona standardowym wywołaniem BarcodeReader.Read(imagePath). Nie jest wymagane żadne specjalne traktowanie; format jest wykrywany automatycznie.

Dodatkowe możliwości IronBarcode

Oprócz podstawowych punktów porównawczych,IronBarcode oferuje funkcje, które nie są dostępne w żadnym z produktów Neodynamic:

  • Rodzimy odczyt kodów kreskowych z PDF: BarcodeReader.Read("document.pdf") odczytuje kody kreskowe bezpośrednio z dokumentów PDF, zwracając informacje o numerze strony obok wartości kodów kreskowych, bez potrzeby pośredniego wyodrębniania obrazów.
  • Asynchroniczne przetwarzanie wsadowe: BarcodeReader.ReadAsync() wspiera nieblokujące odczyty odpowiednie dla zadań po stronie serwera przetwarzających równocześnie duże ilości obrazów lub dokumentów.
  • **Korekcja błędów oparta na uczeniu maszynowym:**IronBarcode stosuje korekcję błędów opartą na uczeniu maszynowym w celu odzyskania wartości z uszkodzonych, częściowo zasłoniętych lub niskiej rozdzielczości obrazów kodów kreskowych, które w przypadku standardowych dekoderów dałyby puste wyniki.
  • Wykrywanie wielu kodów kreskowych: Jedno wywołanie BarcodeReader.Read() zwraca wszystkie kody kreskowe obecne na obrazie, w tym obrazy mieszane zawierające jednocześnie symbologie 1D i 2D.
  • **Umieszczanie kodów kreskowych w plikach PDF:**IronBarcode może zapisywać obrazy kodów kreskowych bezpośrednio w istniejących dokumentach PDF bez konieczności korzystania z oddzielnej biblioteki PDF.
  • Opcje przetwarzania wstępnego obrazów: W czytniku można skonfigurować korekcję jasności, obrót oraz redukcję szumów, aby poprawić wskaźniki rozpoznawania na obrazach zarejestrowanych w trudnych warunkach.

Zgodność z platformą .NET i gotowość na przyszłość

IronBarcode wspiera .NET Standard 2.0, .NET Framework 4.6.2 i nowsze, .NET Core 3.1 oraz wszystkie aktualne wydania .NET, w tym .NET 8 i .NET 9. Biblioteka nie ma zależności od System.Drawing, co oznacza, że działa bez modyfikacji na Linuxie i w kontenerach Docker. Neodynamic BarCode Reader SDK celuje tylko w .NET Framework 2.0/3.x/4.x — jego pakiet NuGet nie został zaktualizowany od lipca 2012, a produkt został oznaczony jako koniec cyklu serwisowego na dzień 31 grudnia 2019, więc nie obsługuje .NET Core, .NET 5+, Linux ani Docker. SDK Barcode Professional jest dostarczany w wielu edycjach; Edycja .NET Standard używa SkiaSharp i działa na .NET Core / .NET 5+, podczas gdy edycja .NET Windows zachowuje zależność System.Drawing.IronBarcode otrzymuje aktualizacje zgodnie z kadencją wydania .NET.

Wnioski

Neodynamic BarCode Professional SDK i Neodynamic BarCode Reader SDK stanowią razem model podzielonego produktu, w którym generowanie i odczyt są oddzielnymi ofertami komercyjnymi o odrębnych granicach możliwości. Generator obsługuje kody QR, DataMatrix, PDF417 i Aztec. Czytelnik nie. Ta asymetria nie jest drobnym zaniedbaniem — oznacza to, że te dwa produkty nie mogą stworzyć kompletnego przepływu pracy z BARCODE dla żadnej aplikacji wymagającej odczytu BARCODE 2D, a także oznacza, że formaty najczęściej używane w płatnościach mobilnych, śledzeniu produktów farmaceutycznych, logistyce wysyłkowej i przetwarzaniu dokumentów nie są obsługiwane przez ten czytnik.

Neodynamic BarCode Professional to dobry wybór, gdy wymagane jest wyłącznie generowanie kodów. SDK zapewnia wysoką jakość wydruków w szerokiej gamie symboli, obsługuje kontrolę DPI i dostosowanie do konkretnych potrzeb drukowania oraz integruje się z szerszym ekosystemem Neodynamic ThermalLabel. Zespoły korzystające wyłącznie z systemów Windows, które potrzebują jedynie odczytu kodów 1D, mogą również korzystać z zestawu SDK BarCode Reader bez napotykania ograniczeń formatowych. W tym wąskim zakresie działania — wyłącznie generowanie lub odczyt 1D w systemie Windows — produkty Neodynamic spełniają swoje zadanie.

IronBarcode jest właściwym wyborem, gdy projekt wymaga zarówno generowania, jak i odczytu, gdy jakakolwiek część przepływu pracy obejmuje formaty 2D, gdy dokumenty PDF są źródłem danych kodów kreskowych lub gdy preferowana jest architektura jednopakietowa do zarządzania zależnościami. Ujednolicony model licencyjny, brak zależności od System.Drawing oraz automatyczne wykrywanie formatu we wszystkich obsługiwanych symbologiach czynią go odpowiednim dla aplikacji międzyplatformowych, wdrożeń w chmurze oraz systemów przetwarzających miks formatów kodów kreskowych z różnych źródeł.

Wybór między tymi dwoma opcjami sprowadza się ostatecznie do pytania, czy ograniczenia formatowe w czytniku Neodynamic mają wpływ na dany projekt. W przypadku zespołów, których procesy pracy ograniczają się do generowania i odczytu BARCODE-ów 1D w systemie Windows, granica ta może nigdy nie zostać przekroczona. Dla zespołów, które potrzebują kodów QR zarówno po stronie generującej, jak i odczytującej w tym samym systemie, bariera ta jest nie do pokonania w ramach rodziny produktów Neodynamic i wymagana jest inna biblioteka, niezależnie od tego, która zostanie wybrana.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta