Przejdź do treści stopki
KORZYSTANIE Z IRONBARCODE

Samouczek komponentu .NET Barcode z użyciem IronBarcode

Komponent .NET do obsługi kodów kreskowych to biblioteka kodu zarządzanego, która pozwala generować i odczytywać kody kreskowe w aplikacjach C# za pomocą zaledwie kilku wierszy kodu. IronBarcode obsługuje wszystkie główne symbole — Code 128, QR, Data Matrix, EAN, UPC i inne — i działa na systemach Windows, Linux oraz macOS bez dodatkowych zależności środowiskowych.

Zainstaluj za pomocą NuGet i zacznij generować kody kreskowe w ciągu kilku minut:

Install-Package BarCode

Czym jest komponent BarCode .NET?

Komponent .NET do obsługi kodów kreskowych to biblioteka oprogramowania w postaci pakietu NuGet, która zapewnia funkcje generowania i odczytu kodów kreskowych za pośrednictwem przejrzystego interfejsu API. W przeciwieństwie do czcionek BARCODE, które wymagają ręcznego obliczania sum kontrolnych i stosowania skomplikowanych reguł formatowania, dedykowany komponent obsługuje całą logikę kodowania wewnętrznie.

Biblioteka IronBarcode udostępnia dwa główne punkty wejścia:

  • BarcodeWriter -- tworzy obrazy kodów kreskowych, pliki PDF i HTML z danych tekstowych lub numerycznych
  • BarcodeReader -- skanuje obrazy, pliki PDF i wieloramkowe pliki TIFF w celu wyodrębnienia wartości kodów kreskowych

Ta dwukierunkowa konstrukcja oznacza, że w tej samej bibliotece można zarówno drukować BARCODES na etykietach, jak i skanować je z dokumentów, co jest niezbędne do zarządzania zapasami, śledzenia dokumentów, integracji z Crystal Reports oraz automatyzacji przepływu danych.

Obsługiwane symbole obejmują:

  • Kod liniowy 1D: Code 128, Code 39, Code 93, ITF-14, EAN-13, EAN-8, UPC-A, UPC-E
  • Macierz 2D: QR, Data Matrix, PDF417, Aztec
  • Warianty GS1: GS1-128, GS1 DataBar

Systemy produkcyjne zazwyczaj wykorzystują kod 128 do śledzenia produktów, ponieważ umożliwia on wydajne kodowanie danych alfanumerycznych. Aplikacje medyczne często wykorzystują kod Data Matrix do etykietowania leków, ponieważ dobrze się drukuje nawet w bardzo małych rozmiarach. Systemy kasowe w handlu detalicznym skanują barcodes EAN-13 i UPC-A przy kasie. Wybór odpowiedniej symboliki dla danego zastosowania jest jedną z pierwszych decyzji, jakie należy podjąć podczas integracji funkcji BarCode.

Jak zainstalować IronBarcode w projekcie .NET?

Instalacja IronBarcode zajmuje mniej niż dwie minuty przy użyciu menedżera pakietów NuGet w Visual Studio lub .NET CLI.

Konsola menedżera pakietów (Visual Studio):

Install-Package BarCode

.NET CLI:

dotnet add package BarCode

Jak zintegrować komponent .NET dla kodów kreskowych w C#: Rysunek 3 - Instalacja

Po zainstalowaniu pakietu dodaj przestrzeń nazw na początku każdego pliku, który korzysta z funkcji BARCODE:

using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText   $csharpLabel

IronBarcode jest przeznaczony dla platform .NET Framework 4.6.2 i nowszych, .NET Core 3.1 i nowszych oraz .NET 5 do .NET 10. Działa na systemach Windows, Linux i macOS, więc ten sam kod działa w kontenerach hostowanych w chmurze, na serwerach lokalnych i stacjach roboczych programistów bez konieczności konfiguracji specyficznej dla danej platformy.

W przypadku aplikacji .NET Core nie jest wymagana rejestracja oprogramowania pośredniczącego. API wywołuje się bezpośrednio z kontrolerów, usług działających w tle lub stron Razor Pages. Aplikacje Windows Forms i WPF uzyskują dostęp w ten sam sposób — wystarczy dodać przestrzeń nazw i zacząć wywoływać metody.

Jak zintegrować komponent .NET dla kodów kreskowych w C#: Rysunek 4 - Generowanie kodów kreskowych z obsługą dla różnych platform

Szczegółowe instrukcje instalacji, w tym konfiguracja kanału NuGet w trybie offline i ustawienia proxy, są dostępne w przewodniku IronBarcode "Pierwsze kroki".

Jak generować obraz kodu kreskowego w C#?

Generowanie kodu kreskowego za pomocą IronBarcode wymaga trzech kroków: wyboru kodowania, ustawienia wartości i zapisania wyniku. Poniższy przykład tworzy BARCODE Code 128 i zapisuje go zarówno jako obraz PNG, jak i dokument PDF:

using IronBarCode;

// Create a Code 128 barcode encoding a product identifier
var barcode = BarcodeWriter.CreateBarcode("PRD-12345-2024", BarcodeEncoding.Code128);

// Set the output dimensions in pixels
barcode.ResizeTo(400, 100);

// Add human-readable text beneath the bars
barcode.AddBarcodeValueTextBelowBarcode();

// Export to PNG for screen display and label printing
barcode.SaveAsImage("product-barcode.png");

// Export to PDF for document embedding
barcode.SaveAsPdf("product-barcode.pdf");
using IronBarCode;

// Create a Code 128 barcode encoding a product identifier
var barcode = BarcodeWriter.CreateBarcode("PRD-12345-2024", BarcodeEncoding.Code128);

// Set the output dimensions in pixels
barcode.ResizeTo(400, 100);

// Add human-readable text beneath the bars
barcode.AddBarcodeValueTextBelowBarcode();

// Export to PNG for screen display and label printing
barcode.SaveAsImage("product-barcode.png");

// Export to PDF for document embedding
barcode.SaveAsPdf("product-barcode.pdf");
Imports IronBarCode

' Create a Code 128 barcode encoding a product identifier
Dim barcode = BarcodeWriter.CreateBarcode("PRD-12345-2024", BarcodeEncoding.Code128)

' Set the output dimensions in pixels
barcode.ResizeTo(400, 100)

' Add human-readable text beneath the bars
barcode.AddBarcodeValueTextBelowBarcode()

' Export to PNG for screen display and label printing
barcode.SaveAsImage("product-barcode.png")

' Export to PDF for document embedding
barcode.SaveAsPdf("product-barcode.pdf")
$vbLabelText   $csharpLabel

Metoda ResizeTo() ustala dokładne wymiary pikseli, co ma znaczenie, gdy drukuje się etykiety w określonym DPI. Wywołanie AddBarcodeValueTextBelowBarcode() dodaje pod belkami tekst zrozumiały dla ludzi, co ułatwia ręczną weryfikację w magazynach i obiektach handlowych.

Formaty wyjściowe BarCode

Jak zintegrować komponent .NET dla kodów kreskowych w C#: Rysunek 5 - Wyjście PNG

Jak zintegrować komponent .NET dla kodów kreskowych w C#: Rysunek 6 - Wyjście PDF

IronBarcode eksportuje do formatów PNG, JPEG, GIF, TIFF, BMP, PDF, HTML oraz ciągów znaków base64. Format base64 jest szczególnie przydatny do osadzania BARCODE'ów w odpowiedziach API, które frontend renderuje dynamicznie bez zapisywania plików na dysku.

Jak wygenerować kod QR w C#?

Dla kodów QR, IronBarcode udostępnia klasę QRCodeWriter z wbudowaną obsługą poziomów korekcji błędów oraz kontroli rozmiaru modułu:

using IronBarCode;

// Generate a QR code from a URL with 500px dimensions
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/product/12345", 500);

// Save the QR code to a PNG file
qrCode.SaveAsImage("product-qr.png");
using IronBarCode;

// Generate a QR code from a URL with 500px dimensions
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/product/12345", 500);

// Save the QR code to a PNG file
qrCode.SaveAsImage("product-qr.png");
Imports IronBarCode

' Generate a QR code from a URL with 500px dimensions
Dim qrCode = QRCodeWriter.CreateQrCode("https://example.com/product/12345", 500)

' Save the QR code to a PNG file
qrCode.SaveAsImage("product-qr.png")
$vbLabelText   $csharpLabel

Kody QR mogą kodować adresy URL, zwykły tekst, dane kontaktowe vCard, dane logowania do sieci Wi-Fi oraz dowolne sekwencje bajtów. Strona z przykładami generowania BarCodes obejmuje dodatkowe scenariusze kodowania, w tym Data Matrix i PDF417.

Jak odczytywać BarCodes z obrazów?

Odczytywanie BarCode'ów z obrazu jest tak proste, jak ich zapisywanie. Metoda BarcodeReader.Read() akceptuje ścieżkę do pliku, Stream, Bitmap lub IronSoftware.Drawing.AnyBitmap i zwraca kolekcję BarcodeResults:

using IronBarCode;

// Read all barcodes from a scanned document image
BarcodeResults results = BarcodeReader.Read("scanned-document.png");

// Iterate over every detected barcode
foreach (BarcodeResult result in results)
{
    string value = result.Value;
    BarcodeEncoding type = result.BarcodeType;
    Console.WriteLine($"Detected {type}: {value}");
}
using IronBarCode;

// Read all barcodes from a scanned document image
BarcodeResults results = BarcodeReader.Read("scanned-document.png");

// Iterate over every detected barcode
foreach (BarcodeResult result in results)
{
    string value = result.Value;
    BarcodeEncoding type = result.BarcodeType;
    Console.WriteLine($"Detected {type}: {value}");
}
Imports IronBarCode

' Read all barcodes from a scanned document image
Dim results As BarcodeResults = BarcodeReader.Read("scanned-document.png")

' Iterate over every detected barcode
For Each result As BarcodeResult In results
    Dim value As String = result.Value
    Dim type As BarcodeEncoding = result.BarcodeType
    Console.WriteLine($"Detected {type}: {value}")
Next
$vbLabelText   $csharpLabel

Czytnik automatycznie przetwarza obrazy, aby skorygować typowe problemy związane ze skanowaniem: obrót, przekrzywienie, szumy, niski kontrast i zniekształcenia perspektywiczne. Oznacza to, że można przekazać surowe dane wyjściowe skanera bezpośrednio, bez konieczności ich samodzielnego przetwarzania.

Skanowanie z prawdziwego dokumentu

Jak zintegrować komponent .NET dla kodów kreskowych w C#: Rysunek 7 - Kod kreskowy Code128 gotowy do skanowania

Wynik czytania

Jak zintegrować komponent .NET dla kodów kreskowych w C#: Rysunek 8 - Wyjście kodu kreskowego

Jak skonfigurować opcje odczytu kodów kreskowych?

Dla przypadków o dużym natężeniu lub trudnych scenariuszy skanowania, BarcodeReaderOptions daje dokładną kontrolę nad algorytmem odczytu:

using IronBarCode;

var options = new BarcodeReaderOptions
{
    // Balance accuracy and processing time
    Speed = ReadingSpeed.Balanced,

    // Detect multiple barcodes in one pass
    ExpectMultipleBarcodes = true,

    // Limit the search to 1D formats for faster processing
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
};

// Read from a multi-page PDF warehouse inventory report
var results = BarcodeReader.Read("warehouse-inventory.pdf", options);
using IronBarCode;

var options = new BarcodeReaderOptions
{
    // Balance accuracy and processing time
    Speed = ReadingSpeed.Balanced,

    // Detect multiple barcodes in one pass
    ExpectMultipleBarcodes = true,

    // Limit the search to 1D formats for faster processing
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
};

// Read from a multi-page PDF warehouse inventory report
var results = BarcodeReader.Read("warehouse-inventory.pdf", options);
Imports IronBarCode

Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = True,
    .ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
}

' Read from a multi-page PDF warehouse inventory report
Dim results = BarcodeReader.Read("warehouse-inventory.pdf", options)
$vbLabelText   $csharpLabel

Ustawienie ExpectBarcodeTypes, aby dopasować formaty, których faktycznie oczekujesz, poprawia przepustowość, ponieważ czytnik pomija wzorce, które nie mogą pasować. Właściwość Speed ma zakres od Faster (najlepsza dla czystych, wysokiej jakości obrazów) do ExtremeDetail (najlepsza dla uszkodzonych lub niskiej rozdzielczości źródeł). Dokumentacja czytania kodów kreskowych obejmuje dodatkowe opcje, w tym wielowątkowość i skanowanie w ramach regionu zainteresowania.

Jak dostosować wygląd kodu kreskowego?

IronBarcode pozwala kontrolować każdy wizualny aspekt wygenerowanego kodu kreskowego przed zapisaniem. Można ustawić kolory, czcionki, marginesy i teksty adnotacji programowo. Jest to przydatne przy generowaniu kodów kreskowych dla etykiet markowych lub branż regulowanych, w których układ etykiety podlega ścisłym specyfikacjom.

API stosuje wzór w stylu płynnym: tworzenie kodu kreskowego, wywołania metod stylizacji, a następnie zapisywanie. Wszystkie właściwości stylów wpływają na wyjście natychmiastowo i nie wymagają oddzielnego etapu renderowania. Zobacz przykłady stylizacji i adnotacji dla pełnej listy dostępnych właściwości.

Jak obsługiwać kody kreskowe w dokumentach PDF?

IronBarcode czyta kody kreskowe osadzone w plikach PDF tak samo jak czyta pliki obrazów. Przekaż ścieżkę do pliku PDF do BarcodeReader.Read(), a biblioteka automatycznie wyodrębni kody kreskowe z każdej strony. Jest to cenne dla przepływów pracy w dziale zobowiązań, gdzie faktury PDF zawierają kody kreskowe GS1-128, oraz dla systemów logistycznych, gdzie manifesty wysyłki są rozprowadzane jako załączniki PDF.

Możesz także pisać kody kreskowe bezpośrednio na stronach PDF, używając IronBarcode wraz z IronPDF do generowania dokumentów. Częstym wzorcem jest generowanie etykiety wysyłkowej PDF, która zawiera zarówno blok adresowy czytelny dla człowieka, jak i skanowalny kod kreskowy Code 128 dla numeru śledzenia.

Dla dalszych informacji o przepływach pracy związanych z kodami kreskowymi w PDF, sekcja samouczków IronBarcode dostarcza kompleksowych przykładów obejmujących przetwarzanie faktur, drukowanie etykiet seryjnych i archiwizację dokumentów.

Jak zintegrować kody kreskowe z interfejsami API ASP.NET Core?

Zwracanie obrazu kodu kreskowego z punktu końcowego kontrolera ASP.NET Core jest częstym wymaganiem dla portali internetowych wyświetlających dynamiczne etykiety. Wyjście base64 IronBarcode czyni to prostym:

using IronBarCode;

// In an ASP.NET Core controller action
public IActionResult GetBarcodeImage(string productId)
{
    var barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128);
    barcode.ResizeTo(400, 100);
    barcode.AddBarcodeValueTextBelowBarcode();

    // Return the barcode as a PNG image response
    byte[] imageBytes = barcode.ToJpegBinaryData();
    return File(imageBytes, "image/jpeg");
}
using IronBarCode;

// In an ASP.NET Core controller action
public IActionResult GetBarcodeImage(string productId)
{
    var barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128);
    barcode.ResizeTo(400, 100);
    barcode.AddBarcodeValueTextBelowBarcode();

    // Return the barcode as a PNG image response
    byte[] imageBytes = barcode.ToJpegBinaryData();
    return File(imageBytes, "image/jpeg");
}
Imports IronBarCode

' In an ASP.NET Core controller action
Public Function GetBarcodeImage(productId As String) As IActionResult
    Dim barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128)
    barcode.ResizeTo(400, 100)
    barcode.AddBarcodeValueTextBelowBarcode()

    ' Return the barcode as a PNG image response
    Dim imageBytes As Byte() = barcode.ToJpegBinaryData()
    Return File(imageBytes, "image/jpeg")
End Function
$vbLabelText   $csharpLabel

To podejście działa z każdym frameworkiem frontendowym. Przeglądarka otrzymuje standardową odpowiedź obrazową i wyświetla ją w znaczniku <img>. Dla punktów końcowych o dużym ruchu, generuj kody kreskowe raz i pamiętaj tablicę bajtów, ponieważ ten sam identyfikator produktu zawsze generuje ten sam obraz kodu kreskowego.

Dokumentacja dokumentacja API IronBarcode opisuje wszystkie dostępne metody, w tym strumieniowe wyjście, które unika alokowania dużych tablic bajtów dla bardzo wysokiej rozdzielczości kodów kreskowych.

Jak IronBarcode obsługuje walidację kodów kreskowych i korekcję błędów?

Standardy kodów kreskowych definiują ścisłe zasady kodowania i wymagania dotyczące sum kontrolnych. Code 128 używa ważonej sumy kontrolnej modulo-103. EAN-13 używa modulo-10. Kody QR zawierają korekcję błędów typu Reed-Solomon, która umożliwia częściowe odzyskiwanie danych nawet gdy do 30% kodu kreskowego jest zasłonięte lub uszkodzone.

IronBarcode automatycznie egzekwuje te zasady. Kiedy wywołujesz BarcodeWriter.CreateBarcode(), biblioteka sprawdza, czy dane pasują do zestawu znaków i ograniczeń długości symbologii, a następnie oblicza i dodaje poprawny sumę kontrolną bez dodatkowych kroków z twojego kodu. To zapobiega generowaniu nieprawidłowych kodów kreskowych, które skanery odrzucą.

Po stronie odczytu biblioteka stosuje korekcję błędów podczas dekodowania, co oznacza, że często może odzyskać poprawną wartość z kodu kreskowego, który jest częściowo rozerwany, rozmazany lub wydrukowany w niskiej rozdzielczości. To zachowanie jest szczególnie ważne dla zgodności ze standardami kodów kreskowych GS1 w handlu detalicznym i logistyce.

Dla głębszego zrozumienia, jak działa korekcja błędów kodów kreskowych na poziomie specyfikacji, dokumentacja standardów kodów kreskowych ISO/IEC dostarcza autorytatywnego źródła technicznego.

Jakie są typowe scenariusze integracji kodów kreskowych?

Typowe scenariusze integracji kodów kreskowych i zalecane funkcje IronBarcode
Scenariusz Symbologia Kluczowa funkcja IronBarcode
Punkt sprzedaży detalicznej EAN-13, UPC-A BarcodeEncoding.EAN13, PDF export
Inwentaryzacja magazynowa Code 128, ITF-14 ExpectMultipleBarcodes = true
Etykietowanie w ochronie zdrowia Data Matrix, GS1-128 Druk niskorozmiarowy, eksport o wysokim DPI
Śledzenie dokumentów PDF417, Code 39 Odczyt PDF, obsługa wielu stron
Mobilne wyszukiwanie produktów Kod QR QRCodeWriter.CreateQrCode()
Etykiety wysyłkowe Code 128, GS1-128 PDF wyjście wielkości etykiety, tekst adnotacji

Każdy scenariusz korzysta z różnych wyborów konfiguracji. Galeria przykładów IronBarcode dostarcza kod do uruchomienia dla wszystkich powyższych scenariuszy.

Jakie są Twoje kolejne kroki?

Integracja komponentu .NET do kodów kreskowych zmienia to, co w przeciwnym razie byłoby tygodniowym wysiłkiem na własne potrzeby w popołudnie konfiguracji. IronBarcode obsługuje zasady kodowania, sumy kontrolne, przetwarzanie obrazu i korekcję błędów, dzięki czemu twój zespół może skupić się na logice biznesowej otaczającej przepływy pracy z kodami kreskowymi, a nie na mechanice samych kodów kreskowych.

Aby kontynuować:

  1. Zainstaluj pakiet: dotnet add package BarCode lub Install-Package BarCode w Konsoli Menedżera Pakietów
  2. Wypróbuj szybki start: Przykład szybkiego startu przechodzi przez generowanie i odczytywanie poniżej 20 linii kodu
  3. Poznaj symbologie: Referencje obsługiwanych typów kodów kreskowych wymieniają wszystkie formaty kodowania z wskazówkami dotyczącymi użycia
  4. Sprawdź ceny: Opcje licencji IronBarcode obejmują przypadki użycia programisty indywidualnego, zespołu i dystrybucji OEM
  5. Rozpocznij darmowy okres próbny: Pobierz 30-dniową darmową licencję próbną w celu oceny pełnego zestawu funkcji w twojej własnej aplikacji

W przypadku pytań o licencjonowanie korporacyjne, wdrożenia o dużej objętości lub wyzwania związane z integracją techniczną, zespół wsparcia IronBarcode jest dostępny, aby pomóc.

Zewnętrzne odniesienia do standardów i specyfikacji kodów kreskowych:

Często Zadawane Pytania

Czym jest komponent .NET do obsługi kodów kreskowych BarCode?

Komponent .NET do obsługi kodów kreskowych to biblioteka oprogramowania, która umożliwia programistom integrację generowania i skanowania kodów kreskowych z aplikacjami .NET, automatycznie obsługując reguły kodowania, sumy kontrolne i wstępne przetwarzanie obrazów.

W jaki sposób IronBarcode może pomóc w aplikacjach .NET?

IronBarcode udostępnia komponent .NET do generowania i odczytu kodów kreskowych za pośrednictwem prostego interfejsu API, co ułatwia dodawanie funkcji kodów kreskowych do aplikacji C# bez konieczności ręcznego wdrażania algorytmów kodowania.

Jakie rodzaje kodów kreskowych można generować za pomocą IronBarcode?

IronBarcode obsługuje formaty Code 128, Code 39, Code 93, ITF-14, EAN-13, EAN-8, UPC-A, UPC-E, QR Code, Data Matrix, PDF417, Aztec oraz warianty GS1.

Dlaczego warto używać komponentu do obsługi kodów kreskowych zamiast tworzyć własne rozwiązanie?

Professional BarCode component automatically handles sum control calculation, error correction, image preprocessing, and multi-format support, which reduces development time and reduces the risk of generating incorrect BarCodes.

Czy IronBarcode nadaje się do zadań związanych z automatyzacją danych?

Tak, IronBarcode doskonale nadaje się do automatyzacji danych. Odczytuje kody kreskowe z obrazów i plików PDF oraz integruje się bezpośrednio z usługami działającymi w tle, zaplanowanymi zadaniami i interfejsami API .NET Core.

Czy IronBarcode może służyć do śledzenia dokumentów?

Tak. IronBarcode odczytuje kody kreskowe z wielostronicowych plików PDF i wieloklatkowych plików TIFF, dzięki czemu sprawdza się w procesach śledzenia dokumentów w logistyce, księgowości i zarządzaniu dokumentacją.

Jakie wersje .NET obsługuje IronBarcode?

IronBarcode obsługuje platformy .NET Framework 4.6.2 i nowsze, .NET Core 3.1 i nowsze oraz .NET 5 do .NET 10, działające w systemach Windows, Linux i macOS.

W jaki sposób IronBarcode usprawnia systemy zarządzania zapasami?

IronBarcode zapewnia niezawodne generowanie kodów kreskowych oraz skanowanie wielu kodów kreskowych z obrazów i plików PDF, umożliwiając szybkie i dokładne śledzenie zapasów w magazynach i sklepach detalicznych.

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ę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie