Работа с опции за кодиране

Работа с опции за кодиране

Работа с опции за кодиране

Всяка символика на баркод в Aspose.BarCode FOSS за Python има специален клас опции, който контролира кодиращото поведение. Всички класове опция наследяват от EncodeOptions, което предвижда: gs1_enabled и в) eci_assignment_number свойства, които се споделят в символиката.


Code128Options

Code128Options Контроли, които код 128 символ задава кодер избира. encode_mode Имотът приема: Code128EncodeMode Enum стойност.

ModeDescription
AUTOИзбира най-комплексната кодировка автоматично.
CODE_AГолямо писмо, цифри и контролни знаци
CODE_BГолямо, малко и цифри
CODE_CЦифрови двойки оптимизирани само за цифрови данни
CODE_ABПревключване между код А и код Б
CODE_ACПревключване между код А и код С
CODE_BCПревключване между код B и код 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 контролира дали кодерът използва базата на 43-знака или разширението Full ASCII.

PropertyTypeDefaultDescription
full_asciiboolNoneВключете пълен ASCII режим (обхват от 128 знака чрез двойки смяна)
add_check_digitboolNoneДобавете номер на модула-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),
)

QrОпции

QrOptions има най-голяма конфигурация на повърхността сред всички символи.

PropertyTypeValues
error_correction_levelQrErrorCorrectionLevelL (7%), M (15%), Q (25%), H (30%)
encoding_modeQrEncodeModeAUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
versionint1–40 (controls symbol dimensions)
maskint0–7 (manual mask pattern selection)
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 Контроли за обработка на контролни цифри при баркодове EAN-13.

PropertyTypeDefaultDescription
allow_check_digit_inputboolNoneПриемане на 13-цифрен вход с предварително изчислена контролна цифра
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 работи идентично с Ean13Options За да се осигури 7 цифри полезен товар (библиотеката изчислява 8-ти), или зададен на EAN баркод. allow_check_digit_input=True за 8-цифрен вход.

from aspose_barcode_foss import Ean8Options

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

UpcaOptions и UpceOption (напредващи опции)

UpcaOptions и в) UpceOptions Следвай същото. allow_check_digit_input модел като опции за EAN. UpceOptions също има и 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

Всички класове опции наследяват тези свойства от: EncodeOptions:

PropertyTypeDescription
gs1_enabled`boolNone`
eci_assignment_number`intNone`

Съвети и най-добри практики

  • Използване на: Code128EncodeMode.AUTO освен ако нямате конкретна причина да ограничите набор от символи той произвежда най-краткия баркод за всеки въведен вход.
  • Настройка QrErrorCorrectionLevel.H за QR кодове, които ще бъдат отпечатани върху повърхности, склонни към увреждане.
  • Нека библиотеката изчисли проверка на цифри по подразбиране само зададени allow_check_digit_input=True при получаване на предварително валидирани данни от друга система.
  • Използване на: QrEncodeMode.NUMERIC за QR данни само с цифри, за да се сведе до минимум размера на символа.

Общи проблеми

IssueCauseРемонтиране
InvalidInputError за код 39Входът съдържа малки букви.Настройка full_ascii=True в) от Code39Options
QR кодът е твърде голям.Версия, зададена твърде ниска за дължината на даннитеИзтриване на изрично version или увеличават.
Неправилна цифра на EAN-1313-digit input without allow_check_digit_input=TrueПрехвърлете 12 цифри (авто) или зададете опцията на True
SymbologyNotFoundErrorИзписана неправилно символична дума в generate()Използвайте едно от следните: code128, code39, ean13, ean8, qr, upca, upce

See Also

 Български