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
| Symbology | Typ | Zestaw znaków | Pojemność danych | Cyfra kontrolna |
|---|---|---|---|---|
| Code 128 | 1D | Pełny ASCII (128 znaków) | Zmienna długość | Automatyczne (mod-103) |
| Code 39 | 1D | A–Z, 0–9 i 7 znaków specjalnych (baza); pełny ASCII (rozszerzony) | Zmienna długość | Optional |
| EAN-13 | 1D | Tylko cyfry (0–9) | 12 cyfr danych + 1 cyfra kontrolna | Automatic |
| EAN-8 | 1D | Tylko cyfry (0–9) | 7 cyfr danych + 1 cyfra kontrolna | Automatic |
| QR Code | 2D | Numeryczne, alfanumeryczne, bajtowe i Kanji | Do 7,089 znaków numerycznych / 4,296 znaków alfanumerycznych | Automatyczne (Reed-Solomon) |
| UPC-A | 1D | Tylko cyfry (0–9) | 11 cyfr danych + 1 cyfra kontrolna | Automatic |
| UPC-E | 1D | Tylko 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życia | Zalecana symbologia | Reason |
|---|---|---|
| Inwentarz magazynowy | Code 128 | Pełny ASCII, wysoka gęstość, zmienna długość |
| Etykiety wojskowe/LOGMARS | Code 39 | Szerokie przyjęcie w systemach rządowych |
| Międzynarodowy handel detaliczny | EAN-13 | GTIN-13 standard |
| Małe opakowanie detaliczne | EAN-8 lub UPC-E | Kompaktowy rozmiar fizyczny |
| Handel detaliczny w Ameryce Północnej | UPC-A | GTIN-12 standard |
| Adresy URL i linki mobilne | QR Code | Wysoka pojemność, skanowanie 2D |
| Marketing i druk | QR Code | Możliwe do zeskanowania kamerami telefonów |
| Numery seryjne wyłącznie numeryczne | Code 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.Hdla 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=TruewRenderOptionsjako etykiet czytelnych dla człowieka, aby operatorzy mogli wizualnie weryfikować zeskanowane dane
Typowe problemy
| Problem | Przyczyna | Napraw |
|---|---|---|
InvalidInputError na EAN-13 | Znaki nienumeryczne w danych | EAN-13 akceptuje tylko cyfry 0–9 |
InvalidInputError na Code 39 | Małe litery w trybie bazowym | Ustaw Code39Options(full_ascii=True) |
| QR code za duży | Wersja zbyt niska dla długości danych | Pozwól bibliotece automatycznie wybrać wersję lub zwiększ QrOptions.version |
UPC-E InvalidInputError | Dane nie pasują do wzorca tłumienia zer | Sprawdź 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 / Metoda | Opis |
|---|---|
BarcodeService.generate(symbology, data, encode, render) | Wygeneruj kod kreskowy dla dowolnej zarejestrowanej symbologii |
Code128Options | Opcje kodowania dla Code 128 (tryb kodowania, GS1, ECI) |
Code128EncodeMode | Wyliczenie: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC |
Code39Options | Opcje kodowania dla Code 39 (pełny ASCII, cyfra kontrolna) |
Code39EncodeMode | Wyliczenie: BASE, FULL_ASCII |
Ean13Options | Opcje kodowania dla EAN-13 (wejście cyfry kontrolnej) |
Ean8Options | Opcje kodowania dla EAN-8 (wprowadzanie cyfry kontrolnej) |
QrOptions | Opcje kodowania dla QR Code (korekcja błędów, wersja, maska, tryb) |
QrEncodeMode | Enum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
QrErrorCorrectionLevel | Enum: L, M, Q, H |
UpcaOptions | Opcje kodowania dla UPC-A |
UpceOptions | Opcje kodowania dla UPC-E |
SymbologyRegistry | Rozwiązuje nazwy symboliki i dostarcza definicje |