Praca z opcjami kodowania

Praca z opcjami kodowania

Praca z opcjami kodowania

Każda symbologia kodu kreskowego w Aspose.BarCode FOSS dla Python ma dedykowaną klasę opcji, która kontroluje zachowanie kodowania. Wszystkie klasy opcji dziedziczą po EncodeOptions, które zapewniają właściwości gs1_enabled i eci_assignment_number wspólne dla symbologii.


Code128Options

Code128Options kontroluje, które zestawy znaków Code 128 wybiera enkoder. Właściwość encode_mode przyjmuje wartość wyliczeniową Code128EncodeMode.

ModeOpis
AUTOAutomatycznie wybiera najkompaktowsze kodowanie
CODE_ADuże litery, cyfry i znaki kontrolne
CODE_BDuże litery, małe litery i cyfry
CODE_CPary cyfr — zoptymalizowane dla danych wyłącznie numerycznych
CODE_ABPrzełącza pomiędzy Kodem A i Kodem B
CODE_ACPrzełącza pomiędzy Kodem A i Kodem C
CODE_BCPrzełącza pomiędzy Kodem B i Kodem C
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode

# AUTO mode — library picks the most compact encoding
bc_auto = barcode.code128("ABC123", encode=Code128Options(encode_mode=Code128EncodeMode.AUTO))

# CODE_C mode — compact encoding for digit-only data
bc_c = barcode.code128("9876543210", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C))

# CODE_B mode — full alphanumeric support
bc_b = barcode.code128("Hello World", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_B))

Code39Options

Code39Options kontroluje, czy enkoder używa podstawowego zestawu 43 znaków, czy pełnego rozszerzenia ASCII.

WłaściwośćTypDefaultOpis
full_asciiboolNoneWłącz tryb pełnego ASCII (zakres 128 znaków przy użyciu par shift)
add_check_digitboolNoneDodaj cyfrę kontrolną modulo-43
from aspose_barcode_foss import Code39Options

# Base mode — uppercase letters, digits, and a few special characters
bc_base = barcode.code39("CODE 39")

# Full ASCII mode — encodes the full 128-character ASCII range
bc_full = barcode.code39(
    "Hello, World!",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)

QrOptions

QrOptions ma najobszerniejszą powierzchnię konfiguracyjną spośród wszystkich symbologii.

WłaściwośćTypValues
error_correction_levelQrErrorCorrectionLevelL (7%), M (15%), Q (25%), H (30%)
encoding_modeQrEncodeModeAUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
versionint1–40 (kontroluje wymiary symbolu)
maskint0–7 (ręczny wybór wzoru maski)
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

# High error correction with byte encoding
bc = barcode.qr(
    "https://example.com",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.H,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)

# Numeric mode for digit-only data — most compact QR
bc_num = barcode.qr(
    "0123456789",
    encode=QrOptions(encoding_mode=QrEncodeMode.NUMERIC),
)

# Explicit version and mask
bc_v5 = barcode.qr(
    "TEST",
    encode=QrOptions(version=5, mask=3),
)

Ean13Options

Ean13Options kontroluje obsługę cyfry kontrolnej dla kodów kreskowych EAN-13.

WłaściwośćTypDefaultOpis
allow_check_digit_inputboolNoneAkceptuj 13-cyfrowe dane wejściowe z wstępnie obliczoną cyfrą kontrolną
from aspose_barcode_foss import Ean13Options

# 12 digits — library computes the 13th check digit
bc = barcode.ean13("590123412345")

# 13 digits — library validates the provided check digit
bc2 = barcode.ean13(
    "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

Ean8Options

Ean8Options działa identycznie jak Ean13Options, ale dla 8-cyfrowych kodów EAN. Dostarcz 7 cyfr danych (biblioteka oblicza 8-tą), lub ustaw allow_check_digit_input=True dla 8-cyfrowego wejścia.

from aspose_barcode_foss import Ean8Options

bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))

UpcaOptions i UpceOptions

UpcaOptions i UpceOptions podążają za tym samym wzorcem allow_check_digit_input co opcje EAN. UpceOptions ma także własność number_system.

from aspose_barcode_foss import UpcaOptions, UpceOptions

# UPC-A: 11 digits, library adds check digit
bc_a = barcode.upca("01234567890")

# UPC-E with pre-computed check digit
bc_e = barcode.upce(
    "01234565",
    encode=UpceOptions(allow_check_digit_input=True),
)

EncodeOptions Podstawowe właściwości

Wszystkie klasy opcji dziedziczą te właściwości z EncodeOptions:

WłaściwośćTypOpis
gs1_enabled`boolNone`
eci_assignment_number`intNone`

Wskazówki i najlepsze praktyki

  • Użyj Code128EncodeMode.AUTO, chyba że masz konkretny powód, aby ograniczyć zestawy znaków — zapewnia najkrótszy kod kreskowy dla dowolnych danych wejściowych.
  • Ustaw QrErrorCorrectionLevel.H dla kodów QR, które będą drukowane na powierzchniach podatnych na uszkodzenia.
  • Pozwól bibliotece domyślnie obliczać cyfry kontrolne — ustaw allow_check_digit_input=True tylko wtedy, gdy otrzymujesz wstępnie zweryfikowane dane z innego systemu.
  • Użyj QrEncodeMode.NUMERIC dla danych QR zawierających wyłącznie cyfry, aby zmniejszyć rozmiar symbolu.

Typowe problemy

ProblemPrzyczynaNaprawa
InvalidInputError na Code 39Wejście zawiera małe literyUstaw full_ascii=True w Code39Options
QR code za dużyUstawiona wersja jest zbyt niska dla długości danychUsuń jawny version lub zwiększ go
Nieprawidłowa cyfra kontrolna w EAN-13Wejście 13-cyfrowe bez allow_check_digit_input=TruePodaj 12 cyfr (auto) lub ustaw opcję na True
SymbologyNotFoundErrorBłędnie napisana nazwa symboliki w generate()Użyj jednego z: code128, code39, ean13, ean8, qr, upca, upce

Zobacz także

 Polski