IRONSOFTWAREHOME
KORZYSTANIE Z IRONBARCODE

C# Generuj kod kreskowy ze stringa: Kompletny samouczek z IronBarcode

Curtis Chau
Curtis Chau
Updated: 8 maja 2026

Kodowanie danych tekstowych w obrazy BARCODE jest podstawowym wymogiem dla systemów magazynowych, aplikacji detalicznych i zarządzania dokumentami. Ten samouczek pokazuje, jak generować kody kreskowe z wartości ciągów znaków w języku C# przy użyciu IronBarcode — obejmuje wszystko, od instalacji po zapisywanie obrazów kodów kreskowych w wielu formatach, stylizowanie ich do użytku produkcyjnego oraz przetwarzanie dużych partii danych z bazy danych.

IronBarcode to biblioteka .NET opracowana przez Iron Software, która upraszcza generowanie i odczytywanie kodów kreskowych dla programistów .NET tworzących aplikacje dla systemu Windows, usługi internetowe i interfejsy API hostowane w chmurze. Bezpłatna próba, aby zapoznać się z poniższymi przykładami kodu.

Jak zainstalować IronBarcode w projekcie .NET?

Instalacja IronBarcode zajmuje kilka sekund przy użyciu interfejsu CLI .NET lub menedżera pakietów NuGet w programie Visual Studio.

Opcja 1 — .NET CLI (zalecana dla .NET 10):

dotnet add package Barcode
SHELL

Opcja 2 — Konsola menedżera pakietów NuGet w Visual Studio:

PM > Install-Package BarCode

Alternatywnie wyszukaj "IronBarcode" w interfejsie użytkownika Menedżera Pakietów NuGet i zainstaluj oficjalny pakiet. Biblioteka jest przeznaczona dla platform .NET Framework 4.6.2+ oraz .NET 5 do .NET 10, co zapewnia kompatybilność z nowoczesnymi środowiskami .NET.

Po instalacji dodaj pojedyncza dyrektywe using na górze kazdego pliku, który generuje lub czyta kody kreskowe:

using IronBarCode;

Ta dyrektywa udostepnia BarcodeWriter, BarcodeReader, BarcodeEncoding i inne publiczne typy objete tym przewodnikiem.

Jak wygenerować prosty kod kreskowy z ciągu znaków w C#?

Metoda BarcodeWriter.CreateBarcode jest punktem wejscia do generowania kodów kreskowych. Podaj ciag, który chcesz zakodowac razem z wartoscia BarcodeEncoding i uzyskasz obiekt GeneratedBarcode gotowy do zapisania lub dalszej manipulacji.

using IronBarCode;

// Generate a Code 128 barcode from a product SKU string
string productCode = "SKU-78432-A";
var barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128);
barcode.SaveAsPng("product_barcode.png");

Wynik generowania BarCode

C# Generowanie kodu kreskowego z ciagu: Kompletna instrukcja z IronBarcode: Obraz 1 - Przykładowy wyjsciowy kod kreskowy

To tworzy obraz kodu kreskowego Code128 z ciagu produktowego i zapisuje go jako plik PNG. Metoda CreateBarcode obsługuje cala złożoność kodowania, więc obraz kodu kreskowego można uzyskać z minimalną ilością kodu. IronBarcode obsługuje zapis w formatach PNG, JPEG, GIF, TIFF, BMP i SVG.

Metoda akceptuje również opcjonalne parametry szerokości i wysokości w celu kontrolowania wymiarów wyjściowych, co pomaga zapewnić odpowiednią jakość skanowania w środowisku docelowym:

using IronBarCode;

// Specify width and height in pixels for the barcode image
string productCode = "SKU-78432-A";
var barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128, 400, 120);
barcode.SaveAsPng("product_barcode_sized.png");

Ustawienie wyraźnych wymiarów jest szczególnie przydatne podczas generowania etykiet dla termicznych drukarek etykiet, gdzie rozmiar wydruku musi dokładnie odpowiadać rozmiarowi etykiet.

Jakie formaty kodów kreskowych obsługuje IronBarcode?

IronBarcode obsługuje ponad 20 typów kodów kreskowych do różnych zastosowań. Wybór odpowiedniego formatu zapewnia prawidłowe skanowanie i odpowiednią pojemność danych dla aplikacji.

using IronBarCode;

string url = "https://ironsoftware.com/csharp/barcode/";
string numericId = "0123456789012";

// QR Code -- best for URLs, text data, and mobile scanning
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode)
    .SaveAsPng("qrcode.png");

// UPC-A -- required for retail point-of-sale systems (12 digits)
BarcodeWriter.CreateBarcode(numericId, BarcodeEncoding.UPCA)
    .SaveAsPng("upc_barcode.png");

// PDF417 -- suited for documents that need higher data capacity
BarcodeWriter.CreateBarcode("Extended product details here", BarcodeEncoding.PDF417)
    .SaveAsJpeg("pdf417_barcode.jpeg");

Wyniki obrazów BarCode

C# Generowanie kodu kreskowego z ciagu: Kompletna instrukcja z IronBarcode: Obraz 2 - Wygenerowane kody kreskowe

Poniżej tabela podsumowująca, kiedy używać każdego głównego formatu:






Formaty BarCode obsługiwane przez IronBarcode w zależności od zastosowania
FormatNajlepsze dlaZestaw znaków
QRCodeAdresy URL, tekst, skanowanie mobilneASCII + Unicode
Code128Alfanumeryczne kody produktów, etykiety wysyłkowePełny ASCII
UPCA / EAN13Systemy kasowe dla handlu detalicznegoTylko liczby
PDF417Dowody osobiste, karty pokładowe, dokumentyDane binarne
DataMatrixMałe etykiety, elektronikaASCII + Binarny
AztecBilety komunikacyjne, mobilne odprawyASCII + Unicode

Pełną listę obsługiwanych kodowań można znaleźć w opisie typów BarCode IronBarcode.

Jak dostosować i stylizować obrazy kodów kreskowych w C#?

Oprócz podstawowego generowania kodów kreskowych, IronBarcode udostępnia płynny interfejs API do stylizacji, umożliwiający dostosowywanie kolorów, dodawanie adnotacji i zmianę rozmiaru obrazów kodów kreskowych bez konieczności korzystania z zewnętrznych bibliotek do przetwarzania obrazów.

using IronBarCode;
using IronSoftware.Drawing;

string orderNumber = "ORD-2024-00542";
var styledBarcode = BarcodeWriter.CreateBarcode(orderNumber, BarcodeEncoding.Code128);

// Adjust colors to match brand identity
styledBarcode.ChangeBarCodeColor(Color.DarkBlue);
styledBarcode.ChangeBackgroundColor(Color.White);

// Add readable text annotations above and below the bars
styledBarcode.AddAnnotationTextAboveBarcode("Order Number", new Font("Arial", 12), Color.Black, 5);
styledBarcode.AddBarcodeValueTextBelowBarcode(new Font("Arial", 10), Color.Gray, 5);

// Resize to fit a thermal label at 400 x 150 pixels
styledBarcode.ResizeTo(400, 150);
styledBarcode.SaveAsPng("styled_order_barcode.png");

Stylizowane wygenerowanie BarCode

C# Generowanie kodu kreskowego z ciagu: Kompletna instrukcja z IronBarcode: Obraz 3 - stylizowany kod kreskowy

Jakie właściwości stylizacji są dostępne?

Klasa GeneratedBarcode udostepnia kilka kategorii metod stylizacji:

  • Kontrola kolorów -- ChangeBarCodeColor, ChangeBackgroundColor akceptuja dowolne Color z IronSoftware.Drawing
  • Adnotacje tekstowe — dodaj tekst nad lub pod BARCODE, używając niestandardowej czcionki, rozmiaru i koloru
  • Kontrola marginesów — ustawienie odstępów wokół BarCode'a w celu poprawy wydajności skanera na zagraconych etykietach
  • Obrót — obrót obrazu BarCode w bok lub po przekątnej w przypadku układów etykiet wymagających orientacji pionowej
  • Zmiana rozmiaru — ustal szerokość i wysokość w pikselach bez zniekształcania zakodowanych danych

Metody stylizacji łączą się w naturalny sposób, zapewniając czytelność kodu i generując obrazy BARCODE zgodne z projektem wizualnym aplikacji. Aby uzyskać bardziej szczegółowe informacje, zapoznaj się z przewodnikiem dotyczącym stylizacji BARCODE.

Jak wygenerować wiele BarCode'ów na podstawie danych z bazy danych?

W praktyce często trzeba generować BARCODE-y dla zbiorów elementów — katalogów produktów, procesów uzupełniania zapasów lub przepływów pracy związanych z wysyłką zamówień. IronBarcode obsługuje przetwarzanie wsadowe bez konieczności dodatkowej konfiguracji.

using IronBarCode;

// Data sourced from a database query result
List<string> productIds =
[
    "PROD-001-X",
    "PROD-002-Y",
    "PROD-003-Z",
    "PROD-004-W"
];

// Generate one barcode image per product ID
foreach (string productId in productIds)
{
    var barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128, 300, 100);
    barcode.SaveAsPng($"barcodes/{productId}.png");
}

Wyjściowe BarCodes

C# Generowanie kodu kreskowego z ciagu: Kompletna instrukcja z IronBarcode: Obraz 4 - wiele wygenerowanych kodów kreskowych

Skalowanie do dużych wolumenów

Powyższy wzorzec pętli można skalować do tysięcy rekordów bez konieczności modyfikacji. W przypadku generowania dużych ilości kodów kreskowych IronBarcode obsługuje operacje asynchroniczne i wielowątkowe, aby zmaksymalizować przepustowość na serwerach wielordzeniowych.

Wygenerowane obrazy BARCODE można osadzać w raportach PDF, drukować na etykietach lub przechowywać w systemie zarządzania dokumentami. Każdy obraz koduje oryginalny ciąg znaków w postaci wzorca binarnego, który skanery BarCode dekodują z powrotem na tekst.

W przypadku zadań produkcyjnych generujących tysiące BarCodes na jeden przebieg warto rozważyć wstępne rozgrzanie silnika IronBarcode przed rozpoczęciem pętli. Pierwsze wywolanie CreateBarcode inicjalizuje wewnetrzne pamięci podręczne kodowania; W rezultacie kolejne wywołania w ramach tego samego procesu są realizowane szybciej. Zawarcie całej partii w jednej metodzie czasowej ułatwia również rejestrowanie zbiorczych statystyk — łącznej liczby wygenerowanych BARCODE'ów, wszelkich błędów kodowania oraz czasu, który upłynął — przed zakończeniem partii. Ten wzorzec integruje się płynnie z frameworkami zadań w tle, takimi jak Hangfire lub wbudowane w .NET'a IHostedService dla zaplanowanych zadań generowania.

Jak zapisywać i eksportować BarCodes w różnych formatach plików?

GeneratedBarcode oferuje szereg metod zapisu obejmujących najpopularniejsze formaty obrazu używane w aplikacjach biznesowych:

using IronBarCode;

string value = "EXPORT-TEST-001";
var barcode = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128, 400, 120);

// Save to disk in multiple formats
barcode.SaveAsPng("barcode.png");       // Lossless -- best for print
barcode.SaveAsJpeg("barcode.jpg");      // Compressed -- smaller file size
barcode.SaveAsGif("barcode.gif");       // Compatible with legacy systems
barcode.SaveAsTiff("barcode.tiff");     // Multi-page archival format
barcode.SaveAsBmp("barcode.bmp");       // Uncompressed bitmap

// Export as a byte array for in-memory operations (API responses, database storage)
byte[] pngBytes = barcode.ToStream(ImageFormat.Png).ToArray();

Wybór odpowiedniego formatu zależy od odbiorcy końcowego. Format PNG sprawdza się dobrze w przypadku etykiet i dokumentów gotowych do druku. Format JPEG nadaje się do zastosowań, w których rozmiar pliku ma znaczenie. Aby osadzić kody kreskowe bezpośrednio w dokumentach PDF, IronBarcode integruje się z IronPDF, aby programowo nanosić lub wstawiać obrazy kodów kreskowych.

Przeciążenie ToStream jest szczególnie cenne w interfejsach API i funkcjach w chmurze, gdzie zapis na dysk nie jest poządany. Tablica bajtów może być przechowywana w kolumnie BLOB bazy danych, przesłana do pamięci w chmurze lub przesyłana strumieniowo bezpośrednio do odpowiedzi HTTP bez żadnego pliku pośredniego w systemie plików.

Jak weryfikujesz dane łańcuchowe przed kodowaniem?

Nie każdy ciąg znaków jest prawidłowy dla każdego formatu BarCode. Kod UPC-A wymaga dokładnie 12 cyfr, EAN-13 wymaga 13, a niektóre formaty 1D odrzucają znaki spoza ograniczonego podzbioru ASCII. Przekazanie nieprawidłowych danych do CreateBarcode powoduje podniesienie IronBarCodeEncodingException. Otoczenie wywołania blokiem try/catch i sprawdzenie poprawności danych wejściowych z góry zapobiega nieobsługiwanym wyjątkom w środowisku produkcyjnym:

using IronBarCode;

bool TryCreateBarcode(string value, BarcodeEncoding encoding, string outputPath)
{
    if (string.IsNullOrWhiteSpace(value))
    {
        Console.WriteLine("Value must not be empty.");
        return false;
    }

    try
    {
        var barcode = BarcodeWriter.CreateBarcode(value, encoding);
        barcode.SaveAsPng(outputPath);
        return true;
    }
    catch (IronBarCodeEncodingException ex)
    {
        Console.WriteLine($"Encoding failed: {ex.Message}");
        return false;
    }
}

// Usage
TryCreateBarcode("SKU-001", BarcodeEncoding.Code128, "output.png");   // succeeds
TryCreateBarcode("NOT-NUMERIC", BarcodeEncoding.UPCA, "output.png");  // encoding exception

Wybór odpowiedniego formatu danych wejściowych

Gdy format kodu BarCode można konfigurować w czasie wykonywania, pomocnik mapujący typ zawartości do odpowiedniego kodowania pozwala uniknąć cichych błędów:

  • Użyj BarcodeEncoding.QRCode gdy ciag zawiera adresy URL, adresy e-mail lub wielobajtowe znaki Unicode.
  • Użyj BarcodeEncoding.Code128 dla ogólnych ciagów alfanumerycznych do około 80 znaków.
  • Użyj BarcodeEncoding.EAN13 lub BarcodeEncoding.UPCA tylko wtedy, gdy dane sa czysto numeryczne i długość jest ustalona. Cyfra kontrolna jest obliczana automatycznie przez IronBarcode.
  • Użyj BarcodeEncoding.DataMatrix dla bardzo krotkich ciagów alfanumerycznych, które musza zmieścić się na fizycznie małej etykiecie.

Dodanie walidacji formatu przed wywolaniem CreateBarcode utrzymuje komunikaty o błedach skierowane do uzytkownika zamiast kryptograficznych sladów stosu w logach aplikacji.

Jak odczytać BarCode na podstawie wartości ciągu znaków?

Generowanie BarCoda to w wielu systemach tylko połowa procesu. API do odczytu kodów kreskowych używa BarcodeReader.Read do dekodowania obrazu do pierwotnego ciagu.

using IronBarCode;

// Read all barcodes from an image file
var results = BarcodeReader.Read("product_barcode.png");

foreach (var result in results)
{
    // Output the decoded string value
    Console.WriteLine($"Decoded value: {result.Value}");
    Console.WriteLine($"Format detected: {result.BarcodeType}");
}

Ułatwia to tworzenie obiegów pracy z kodami kreskowymi typu "round-trip" — generowanie kodu kreskowego na podstawie rekordu produktu, zapisywanie go na dysku lub w kolejce drukarki etykiet, a następnie skanowanie fizycznej etykiety i dekodowanie wartości w celu wyszukania rekordu. Dla odczytu kodów kreskowych z plików PDF lub strumieni wideo z kamery, IronBarcode oferuje dedykowane metody z prostym API.

Jak korzystać z IronBarcode w interfejsach API ASP.NET Core?

IronBarcode działa w kontrolerach ASP.NET Core i minimalnych procedurach obsługi API. Najczęstszy wzorzec zwraca obraz BARCODE jako plik lub URI danych zakodowanych w base64 do renderowania w przeglądarce.

using IronBarCode;
using Microsoft.AspNetCore.Mvc;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Minimal API endpoint -- returns a barcode PNG for the given value
app.MapGet("/barcode/{value}", (string value) =>
{
    var barcode = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128, 400, 120);
    byte[] imageBytes = barcode.ToStream(ImageFormat.Png).ToArray();
    return Results.File(imageBytes, "image/png");
});

app.Run();

Punkt końcowy generuje BARCODE na żądanie dla dowolnej wartości przekazanej w ścieżce URL. W przypadku wdrożeń produkcyjnych należy dodać buforowanie, aby powtarzające się żądania tej samej wartości BARCODE nie powodowały ponownego generowania obrazu. Zobacz pełny samouczek dotyczący generowania BARCODE-ów w ASP.NET, aby uzyskać bardziej szczegółowy przewodnik, w tym wstrzykiwanie zależności i buforowanie odpowiedzi.

Jakie są Twoje kolejne kroki?

Generowanie kodów kreskowych na podstawie danych tekstowych w języku C# jest proste dzięki IronBarcode. Płynny interfejs API radzi sobie ze złożonością kodowania BarCode, zapewniając jednocześnie elastyczność w zakresie dostosowywania i przetwarzania wsadowego. Niezależnie od tego, czy celem są proste kody kreskowe Code 128 do zarządzania zapasami, czy kody QR do aplikacji mobilnych, IronBarcode zapewnia niezawodną funkcjonalność kodów kreskowych dla aplikacji .NET.

Więcej informacji:

Pierwszy krok:
arrow pointer
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