Jak tworzyć kody kreskowe 1D i liniowe BarCodes

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode umożliwia generowanie wszystkich głównych formatów kodów kreskowych 1D, w tym Code 128, GS1-128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, Intelligent Mail, MSI, Codabar i DataBar, przy użyciu prostego kodu C# z automatyczną walidacją i sprawdzaniem zgodności. Możesz przejrzeć pełną listę obsługiwanych formatów BarCode, aby znaleźć ten odpowiedni dla swoich potrzeb.

BarCODE pozostaje standardem branżowym w przekazywaniu informacji. Są szybkie, niezawodne i współpracują z niemal każdym skanerem. Ponieważ barcody te nie wymagają złożonego przetwarzania obrazu, doskonale sprawdzają się w środowiskach wymagających dużej szybkości, takich jak kasy sklepowe i przenośniki taśmowe.

Głównym wyzwaniem jest dobór odpowiedniego formatu dostosowanego do konkretnych potrzeb. Może być potrzebna wysoka gęstość danych Code128 do etykiet wysyłkowych, kompaktowy rozmiar EAN8 do małych produktów lub IntelligentMail Barcode o ścisłym formatowaniu do usług pocztowych. IronBarcode pomaga w wydajnym i niezawodnym generowaniu wszystkich tych formatów. Biblioteka obsługuje również różne formaty danych wyjściowych, co pozwala na płynną integrację z istniejącymi systemami.

W niniejszym przewodniku omówiono sposób generowania najważniejszych formatów 1D oraz typowe przypadki ich zastosowania w programie IronBarcode.


Szybki start: Utwórz swój pierwszy BarCode 1D

Użyj prostego API IronBarcode, aby utworzyć kod kreskowy Code128 na podstawie ciągu znaków i zapisać go jako obraz JPEG. Zacznij od razu — dostarcz dane, wybierz kodowanie i rozmiar, a następnie zapisz plik graficzny.

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode
  2. Skopiuj i uruchom ten fragment kodu.

    IronBarCode.BarcodeWriter.CreateBarcode("HELLO-WORLD-123", BarcodeEncoding.Code128, 250, 100).SaveAsJpeg("MyFirstBarcode.jpg");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronBarcode w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jak utworzyć BarCodes 1D i liniowe?

Liniowe, jednowymiarowe BARCODE wykorzystują linie i odstępy o zmiennej szerokości do przechowywania danych w poziomie. Dwuwymiarowe barcody, takie jak kody QR, wykorzystują siatkę kwadratów do przechowywania informacji w dwóch wymiarach. Podczas gdy kody dwuwymiarowe mogą pomieścić więcej danych, takich jak adresy URL lub wizytówki, BARCODE-y jednowymiarowe są ograniczone do krótkich ciągów alfanumerycznych.

Ta prostota pozwala na szybsze skanowanie BARCODE-ów jednowymiarowych. Dzięki temu są one uniwersalnie kompatybilne ze standardowymi skanerami laserowymi, co czyni je idealnymi do zastosowań w szybkich środowiskach detalicznych i logistycznych. W przypadku pracy z aplikacjami skanującymi duże ilości danych zapoznaj się z naszymi opcjami prędkości czytania, aby zoptymalizować wydajność.

Przyjrzyjmy się najczęściej obsługiwanym formatom i sposobom ich tworzenia za pomocą IronBarcode.

Jak tworzyć barcodes Code-128?

BarCODE Code 128 jest powszechnie stosowany w logistyce wewnętrznej i na etykietach wysyłkowych. Obsługuje pełny zakres 128 znaków ASCII, dzięki czemu bardzo skutecznie kompresuje standardowe liczby i tekst angielski do niewielkich przestrzeni. To sprawia, że Code 128 idealnie nadaje się do systemów zarządzania magazynem i śledzenia zapasów, gdzie przestrzeń jest ograniczona, ale gęstość danych ma kluczowe znaczenie.

Jednak bez dodatkowych rozszerzeń nie obsługuje natywnie znaków Unicode ani znaków spoza alfabetu łacińskiego. Nie obsługuje on złożonych znaków z języków takich jak chiński czy arabski i błędnie interpretowałby dane, co prowadziłoby do nieprawidłowych wyników. W przypadku aplikacji wymagających obsługi Unicode zapoznaj się z naszym przewodnikiem dotyczącym pisania BARCODE-ów Unicode.

Jakiego kodu potrzebuję?

IronBarcode ułatwia generowanie Code-128: przekaż BarcodeEncoding.Code128 jako drugi parametr podczas wywoływania metody Create, a następnie eksportuj jako obraz. Dowiedz się więcej o tworzeniu obrazów BarCode w różnych formatach i z różnymi opcjami.

:path=/static-assets/barcode/content-code-examples/how-to/create-code-128-barcode.cs
using IronBarCode;

// Specify Code 128 Format
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.Code128);

// Add barcode value text below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save it as JPG
barcode.SaveAsJpeg("code128-sample.jpg");
Imports IronBarCode

' Specify Code 128 Format
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode/", BarcodeEncoding.Code128)

' Add barcode value text below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save it as JPG
barcode.SaveAsJpeg("code128-sample.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik?

Przykładowy wynik dla kodu 128

Jak utworzyć BarCodes GSI-128?

GS1-128 to dodatkowy format danych stosowany jako rozszerzenie kodu 128. Główną zaletą GS1-128 jest spójna interpretacja danych na całym świecie, co eliminuje błędne interpretacje i niejasności. Ta standaryzacja ma kluczowe znaczenie dla zarządzania łańcuchem dostaw, w którym produkty przemieszczają się między różnymi firmami i krajami.

Jednak ze względu na ścisłe formatowanie pominięcie ukrytego znaku sterującego lub nieprawidłowa długość pola spowoduje, że BARCODE nie będzie zgodny z normami. Jeśli napotkasz problemy z formatowaniem GS1-128, nasz przewodnik dotyczący rozwiązywania problemów z GS1-128 może pomóc w rozwiązaniu typowych problemów.

Jaki format wymaga GSI-128?

Skanery BarCode używają identyfikatorów aplikacji (AI) — numerycznych prefiksów, które identyfikują informacje zawarte w kodzie produktu. Zrozumienie tych identyfikatorów ma kluczowe znaczenie dla tworzenia zgodnych BARCODE, które działają w całym globalnym łańcuchu dostaw.

GS1-128 ma następującą czteroczęściową strukturę danych:

(Prefiks numeryczny 01) GTIN (Global Trade Item Number): Unikalny identyfikator produktu, który określa, czym jest dany produkt. Musi składać się dokładnie z 14 cyfr. Jeśli kod produktu jest krótszy, należy go uzupełnić zerami na początku. Na przykład 123456789012 staje się 00123456789012.

(Prefiks numeryczny 10) Partia/seria: Numer partii lub serii produktu. Od 1 do 20 znaków alfanumerycznych. W przypadku umieszczenia w środkowej części BARCODE wymagany jest znak separatora FNC1, aby skanery wiedziały, gdzie się kończy. Nie jest potrzebny separator, jeśli znajduje się na końcu BarCode.

(Prefiks numeryczny 17) Data ważności: Data ważności produktu. Ustalono na sześć cyfr w formacie RRMMDD. Na przykład 251231 to 31 grudnia 2025 r. Używa 2-cyfrowych lat z oknem przesuwnym dla wieku.

(Prefiks numeryczny 21) Numer seryjny: Numer seryjny produktu identyfikujący konkretną jednostkę. Długość zmienna, od 1 do 20 znaków alfanumerycznych.

Zwróć uwagęWymagany jest tylko numer GTIN; Atrybuty batch, expiry i serial są opcjonalne.

OstrzeżenieChociaż wymagany jest tylko kod GTIN, niektórzy sprzedawcy detaliczni mają określone wytyczne dotyczące zgodności. Sprawdź ich wymagania podczas tworzenia BARCODE-ów.

Jak wygenerować kod GSI-128 za pomocą IronBarcode?

Generowanie BARCODE-a GS1-128 jest łatwe; przekaż BarcodeEncoding.Code128GS1 jako drugi parametr podczas wywoływania Create.

Poniższy przykład przedstawia pełną wartość zgodną ze standardem GS1-128, zawierającą wszystkie cztery atrybuty, i eksportuje ją jako obraz.

Zwróć uwagęNawiasy kwadratowe są wymagane dla każdego prefiksu numerycznego, w przeciwnym razie sekcja ta nie zostanie rozpoznana jako prawidłowy atrybut.

Zwróć uwagęIronBarcode automatycznie wstawia separator FNC1 podczas tworzenia kodu GSI-128.

:path=/static-assets/barcode/content-code-examples/how-to/create-gsi-128-barcode.cs
using IronBarCode;

// Valid GS1-128 String: GTIN + Expiry + Batch + Serial Number
string gs1Value = "(01)01234567890128(17)251231(10)BATCH001(21)111111";

// Create the barcode
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(gs1Value, BarcodeEncoding.Code128GS1);

// Display the value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("gsi128-sample.jpg");
Imports IronBarCode

' Valid GS1-128 String: GTIN + Expiry + Batch + Serial Number
Dim gs1Value As String = "(01)01234567890128(17)251231(10)BATCH001(21)111111"

' Create the barcode
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(gs1Value, BarcodeEncoding.Code128GS1)

' Display the value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("gsi128-sample.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik GSI-128?

GS1-128 Przykładowy wynik

Jak naprawić błędy formatowania GSI-128?

Jeśli ciąg znaków nie jest zgodny ze standardami GS1-128, IronBarcode zgłasza wyjątek. Sprawdź wartość ciągu znaków, korzystając z powyższej tabeli, i odpowiednio ją zmodyfikuj.

Wyjątek GS1-128

Jak utworzyć BarCodes Code 39?

Kod 39 jest jednym z pierwszych standardów BARCODE-ów alfanumerycznych, znanym ze swojej niezawodności. Powszechnie stosowane w sektorze motoryzacyjnym i obronnym. Możliwość kodowania liter i cyfr bez cyfr kontrolnych sprawia, że rozwiązanie to jest proste w zastosowaniu w środowiskach, w których integralność danych jest weryfikowana innymi metodami.

Jednak kod 39 ma ograniczony zestaw znaków. Dopuszczalne są wyłącznie wielkie litery alfabetu angielskiego, cyfry oraz symbole, takie jak /, ., -, itp. Tryb standardowy nie obsługuje małych liter. Aby uzyskać informacje na temat odczytu standardowych i rozszerzonych BARCODE-ów Code 39, zapoznaj się z naszym przewodnikiem po odczycie BARCODE-ów Code 39.

Jakiego kodu potrzebuję dla Code 39?

Aby wygenerować Code39, przekaż BarcodeEncoding.Code39 jako drugi parametr podczas używania Create.

Oto przykład:

:path=/static-assets/barcode/content-code-examples/how-to/create-code-39-barcode.cs
using IronBarCode;

// Specify Code39 Format
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("IRON-1234", BarcodeEncoding.Code39);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("code39.jpg");
Imports IronBarCode

' Specify Code39 Format
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("IRON-1234", BarcodeEncoding.Code39)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("code39.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik kodu 39?

Przykładowy wynik Code39

Dlaczego pojawiają się błędy Code 39?

Wyjątek Code39

Jeśli ciąg znaków nie jest zgodny ze standardem Code39, IronBarcode zgłasza ten wyjątek.

OstrzeżenieIronBarcode obecnie nie obsługuje generowania rozszerzonych kodów kreskowych Code39; Obsługiwany jest tylko tryb czytania. Aby zapoznać się z odczytem rozszerzonego i standardowego kodu 39, zapoznaj się z naszym samouczkiem dotyczącym odczytu kodu 39
. )}]

Jak utworzyć BarCodes Code 93?

Kod 93 stanowi ulepszenie kodu 39, powszechnie stosowanego w logistyce i na etykietach komponentów elektronicznych, gdzie przestrzeń jest ograniczona, ale wymagane są dane alfanumeryczne. Zwiększona gęstość sprawdza się w przypadku małych elementów elektronicznych, gdzie liczy się każda przestrzeń.

Akceptuje pełne znaki ASCII, wielkie litery alfabetu angielskiego, cyfry i symbole. Oferuje większą gęstość niż Code 39.

Jakiego kodu potrzebuję dla kodu 93?

Aby wygenerować Code93, przekaż BarcodeEncoding.Code93 jako drugi parametr podczas używania Create:

:path=/static-assets/barcode/content-code-examples/how-to/create-code-93-barcode.cs
using IronBarCode;

// Valid Input: Uppercase A-Z, 0-9, specific symbols
string code93Value = "ELEC-COMP-99";

// Create Code 93
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(code93Value, BarcodeWriterEncoding.Code93);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("code93.jpg");
Imports IronBarCode

' Valid Input: Uppercase A-Z, 0-9, specific symbols
Dim code93Value As String = "ELEC-COMP-99"

' Create Code 93
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(code93Value, BarcodeWriterEncoding.Code93)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("code93.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik działania Code 93?

Przykładowy wynik Code93

Jak tworzyć barcodes CodaBar?

Codabar jest odporny na słabą jakość druku i jest szeroko stosowany w bankach krwi i bibliotekach. Tolerancja błędów tego formatu jest idealna w przypadku drukarek niskiej jakości lub zużycia.

Zmienna długość, ale ograniczony zestaw znaków. Zawiera tylko cyfry (0-9) oraz symbole (-, $, :, /, ., +). Znaki startu/zakończenia A, B, C, D wskazują początek lub koniec. Te znaki nie mogą pojawiać się w środku BARCODE'a.

Jakiego kodu potrzebuję do CodaBar?

Aby wygenerować Codabar, przekaż BarcodeEncoding.Codabar jako drugi parametr podczas używania Create:

:path=/static-assets/barcode/content-code-examples/how-to/create-codabar-barcode.cs
using IronBarCode;

// Valid Input: Numbers 0-9 and symbols -$:/.+ IronBarcode automatically appends by A, B, C, or D
string codabarValue = "10500200";

// Create Codabar
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(codabarValue, BarcodeWriterEncoding.Codabar);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("codabar.jpg");
Imports IronBarCode

' Valid Input: Numbers 0-9 and symbols -$:/.+ IronBarcode automatically appends by A, B, C, or D
Dim codabarValue As String = "10500200"

' Create Codabar
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(codabarValue, BarcodeWriterEncoding.Codabar)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("codabar.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik działania CodaBar?

Przykładowy wynik dla kodu Codabar

Dlaczego CodaBar wyświetla błędy?

Jeśli dane wejściowe zawierają litery, IronBarcode zgłasza wyjątek informujący, że akceptuje wyłącznie wartości liczbowe.

Wyjątek dotyczący kodu kreskowego Codabar

Jak tworzyć BarCodes DataBar?

GS1 DataBar (dawniej RSS-14) jest bardziej kompaktowy i przeznaczony do numerów identyfikacyjnych produktów. Przydatne w przypadku małych produktów, takich jak świeże warzywa i owoce, gdzie tradycyjne BARCODE zajmują zbyt dużo miejsca. Dowiedz się więcej o nowych możliwościach formatowania w naszej aktualizacji dotyczącej nowych formatów.

Podobnie jak GS1-128, ma ściśle określony format kodowania. Wariant Omnidirectional zawiera wyłącznie atrybut kodu produktu.

Jaki format wymaga GS1-DataBar?

(Prefiks numeryczny-01) GTIN (Global Trade Item Number): Unikalny identyfikator produktu. Musi składać się dokładnie z 14 cyfr.

OstrzeżenieStandard "GS1 DataBar Omnidirectional" może zawierać wyłącznie GTIN (01). Użyj GS1 DataBar Expanded dla dodatkowych atrybutów.

Jak wygenerować kod kreskowy GS1 DataBar?

Aby wygenerować GS1 DataBar, przekaż BarcodeEncoding.DataBar jako drugi parametr podczas używania Create:

:path=/static-assets/barcode/content-code-examples/how-to/create-gs1-databar-barcode.cs
using IronBarCode;

// Valid Input: Exactly 14 digits (GTIN). IronBarcode will calculate and append the correct check digit
string databarValue = "0123456789012";

// Create GS1 DataBar
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(databarValue, BarcodeWriterEncoding.DataBar);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("databar.jpg");
Imports IronBarCode

' Valid Input: Exactly 14 digits (GTIN). IronBarcode will calculate and append the correct check digit
Dim databarValue As String = "0123456789012"

' Create GS1 DataBar
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(databarValue, BarcodeWriterEncoding.DataBar)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("databar.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik działania DataBar?

Przykładowy wynik GS1-Databar

Jak utworzyć BarCodes EAN-13?

EAN-13 to standardowy BARCODE stosowany na całym świecie w handlu detalicznym dla produktów konsumenckich — jeden z najczęściej używanych formatów. W przypadku aplikacji detalicznych sprawdź, jak dostosować styl BarCode do wymagań marki.

EAN-13 wymaga ścisłego przestrzegania licencji. Nie można generować numerów EAN-13 do użytku publicznego bez uzyskania licencji na prefiks firmowy GS1, który gwarantuje unikalność BARCODE-ów. Zawiera tylko 13 cyfr. Aby uzyskać informacje na temat licencji, odwiedź naszą stronę poświęconą licencjom.

Kod EAN-13 podlega określonym zasadom formatowania.

Jaki format wymaga EAN-13?

BarCode EAN-13 składa się z czterech części:

Prefiks GS1 (pierwsze 3 cyfry): identyfikuje organizację członkowską GS1, zazwyczaj kraj rejestracji. Przykłady: 000-019 (USA/Kanada – zgodne z UPC), 500-509 (Wielka Brytania), 450-459 (Japonia).

Kod producenta: Kod o zmiennej długości przypisany przez GS1.

Kod produktu: Przypisany przez producenta do konkretnego produktu.

Cyfra kontrolna (ostatnia cyfra): obliczana na podstawie pierwszych 12 cyfr przy użyciu algorytmu modulo 10. Zapewnia dokładny odczyt skanera.

OstrzeżeniePrefiksy 200–299 są zarezerwowane do ograniczonego obiegu. Nie używaj tych przedrostków w środowisku produkcyjnym podczas generowania BARCODE-ów EAN-13.

Jak wygenerować kod EAN-13?

Aby wygenerować EAN-13, przekaż BarcodeEncoding.EAN13 jako drugi parametr podczas używania Create:

:path=/static-assets/barcode/content-code-examples/how-to/create-ean13-barcode.cs
using IronBarCode;

// Valid Input: 12 digits (library calculates 13th check digit) or full 13 digits.
string ean13Value = "4006381333931";

// Create EAN-13
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(ean13Value, BarcodeWriterEncoding.EAN13);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("ean13.jpg");
Imports IronBarCode

' Valid Input: 12 digits (library calculates 13th check digit) or full 13 digits.
Dim ean13Value As String = "4006381333931"

' Create EAN-13
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(ean13Value, BarcodeWriterEncoding.EAN13)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("ean13.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik EAN-13?

Przykładowy wynik dla kodu EAN-13

Jak naprawić błędy formatu EAN-13?

IronBarcode zgłasza wyjątek w przypadku wartości nienumerycznych.

Rozwiązywanie problemów z kodami EAN-13

Jak utworzyć BarCodes EAN-8?

EAN-8 to skondensowana wersja EAN-13 przeznaczona dla małych produktów konsumenckich, w przypadku których pełnowymiarowe BARCODE-y zajmują zbyt dużo miejsca. Często spotykane w przypadku ołówków i kosmetyków, gdzie miejsce na opakowaniu jest ograniczone.

W przeciwieństwie do Code 128 lub Code 39, EAN-8 wykorzystuje konkretne, przypisane prefiksy zamiast dowolnych liczb.

EAN-8 wykorzystuje ścisły 8-cyfrowy format: 7 cyfr danych i 1 cyfra kontrolna. Tylko liczby.

Jakiego kodu potrzebuję dla EAN-8?

Tworzenie EAN-8 wymaga przekazania BarcodeEncoding.EAN8 jako drugi parametr podczas używania Create:

:path=/static-assets/barcode/content-code-examples/how-to/create-ean8-barcode.cs
using IronBarCode;

// Valid Input: 7 digits (library calculates 8th check digit).
string ean8Value = "1234567";

// Create EAN-8
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(ean8Value, BarcodeWriterEncoding.EAN8);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("ean8.jpg");
Imports IronBarCode

' Valid Input: 7 digits (library calculates 8th check digit).
Dim ean8Value As String = "1234567"

' Create EAN-8
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(ean8Value, BarcodeWriterEncoding.EAN8)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("ean8.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik EAN-8?

Przykładowy wynik dla EAN-8

Dlaczego pojawiają się błędy dotyczące długości kodu EAN-8?

Jeśli dane wejściowe zawierają więcej niż 8 znaków numerycznych, IronBarcode zgłasza wyjątek informujący, że EAN-8 wymaga 8 znaków.

Wyjątek EAN-8

Jak utworzyć inteligentne BarCodes Mail?

Intelligent Mail BarCode (IMB) to standard USPS służący do automatyzacji sortowania i śledzenia przesyłek pocztowych. W przeciwieństwie do tradycyjnych BarCodes o modulowanej szerokości, IMB wykorzystuje kreski o modulowanej wysokości. Obowiązkowe zniżki cenowe na listy i paczki płaskie w przypadku automatyzacji. Obsługuje tylko określone długości liczbowe: 20, 25, 29 lub 31 cyfr.

Używa określonych przedrostków numerycznych do definiowania informacji.

Jakiego formatu wymaga Intelligent Mail?

(Pierwsze 2 cyfry) Identyfikator BarCode: Identyfikator BarCode. Dokładnie 2 cyfry. Zazwyczaj 00 dla standardowej poczty komercyjnej.

(Kolejne 3 cyfry) Identyfikator typu usługi (STID): Określa klasę przesyłki (np. First Class, Marketing Mail) oraz usługi (np. korekta adresu, śledzenie przesyłki). Ma kluczowe znaczenie dla uzyskania zniżek pocztowych.

(Kolejne 6 lub 9 cyfr) Identyfikator nadawcy (MID): 6- lub 9-cyfrowy numer przypisany Twojej firmie przez USPS.

(Kolejne 6 lub 9 cyfr) Numer seryjny: identyfikuje unikalną przesyłkę pocztową.

(Ostatnie 0, 5, 9 lub 11 cyfr) Kod trasy: Kod ZIP dostawy.

Jak wygenerować inteligentny kod pocztowy?

Aby wygenerować IMB, przekaż BarcodeEncoding.IntelligentMail jako drugi parametr podczas wywoływania Create:

:path=/static-assets/barcode/content-code-examples/how-to/create-imb-barcode.cs
using IronBarCode;

// Valid Input: 20, 25, 29, or 31 digits.
// Format: Barcode ID(2) + Service(3) + Mailer ID(6/9) + Serial(9/6) + Routing Zip(0/5/9/11)
string imbValue = "00270123456200800001";

// Create Intelligent Mail
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(imbValue, BarcodeWriterEncoding.IntelligentMail);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("imb.jpg");
Imports IronBarCode

' Valid Input: 20, 25, 29, or 31 digits.
' Format: Barcode ID(2) + Service(3) + Mailer ID(6/9) + Serial(9/6) + Routing Zip(0/5/9/11)
Dim imbValue As String = "00270123456200800001"

' Create Intelligent Mail
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(imbValue, BarcodeWriterEncoding.IntelligentMail)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("imb.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik Intelligent Mail?

Przykładowy wynik działania Intelligent Mail

Jak naprawić błędy formatu Intelligent Mail?

IronBarcode zgłasza wyjątek, jeśli format jest nieprawidłowy. Sprawdź wartość ciągu znaków pod kątem zgodności z powyższym formatem i spróbuj ponownie po wprowadzeniu zmian.

Wyjątek Intelligent Mail

Jak utworzyć BarCodes MSI?

MSI jest powszechnie stosowany na etykietach produktów w sklepach detalicznych oraz w kontroli zapasów magazynowych, rzadko natomiast na produktach konsumenckich. Jego prostota i niezawodność sprawiają, że jest popularny w operacjach wewnętrznych. W przypadku problemów z rozpoznawaniem plików MSI zapoznaj się z naszym przewodnikiem dotyczącym rozwiązywania problemów z BARCODE MSI.

MSI to tylko liczby; Nie wolno używać liter ani symboli. Długość zmienna, zazwyczaj 10–15 cyfr.

Jakiego kodu potrzebuję dla MSI?

Aby wygenerować MSI, przekaż BarcodeEncoding.MSI jako drugi parametr podczas wywoływania Create:

:path=/static-assets/barcode/content-code-examples/how-to/create-msi-barcode.cs
using IronBarCode;

// Valid Input: Numeric digits only. Variable length.
string msiValue = "1234567890";

// Create MSI
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(msiValue, BarcodeWriterEncoding.MSI);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("msi.jpg");
Imports IronBarCode

' Valid Input: Numeric digits only. Variable length.
Dim msiValue As String = "1234567890"

' Create MSI
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(msiValue, BarcodeWriterEncoding.MSI)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("msi.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik MSI?

Przykładowy wynik MSI

Jak utworzyć BarCodes UPC-A?

UPC-A to standardowy BARCODE stosowany w handlu detalicznym w Stanach Zjednoczonych i Kanadzie. 12-cyfrowy podzbiór kodu EAN-13. Najczęściej spotykany na produktach w supermarketach w Ameryce Północnej. Powszechne stosowanie sprawia, że jest to niezbędne na rynkach północnoamerykańskich.

Podobnie jak EAN-13, zazwyczaj przypisywany, a nie generowany.

Kod UPC-A zawiera dokładnie 12 cyfr. Nie akceptujemy listów.

Jaki format wymaga UPC-A?

Znak systemu liczbowego (1): Określa typ produktu (0, 1, 6, 7, 8 dla standardowej sprzedaży detalicznej; 2 dla wagi losowej; 3 dla leków; 5 za kupony).

Kod producenta (5): Przypisany przez GS1.

Kod produktu (5): Przypisany przez producenta.

Cyfra kontrolna (1): Obliczona suma kontrolna modulo 10.

Jak wygenerować kod UPC-A?

Aby wygenerować UPC-A, przekaż BarcodeEncoding.UPCA jako drugi parametr podczas wywoływania Create:

:path=/static-assets/barcode/content-code-examples/how-to/create-upc-a-barcode.cs
using IronBarCode;

// Valid Input: 11 digits (library calculates 12th check digit) or full 12 digits
string upcaValue = "01234567890";

// Create UPC-A
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(upcaValue, BarcodeWriterEncoding.UPCA);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG
barcode.SaveAsJpeg("upca.jpg");
Imports IronBarCode

' Valid Input: 11 digits (library calculates 12th check digit) or full 12 digits
Dim upcaValue As String = "01234567890"

' Create UPC-A
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(upcaValue, BarcodeWriterEncoding.UPCA)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG
barcode.SaveAsJpeg("upca.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik w formacie UPC-A?

Przykładowy wynik dla UPC-A

Dlaczego pojawiają się błędy dotyczące długości kodu UPC-A?

IronBarcode zgłasza błąd, jeśli długość wartości liczbowej przekracza 13 znaków.

Wyjątek UPC-A

Jak utworzyć BarCodes UPC-E?

UPC-E to kompaktowa wersja kodu UPC-A przeznaczona dla małych opakowań detalicznych, takich jak puszki po napojach, gdzie pełny 12-cyfrowy kod UPC-A jest zbyt duży. Algorytm kompresji koduje te same informacje, zajmując mniej więcej połowę miejsca.

Podobnie jak UPC-A, wyłącznie numeryczny. Nie akceptujemy liter ani symboli.

Jakiego kodu potrzebuję dla UPC-E?

Aby wygenerować UPC-E, przekaż BarcodeEncoding.UPCE jako drugi parametr podczas wywoływania Create:

:path=/static-assets/barcode/content-code-examples/how-to/create-upc-e-barcode.cs
using IronBarCode;

// Valid input: 8 digits or less in which the last digit is a check digit
// IronBarcode automatically calculates the check digit if only 7 digits are provided.
string upceValue = "0123456";

// Create UPC-E
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode(upceValue, BarcodeWriterEncoding.UPCE);

// Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode();

// Save as a JPG file
barcode.SaveAsJpeg("upce.jpg");
Imports IronBarCode

' Valid input: 8 digits or less in which the last digit is a check digit
' IronBarcode automatically calculates the check digit if only 7 digits are provided.
Dim upceValue As String = "0123456"

' Create UPC-E
Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(upceValue, BarcodeWriterEncoding.UPCE)

' Stamp barcode value below the barcode
barcode.AddBarcodeValueTextBelowBarcode()

' Save as a JPG file
barcode.SaveAsJpeg("upce.jpg")
$vbLabelText   $csharpLabel

Jak wygląda wynik w formacie UPC-E?

Przykladowe wyjscie UPC-E

Jak naprawić błędy długości UPC-E?

IronBarcode zgłasza błąd, jeśli cyfry numeryczne przekraczają 8.

Rozwiązywanie problemów z UPC-E

Jakie sa rozne typy kodow kreskowych 1D?

Imię Format Powszechne zastosowanie Ograniczenia i pułapki
Code 128 Alfanumeryczny
Pełne ASCII 128 wspierane. Zmienna dlugosc. Wysoka gestosc.
Logistyka wewnetrzna, etykiety wysylkowe, sledzenie zasobow, karty ID.
  • Brak Unicode: Nie może natywnie kodować znaków specjalnych (jak chińskie znaki lub emoji) bez łamania zgodności ze skanerem.
  • Jakość druku: Wymaga wysokiej rozdzielczości; niski DPI druk termiczny może powodować problemy z czytelnością.
GS1-128 Strukturalny alfanumeryczny
Code 128 z prowadzącym FNC1 + Identyfikatory aplikacji (np. (01)).
Globalny lancuch dostaw (Walmart/Amazon), etykiety palet, EDI.
  • Brak FNC1: Musi zaczynać się od niewidzialnego znaku FNC1 inaczej skanery odczytuja go jako surowy tekst.
  • Nawiasy: Nie koduj nawiasow () wokol AI's; sa one tylko do odczytu dla czlowieka.
Code 39 Alfanumeryczny (Ograniczony)
Wielkie litery A-Z, 0-9 oraz -. $ / + % spacja.
Motoryzacja (AIAG), obrona (LOGMARS), dziedzinowe ID przemysłowe.
  • Brak małych liter: Tryb standardowy nie działa, jeśli wpiszesz 'a'. Tryb rozszerzony wspiera to, ale wymaga specyficznej konfiguracji skanera.
  • Niska gęstość: Powoduje bardzo szerokie kody kreskowe, nie nadają się do małych etykiet.
Code 93 Alfanumeryczny
Podobny do Code 39, ale z większą gęstością.
Elektronika (PCB), poczta kanadyjska, i produkcja wewnętrzna.
  • Cyfry kontrolne: Wymaga dwoch obowiazkowych cyfr kontrolnych (C i K). Nie obliczaj ich ręcznie; pozwól, aby biblioteką się tym zajęła.
  • Wsparcie skanera: Często jest domyślnie wyłączone na skanerach, aby zapobiec konfliktom z Code 39.
Codabar Numeryczny + symboły
0-9 i - $ : /. +. Start/Stop: A, B, C, D.
Banki krwi, biblioteki, FedEx Airbills (legacy).
  • Krótkie odczyty: Podatny na błędy, gdy skaner odczytuje część kodu (np. odczytanie "123" z "12345").
  • Brak liter: Nie może kodować danych literami, tylko A-D jako delimitery.
GS1 DataBar Numeryczny (14 cyfr)
Koduje tylko GTIN-14. Niezwykle kompaktowy.
Luzem owoce (naklejki na owocach), małe kosmetyki i pojemniki na leki.
  • Brak atrybutów: Standardowa wersja omnidirectional nie może zawierać danych o dacie końca przydatności czy partii (wymaga wersji rozszerzonej).
  • Scisly input: Musi mieć dokładnie 14 cyfr.
EAN-13 Numeryczny (13 cyfr)
Kraj + Producent + Produkt + Cyfra kontrolna.
Globalne punkty sprzedaży detalicznej (supermarkety).
  • Licencjonowanie: Wymaga opłaconego prefiksu firmy GS1.
  • Ograniczone prefiksy: Prefiksy 200-299 sa przeznaczone wyłącznie do użytku wewnątrz sklepu i nie działają w globalnym lancuchu dostaw.
EAN-8 Numeryczny (8 cyfr)
7 danych + 1 cyfra kontrolna.
Male opakowania detaliczne (gumy do zucia, ołówki).
  • Dostepność: Trudno dostępne; GS1 wydaje je tylko wtedy, gdy twój produkt jest fizycznie zbyt mały dla EAN-13.
  • Dlugosc wejscia: Musi mieć dokładnie 7 lub 8 cyfr.
Inteligentna poczta Numeryczny (20, 25, 29, 31 cyfr)
Kody kreskowe o modulowanej wysokosci (4-stanowe).
USPS sortowanie i automatyzacja poczty.
  • Scisle dlugosci: Wejście musi pasować do dokładnych pól USPS (ID kodu kreskowego, STID, MID, serial, Zip).
  • STID '234': Nie używaj tego przykładowego ID w produkcji; może prowadzić do odrzuconej poczty lub utraconych zniżek.
MSI (Plessey) Tylko numeryczny
Zmienna długość.
Etykiety na półkach sklepowych, pojemniki magazynowe.
  • Zamęt z kontrolą sumy kontrolnej: Obsługuje Mod 10, Mod 11, Mod 1010 itp. Musisz dokładnie wiedzieć, jaki twoja skaner oczekuje.
  • Niezawodność: Słaby wskaźnik odczytu w porównaniu do nowoczesnych kodów.
UPC-A Numeryczny (12 cyfr)
11 danych + 1 cyfra kontrolna.
Punkt sprzedazy detalicznej w Ameryce Północnej.
  • Region: Głównie USA/Kanada. Globalni sprzedawcy powinni używać EAN-13.
  • Wiodące zera: Technicznie, EAN-13 zaczyna się od 0.
UPC-E Numeryczny (6 cyfr)
Skondensowany format.
Male opakowania detaliczne (puszki z napojami) w USA/Kanadzie.
  • Zasady kompresji: Nie można po prostu 'przekonwertować' dowolnego UPC-A. Twój numer musi mieć określony wzór zer, aby był kompresowalny.
  • System numerowy: Obsługuje tylko system numerowy 0 lub 1.

Często Zadawane Pytania

Jakie typy jednowymiarowych kodów kreskowych można generować?

IronBarcode może generować wszystkie główne formaty jednowymiarowych kodów kreskowych, w tym Code 128, GS1-128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, Intelligent Mail, MSI, Codabar i DataBar. Każdy format nadaje się do różnych zastosowań - Code 128 do etykiet wysyłkowych, EAN-8 dla małych produktów oraz Intelligent Mail Barcode dla usług pocztowych.

Jak stworzyć podstawowy jednowymiarowy kod kreskowy w C#?

Aby utworzyć jednowymiarowy kod kreskowy z IronBarcode, użyj metody BarcodeWriter.CreateBarcode() z ciągiem danych i określ typ kodu kreskowego za pomocą wyliczenia BarcodeEncoding. Na przykład: GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("HELLO-WORLD-123", BarcodeEncoding.Code128);

Jakie formaty wyjściowe są obsługiwane do zapisywania kodów kreskowych?

IronBarcode obsługuje zapisywanie wygenerowanych kodów kreskowych w wielu formatach, w tym JPEG, PNG i PDF. Można użyć metod takich jak SaveAsJpeg(), SaveAsPng() lub innych metod SaveAs, aby wyeksportować kod kreskowy w pożądanym formacie.

Czy mogę dostosować rozmiar i wygląd wygenerowanych kodów kreskowych?

Tak, IronBarcode pozwala dostosować wymiary kodu kreskowego za pomocą metody ResizeTo(). Można również zastosować opcjonalne stylizacje z rozmiarem czcionki i marginesami, aby upewnić się, że kod kreskowy spełnia określone wymagania.

Czy biblioteka zawiera automatyczną walidację formatów kodów kreskowych?

IronBarcode zawiera automatyczną walidację i kontrolę zgodności dla wszystkich obsługiwanych formatów kodów kreskowych. Zapewnia to, że wygenerowane kody kreskowe spełniają standardy branżowe i będą możliwe do zeskanowania przez standardowych czytników kodów kreskowych.

Dlaczego należy używać kodów kreskowych liniowych zamiast dwuwymiarowych?

Kody kreskowe liniowe pozostają standardem przemysłowym, ponieważ są szybkie, niezawodne i działają z niemal każdym skanerem. Ponieważ nie wymagają skomplikowanego przetwarzania obrazu, kody kreskowe liniowe IronBarcode doskonale radzą sobie w środowiskach o dużej prędkości, jak kolejki kasowe i taśmy przenośnikowe.

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
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 2,145,441 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package BarCode
uruchom przykład zobacz, jak twoje ciągi zamieniają się w kody kreskowe.