Zbuduj SDK do kodów kreskowych C#: Generuj, odczytuj i skanuj kody kreskowe za pomocą jednej biblioteki
Większość projektów SDK kodów kreskowych w C# zaczyna się od tego samego problemu: połączenie odrębnych bibliotek do generacji, odczytu i eksportu, potem zmaga z kompatybilnością między typami kodów kreskowych i platformami. IronBarcode całkowicie eliminuje to tarcie. To pojedyncza biblioteka .NET, która obsługuje wszystkie operacje związane z kodami kreskowymi, które zazwyczaj potrzebują programiści z dedykowanego SDK do skanerów kodów kreskowych, od tworzenia liniowych kodów kreskowych i kodów QR po skanowanie wielu kodów kreskowych z niedoskonałych obrazów i plików PDF.
W tym artykule przeprowadzimy Cię przez podstawowe funkcje, które sprawiają, że IronBarcode jest kompleksowym rozwiązaniem dla projektów SDK kodów kreskowych: generowanie obrazów kodów kreskowych, odczytywanie danych kodów kreskowych z plików i konfigurowanie zaawansowanych ustawień skanowania dla produkcyjnej dokładności. Każdy kolejny przykład kodu działa w niezmienionej formie w aplikacji konsolowej .NET.
Co powinno obsługiwać SDK kodów kreskowych w projektach .NET?
Zdolne SDK do skanowania kodów kreskowych musi obejmować trzy podstawowe operacje: generowanie kodów kreskowych, odczytywanie danych z kodów kreskowych z obrazów i dokumentów oraz obsługę kwestii jakości skanowania w rzeczywistym świecie. Najlepsze opcje SDK do czytania kodów kreskowych wspierają także wiele różnych symbologii, bez potrzeby używania różnych bibliotek dla każdej z nich.
IronBarcode supports both linear barcodes (Code 128, Code 39, UPC-A, UPC-E, EAN-8, EAN-13, GS1 DataBar) and 2D barcodes (QR Code, Data Matrix, PDF417, Aztec, MaxiCode). To pokrycie oznacza, że deweloperzy .NET mogą przetwarzać wszystko od kodów UPC-A w handlu detalicznym po kody QR w magazynach, używając jednego pliku DLL do kodów kreskowych, bez dodatkowych zależności, bez platformowych natywnych bibliotek binarnych. Darmowa licencja próbna daje pełny dostęp do wszystkich funkcji przez 30 dni.
Biblioteka działa na systemach operacyjnych Windows, macOS i Linux, z wsparciem dla wdrażania aplikacji .NET MAUI i Android. Również integruje się z narzędziami do raportowania, takimi jak Crystal Reports w scenariuszach, które wymagają osadzonego generowania kodów kreskowych wewnątrz dokumentów biznesowych. Niezależnie od tego, czy projekt jest aplikacją konsolową, mobilnym skanerem .NET MAUI, czy serwerowym czytnikiem kodów kreskowych przetwarzającym tysiące obrazów, to samo API SDK do skanowania kodów kreskowych obsługuje wszystko.
How Can Developers Generate Barcode Images in C#?
Metoda BarcodeWriter.CreateBarcode generuje obraz kodu kreskowego z wartości ciągu i określonej symbologii w jednym wywołaniu. Zwrócony obiekt GeneratedBarcode może być zapisany jako plik PNG, BMP, JPEG, PDF, HTML lub wyeksportowany w formatach wektorowych, takich jak SVG.
using IronBarCode;
// Generate a Code 128 barcode image from string data
var barcode = BarcodeWriter.CreateBarcode("PKG-2025-88421", BarcodeEncoding.Code128);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ResizeTo(500, 150);
barcode.SaveAsPng("shipping-label.png");
// Create a styled QR code with a logo
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/track/88421", 300);
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkSlateGray);
qrCode.SaveAsPng("tracking-qr.png");
using IronBarCode;
// Generate a Code 128 barcode image from string data
var barcode = BarcodeWriter.CreateBarcode("PKG-2025-88421", BarcodeEncoding.Code128);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ResizeTo(500, 150);
barcode.SaveAsPng("shipping-label.png");
// Create a styled QR code with a logo
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/track/88421", 300);
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkSlateGray);
qrCode.SaveAsPng("tracking-qr.png");
Imports IronBarCode
' Generate a Code 128 barcode image from string data
Dim barcode = BarcodeWriter.CreateBarcode("PKG-2025-88421", BarcodeEncoding.Code128)
barcode.AddAnnotationTextAboveBarcode("Shipping Label")
barcode.AddBarcodeValueTextBelowBarcode()
barcode.ResizeTo(500, 150)
barcode.SaveAsPng("shipping-label.png")
' Create a styled QR code with a logo
Dim qrCode = QRCodeWriter.CreateQrCode("https://example.com/track/88421", 300)
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkSlateGray)
qrCode.SaveAsPng("tracking-qr.png")
Wygenerowane obrazy kodów kreskowych

Klasa BarcodeWriter przyjmuje dane jako ciąg, tablicę bajtów lub strumień, oferując elastyczność przy różnych źródłach danych. Enum BarcodeEncoding kontroluje symbologię, przekazując BarcodeEncoding.QRCode dla kodu QR, BarcodeEncoding.UPCA dla etykiet detalicznych UPC-A lub dowolny z obsługiwanych formatów kodów kreskowych. Dla stylizowanych kodów QR, dedykowana klasa QRCodeWriter obsługuje poziomy korekcji błędów oraz umieszczanie logotypów, ułatwiając tworzenie kodów brandowych.
Obiekt GeneratedBarcode także oferuje metody do dostosowywania właściwości kodów kreskowych, takich jak marginesy, kolory oraz teksty adnotacji. Obrazy kodów kreskowych mogą być eksportowane w formatach rastrowych (PNG, BMP, JPEG) i wektorowych, lub renderowane bezpośrednio do HTML w scenariuszach aplikacji internetowych. Zobacz przykłady tworzenia kodów kreskowych dla dodatkowych opcji wyjściowych.
Jak działa czytnik kodów kreskowych dla plików graficznych i PDF?
Metoda BarcodeReader.Read akceptuje ścieżkę do pliku graficznego, tablicę bajtów, bitmapę lub strumień, a następnie zwraca kolekcję BarcodeResults zawierającą wszystkie kody kreskowe znalezione w danych wejściowych. Każdy BarcodeResult ujawnia wartość kodu kreskowego, typ kodowania, numer strony, dane binarne oraz region obrazu kodu kreskowego.
using IronBarCode;
// Use the barcode reader to decode all barcodes from an image file
var results = BarcodeReader.Read("multiple-barcodes.png");
foreach (var result in results)
{
Console.WriteLine($"Type: {result.BarcodeType} | Value: {result.Value}");
}
// The barcode reader also scans multi-page PDF documents
var pdfResults = BarcodeReader.ReadPdf("invoice-batch.pdf");
foreach (var item in pdfResults)
{
Console.WriteLine($"Page {item.PageNumber}: {item.Value}");
}
using IronBarCode;
// Use the barcode reader to decode all barcodes from an image file
var results = BarcodeReader.Read("multiple-barcodes.png");
foreach (var result in results)
{
Console.WriteLine($"Type: {result.BarcodeType} | Value: {result.Value}");
}
// The barcode reader also scans multi-page PDF documents
var pdfResults = BarcodeReader.ReadPdf("invoice-batch.pdf");
foreach (var item in pdfResults)
{
Console.WriteLine($"Page {item.PageNumber}: {item.Value}");
}
Imports IronBarCode
' Use the barcode reader to decode all barcodes from an image file
Dim results = BarcodeReader.Read("multiple-barcodes.png")
For Each result In results
Console.WriteLine($"Type: {result.BarcodeType} | Value: {result.Value}")
Next
' The barcode reader also scans multi-page PDF documents
Dim pdfResults = BarcodeReader.ReadPdf("invoice-batch.pdf")
For Each item In pdfResults
Console.WriteLine($"Page {item.PageNumber}: {item.Value}")
Next
Odczyt danych dla kodów kreskowych

Czytnik kodów kreskowych wykonuje rozpoznawanie kodów dla wszystkich głównych symbologii domyślnie, automatycznie wykrywając liniowe kody kreskowe, 2D kody kreskowe oraz kody QR bez konieczności określania przez programistę, jakiego typu kod ma skanować. Podczas skanowania pliku PDF, ReadPdf przetwarza każdą stronę i zwraca wyniki z przyczepionymi numerami stron, co jest idealne do indeksowania dokumentów oraz przepływów pracy archiwalnej.
Każdy BarcodeResult w kolekcji zapewnia dostęp do zdekodowanych danych kodu kreskowego zarówno jako ciąg, jak i jako tablica bajtów. To jest szczególnie przydatne podczas przetwarzania kodów Data Matrix lub innych symbologii, które kodują dane binarne. Wynik odczytu kodu kreskowego zawiera również współrzędne pozycji kodu, umożliwiając aplikacjom mapowanie, gdzie każdy kod pojawił się w źródłowym pliku obrazu. Do przetwarzania wsadowego w całym folderze obrazów, przekaż IEnumerable<string> ścieżek plików do czytnika kodów kreskowych z włączonym przetwarzaniem wielowątkowym dla równoległego wykonania.
Jak SDK do skanowania kodów kreskowych może radzić sobie z jakością obrazu w rzeczywistych scenariuszach?
Rzeczywiste obrazy z kodami kreskowymi, z kamer magazynowych, mobilnych przechwyceń czy zeskanowanych dokumentów, rzadko są doskonałe pod względem pikselowym. Klasa BarcodeReaderOptions zapewnia szczegółową kontrolę nad szybkością skanowania, oczekiwanymi symbologiami, filtrami korekcji obrazów i przetwarzaniem wsadowym w trybie wielowątkowym, aby osiągnąć bardzo dokładne rozpoznawanie kodów kreskowych nawet przy uszkodzonych lub przekrzywionych danych wejściowych.
using IronBarCode;
// Configure the barcode reader for challenging, real-world image quality
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Detailed,
ExpectMultipleBarcodes = true,
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode,
Multithreaded = true,
MaxParallelThreads = 4,
ImageFilters = new ImageFilterCollection
{
new SharpenFilter(),
new ContrastFilter()
}
};
// Scan multiple barcodes from a noisy image with high accuracy
var results = BarcodeReader.Read("camera-capture.jpg", options);
foreach (var barcode in results)
{
Console.WriteLine($"Detected: {barcode.BarcodeType} — {barcode.Value}");
}
using IronBarCode;
// Configure the barcode reader for challenging, real-world image quality
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Detailed,
ExpectMultipleBarcodes = true,
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode,
Multithreaded = true,
MaxParallelThreads = 4,
ImageFilters = new ImageFilterCollection
{
new SharpenFilter(),
new ContrastFilter()
}
};
// Scan multiple barcodes from a noisy image with high accuracy
var results = BarcodeReader.Read("camera-capture.jpg", options);
foreach (var barcode in results)
{
Console.WriteLine($"Detected: {barcode.BarcodeType} — {barcode.Value}");
}
Imports IronBarCode
' Configure the barcode reader for challenging, real-world image quality
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Detailed,
.ExpectMultipleBarcodes = True,
.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional Or BarcodeEncoding.QRCode,
.Multithreaded = True,
.MaxParallelThreads = 4,
.ImageFilters = New ImageFilterCollection From {
New SharpenFilter(),
New ContrastFilter()
}
}
' Scan multiple barcodes from a noisy image with high accuracy
Dim results = BarcodeReader.Read("camera-capture.jpg", options)
For Each barcode In results
Console.WriteLine($"Detected: {barcode.BarcodeType} — {barcode.Value}")
Next
Wynik dla skanowania obrazu kodu kreskowego z szumem

Ustawienie ExpectBarcodeTypes na określony podzbiór symbologii (zamiast skanowania dla wszystkich typów) dramatycznie poprawia zarówno prędkość, jak i dokładność. Enum ReadingSpeed oferuje cztery poziomy — Faster, Balanced, Detailed i ExtremeDetail, umożliwiając programistom dostosowanie kompromisu między czasem przetwarzania a dokładnością rozpoznawania kodów kreskowych. Kolekcja ImageFilterCollection stosuje filtry przetwarzania wstępnego, takie jak wyostrzanie, regulacja kontrastu i progowanie adaptacyjne, zanim silnik skanowania przetworzy obraz kodu kreskowego.
Flaga ExpectMultipleBarcodes informuje silnik o kontynuowaniu skanowania po znalezieniu pierwszego dopasowania, co jest niezbędne, gdy trzeba zeskanować wiele kodów kreskowych na jednej etykiecie lub stronie dokumentu. Połączone z Multithreaded = true, biblioteka rozdziela przetwarzanie wsadowe na rdzenie CPU dla scenariuszy skanowania o wysokiej przepustowości. Aby zagłębić się w te ustawienia, samouczek odczytu kodów kreskowych obejmuje każdą opcję konfiguracji z przykładem kodu.
Jakie typy kodów kreskowych i platformy są obsługiwane?
IronBarcode obejmuje najczęściej używane symbologie kodów kreskowych w różnych branżach, w tym w handlu detalicznym, logistyce, opiece zdrowotnej oraz aplikacjach korporacyjnych. Poniższa tabela podsumowuje obsługiwane typy kodów kreskowych i docelowe platformy.
| Kategoria | Obsługiwane formaty |
|---|---|
| Liniowe kody kreskowe | Code 128, Code 39, Code 93, UPC-A, UPC-E, EAN-8, EAN-13, GS1 DataBar, ITF, MSI, Codabar |
| 2D kody kreskowe | QR Code, Data Matrix, PDF417, Aztec, MaxiCode |
| Formaty obrazów | PNG, JPEG, BMP, GIF, TIFF, SVG |
| Format dokumentów | PDF (wielostronicowy), HTML |
| Platformy .NET | .NET 8/7/6, .NET Core, .NET Framework 4.6.2+, .NET Standard 2.0+ |
| Typy aplikacji | Console, Windows Forms, WPF, ASP.NET, .NET MAUI, Blazor |
| Systemy operacyjne | Windows, macOS, Linux, Android (za pośrednictwem .NET MAUI) |
Biblioteka instaluje się jako pojedynczy pakiet NuGet (BarCode) lub jako samodzielny plik DLL kodu kreskowego przez bezpośrednie pobranie. Nie są wymagane żadne natywne zależności SDK, cały SDK skanera kodów kreskowych jest dostarczany jako zarządzany kod .NET. Zainstaluj go w Visual Studio przez Menedżera Pakietów NuGet lub uruchom .NET add package BarCode z CLI. Dla scenariuszy wdrażania, które wymagają kontroli na poziomie plików DLL, pobierz IronBarcode DLL oferuje paczkę ZIP gotową do ręcznej integracji.
IronBarcode również wspiera integrację z Crystal Reports i innymi narzędziami raportującymi, gdzie potrzeba osadzonego generowania kodów kreskowych. Dla rozwoju aplikacji .NET MAUI i Android, SDK skanera kodów kreskowych oferuje wieloplatformowe czytanie kodów kreskowych bez potrzeby platformowych SDK do obsługi kamer — po prostu przekaż plik obrazu uchwycony przez kamerę urządzenia do czytnika kodów kreskowych. Wieloplatformowy samouczek czytnika kodów kreskowych .NET MAUI obejmuje ten przepływ pracy .NET MAUI w sposób szczegółowy, w tym uprawnienia Android i przykłady kodu dla mobilnego skanowania.
Co dalej?
IronBarcode dostarcza programistom .NET kompletną bibliotekę kodów kreskowych dla projektów na poziomie SDK z tworzeniem, odczytem, skanowaniem wsadowym i eksportem wszystkiego zawartym — bez złożoności zarządzania wieloma pakietami. Najnowsza wersja dodaje wstępne przetwarzanie obrazu oparte na ML oraz metodę ReadPdfs dla przetwarzania wsadowego PDF, nieustannie przesuwając granice tego, co potrafi jedna biblioteka.
Rozpocznij bezpłatną wersję próbną, aby przetestować każdą funkcję w swoim własnym projekcie bez znaków wodnych i ograniczeń. Kiedy będziesz gotowy do wdrożenia, zapoznaj się z opcje licencjonowania IronBarcode, zaczynając od $999 dla indywidualnych deweloperów — z bezpłatnym wsparciem od zespołu inżynierów Iron Software w zestawie.
Często Zadawane Pytania
Do czego służy IronBarcode w projektach C#?
IronBarcode to biblioteka .NET, która upraszcza operacje związane z kodami kreskowymi, umożliwiając programistom generowanie, odczytywanie i skanowanie różnych typów kodów kreskowych w projektach C#, eliminując potrzebę używania wielu bibliotek.
Czy IronBarcode obsługuje różne typy kodów kreskowych?
Tak, IronBarcode obsługuje szeroką gamę typów kodów kreskowych, w tym liniowe kody kreskowe i kody QR, zapewniając kompatybilność z różnymi aplikacjami.
Jak IronBarcode poprawia skanowanie kodów kreskowych w C#?
IronBarcode ulepsza skanowanie kodów kreskowych, oferując solidną funkcjonalność do skanowania wielu kodów kreskowych z niedoskonałych obrazów i plików PDF, zwiększając dokładność i wydajność.
Czy dostępny jest przykładowy kod do użycia z IronBarcode?
Tak, dołączony jest przykładowy kod, aby pomóc programistom szybko zintegrować funkcjonalności generowania i skanowania kodów kreskowych w swoich projektach C# z wykorzystaniem IronBarcode.
Dlaczego wybrać IronBarcode zamiast oddzielnych bibliotek do operacji na kodach kreskowych?
IronBarcode łączy operacje generowania, odczytywania i skanowania kodów kreskowych w jedną bibliotekę, zmniejszając złożoność i problemy z kompatybilnością związane z używaniem wielu bibliotek.




