Wybór symbologii kodu kreskowego

Wybór symbologii kodu kreskowego

Wybór symboliki kodu kreskowego

Aspose.BarCode FOSS for Python obsługuje siedem symbolik. Każda jest dopasowana do różnych typów danych, środowisk skanowania i standardów branżowych. Ten przewodnik opisuje cechy każdej symboliki oraz kiedy ją stosować.


Przegląd symbolik

SymbologyTypZestaw znakówPojemność danychCyfra kontrolna
Code 1281DPełny ASCII (128 znaków)Zmienna długośćAutomatyczne (mod-103)
Code 391DA–Z, 0–9 i 7 znaków specjalnych (baza); pełny ASCII (rozszerzony)Zmienna długośćOptional
EAN-131DTylko cyfry (0–9)12 cyfr danych + 1 cyfra kontrolnaAutomatic
EAN-81DTylko cyfry (0–9)7 cyfr danych + 1 cyfra kontrolnaAutomatic
QR Code2DNumeryczne, alfanumeryczne, bajtowe i KanjiDo 7,089 znaków numerycznych / 4,296 znaków alfanumerycznychAutomatyczne (Reed-Solomon)
UPC-A1DTylko cyfry (0–9)11 cyfr danych + 1 cyfra kontrolnaAutomatic
UPC-E1DTylko cyfry (0–9)6 cyfr danych (skompresowane UPC-A)Automatic

Code 128

Code 128 koduje pełny zestaw znaków ASCII przy wysokiej gęstości. Używa trzech zestawów znaków (A, B, C) i automatycznie przełącza się między nimi w trybie AUTO.

Najlepsze dla: etykiet inwentaryzacyjnych, etykiet wysyłkowych, danych alfanumerycznych ogólnego przeznaczenia.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code128Options, Code128EncodeMode

service = BarcodeService()

# Auto mode — library selects optimal character sets
barcode = service.generate("code128", "INV-2026-00451")

# Force Code C for all-numeric data (higher density)
barcode = service.generate(
    "code128", "123456789012",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = barcode.to_svg()

Code 39

Code 39 obsługuje wielkie litery, cyfry i 7 znaków specjalnych w trybie podstawowym. Włącz full_ascii=True, aby zakodować cały zakres ASCII. Opcjonalna cyfra kontrolna może być dodana za pomocą add_check_digit.

Najlepsze dla: etykiet przemysłowych, identyfikatorów rządowych/militarnych (LOGMARS) oraz środowisk, w których prostota jest ważniejsza niż gęstość.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code39Options

service = BarcodeService()

# Base mode — uppercase + digits + special chars
barcode = service.generate("code39", "PART-A1234")

# Full ASCII mode with check digit
barcode = service.generate(
    "code39", "Part-a1234",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = barcode.to_svg()

EAN-13

EAN-13 jest standardowym kodem kreskowym dla produktów detalicznych poza Ameryką Północną. Koduje dokładnie 12 cyfr danych; 13. cyfra jest cyfrą kontrolną obliczaną automatycznie. Użyj Ean13Options, aby kontrolować zachowanie wprowadzania cyfry kontrolnej.

Najlepsze dla: identyfikacji produktów detalicznych, przedmiotów handlu międzynarodowego (GTIN-13).

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Ean13Options

service = BarcodeService()

# 12 data digits — check digit computed
barcode = service.generate("ean13", "590123412345")

# With rendering options for human-readable text
from aspose_barcode_foss import RenderOptions
svg = barcode.to_svg(RenderOptions(show_text=True, scale=2.0))

EAN-8

EAN-8 jest kompaktową wersją EAN-13, stosowaną na małych opakowaniach detalicznych, gdzie miejsce jest ograniczone. Koduje 7 cyfr danych oraz 1 cyfrę kontrolną.

Najlepsze dla: małych produktów detalicznych, przedmiotów z ograniczoną przestrzenią na etykietę.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("ean8", "9638507")
svg = barcode.to_svg()

QR Code

QR Code jest symbologią macierzy 2D, która przechowuje duże ilości danych w małym obszarze. Obsługuje cztery tryby kodowania za pomocą QrEncodeMode: NUMERIC, ALPHANUMERIC, BYTE i KANJI. Korekcja błędów jest konfigurowalna za pomocą QrErrorCorrectionLevel (L, M, Q, H).

Najlepsze dla: adresów URL, aplikacji mobilnych, materiałów marketingowych oraz wszelkich przypadków użycia wymagających dużej pojemności danych lub znaków nie-ASCII.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

service = BarcodeService()

# Default settings
barcode = service.generate("qrcode", "https://example.com")

# High error correction for printed labels
barcode = service.generate(
    "qrcode", "https://example.com/product/12345",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.H,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)
png = barcode.to_png()

UPC-A

UPC-A jest standardowym kodem kreskowym dla produktów detalicznych w Ameryce Północnej. Koduje 11 cyfr danych plus 1 cyfrę kontrolną. UPC-A jest podzbiorem EAN-13 z wiodącym zerem.

Najlepsze dla: identyfikacji produktów detalicznych w Ameryce Północnej (GTIN-12).

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("upca", "01234567890")
svg = barcode.to_svg()

UPC-E

UPC-E jest skompresowaną formą UPC-A dla małych produktów detalicznych. Koduje 6 cyfr danych, eliminując zera z pełnej reprezentacji UPC-A.

Najlepiej dla: małych produktów detalicznych, kuponów i etykiet, gdzie przestrzeń jest ograniczona.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("upce", "0123456")
svg = barcode.to_svg()

Przewodnik decyzyjny

Użyj tej tabeli, aby wybrać właściwą symbologię dla swojej aplikacji:

Przypadek użyciaZalecana symbologiaReason
Inwentarz magazynowyCode 128Pełny ASCII, wysoka gęstość, zmienna długość
Etykiety wojskowe/LOGMARSCode 39Szerokie przyjęcie w systemach rządowych
Międzynarodowy handel detalicznyEAN-13GTIN-13 standard
Małe opakowanie detaliczneEAN-8 lub UPC-EKompaktowy rozmiar fizyczny
Handel detaliczny w Ameryce PółnocnejUPC-AGTIN-12 standard
Adresy URL i linki mobilneQR CodeWysoka pojemność, skanowanie 2D
Marketing i drukQR CodeMożliwe do zeskanowania kamerami telefonów
Numery seryjne wyłącznie numeryczneCode 128 (Code C)Najwyższa gęstość danych numerycznych

Wskazówki i najlepsze praktyki

  • Użyj Code 128 jako domyślnego dla etykiet ogólnego przeznaczenia — zapewnia najlepszy stosunek gęstości do kompatybilności wśród symbologii 1D
  • Dla produktów detalicznych użyj symbologii wymaganej na Twoim rynku: EAN-13 dla międzynarodowego, UPC-A dla Ameryki Północnej
  • Ustaw QrErrorCorrectionLevel.H dla kodów QR, które będą drukowane na etykietach narażonych na zużycie lub częściowe uszkodzenia
  • Zawsze pozwól bibliotece automatycznie obliczać cyfry kontrolne zamiast podawać je ręcznie
  • Użyj show_text=True w RenderOptions jako etykiet czytelnych dla człowieka, aby operatorzy mogli wizualnie weryfikować zeskanowane dane

Typowe problemy

ProblemPrzyczynaNapraw
InvalidInputError na EAN-13Znaki nienumeryczne w danychEAN-13 akceptuje tylko cyfry 0–9
InvalidInputError na Code 39Małe litery w trybie bazowymUstaw Code39Options(full_ascii=True)
QR code za dużyWersja zbyt niska dla długości danychPozwól bibliotece automatycznie wybrać wersję lub zwiększ QrOptions.version
UPC-E InvalidInputErrorDane nie pasują do wzorca tłumienia zerSprawdź 6-cyfrowy format UPC-E lub użyj UPC-A zamiast tego

FAQ

Czy mogę używać Code 128 dla danych wyłącznie numerycznych?

Tak. Tryb C kodu Code 128 (Code128EncodeMode.CODE_C) jest zoptymalizowany pod kątem danych wyłącznie numerycznych, kodując pary cyfr w jednym znaku symbolu dla maksymalnej gęstości.

Jaka jest różnica między EAN-13 a UPC-A?

UPC-A jest 12-cyfrowym podzbiorem EAN-13. Kod UPC-A może być przedstawiony jako EAN-13 z wiodącym zerem. Są funkcjonalnie kompatybilne w systemach skanowania handlu detalicznego.

Która symbologia obsługuje najwięcej danych?

QR Code obsługuje do 7,089 znaków numerycznych lub 4,296 znaków alfanumerycznych. Wszystkie symbologie 1D w tej bibliotece obsługują dane o zmiennej długości, ale QR Code ma największą pojemność.

Czy mogę mieszać symbologie w jednej aplikacji?

Tak. Utwórz jedną instancję BarcodeService i wywołaj generate() z różnymi nazwami symbologii dla każdego kodu kreskowego. Usługa rozwiązuje każdą symbologię przez SymbologyRegistry.


Podsumowanie API Reference

Klasa / MetodaOpis
BarcodeService.generate(symbology, data, encode, render)Wygeneruj kod kreskowy dla dowolnej zarejestrowanej symbologii
Code128OptionsOpcje kodowania dla Code 128 (tryb kodowania, GS1, ECI)
Code128EncodeModeWyliczenie: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC
Code39OptionsOpcje kodowania dla Code 39 (pełny ASCII, cyfra kontrolna)
Code39EncodeModeWyliczenie: BASE, FULL_ASCII
Ean13OptionsOpcje kodowania dla EAN-13 (wejście cyfry kontrolnej)
Ean8OptionsOpcje kodowania dla EAN-8 (wprowadzanie cyfry kontrolnej)
QrOptionsOpcje kodowania dla QR Code (korekcja błędów, wersja, maska, tryb)
QrEncodeModeEnum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
QrErrorCorrectionLevelEnum: L, M, Q, H
UpcaOptionsOpcje kodowania dla UPC-A
UpceOptionsOpcje kodowania dla UPC-E
SymbologyRegistryRozwiązuje nazwy symboliki i dostarcza definicje

Zobacz także

 Polski