Работа с опциями шифрования

Работа с опциями шифрования

Работа с опциями шифрования

Каждая символика штрихкода в 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Включить режим Full 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 но для 8-значных штрих-кодов EAN. поставьте 7 знаков полезной нагрузки (библиотека рассчитывает восьмую), или установить 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))

УпкОпции и УПкOпсии

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-13 .13-digit input without allow_check_digit_input=TrueПропустить 12 цифр (авто) или установить опцию на True
SymbologyNotFoundErrorОшибочно написанное символическое название в generate()Используйте один из следующих способов: code128, code39, ean13, ean8, qr, upca, upce

See Also

 Русский