Как настроить параметры кодирования в Aspose.BarCode FOSS

Как настроить параметры кодирования в Aspose.BarCode FOSS

Problem

Каждая символьная система штрихкода имеет свои правила кодирования — уровни коррекции ошибок для QR Code, режимы кодирования для Code 128, обработка контрольных цифр для EAN/UPC. Aspose.BarCode FOSS для Python предоставляет отдельный класс параметров для каждой символьной системы, что позволяет управлять этими параметрами во время генерации.

import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel

bc = barcode.qr(
    "https://example.com",
    encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
svg = bc.to_svg()

Требования

  • Python 3.12 или новее
  • менеджер пакетов pip
  • aspose-barcode-foss, собранный из исходного кода

QR Code Параметры

Класс QrOptions управляет кодированием QR Code. Установите error_correction_level в одно из значений QrErrorCorrectionLevel.L, M, Q или H. Более высокие уровни повышают избыточность за счёт увеличения размеров символов. Используйте encoding_mode для выбора конкретного режима данных QR (QrEncodeMode.NUMERIC, ALPHANUMERIC, BYTE или KANJI), или оставьте его как AUTO для автоматического выбора. Свойство version (1–40) управляет размером символа, а mask (0–7) переопределяет маску.

from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

options = QrOptions(
    error_correction_level=QrErrorCorrectionLevel.H,
    encoding_mode=QrEncodeMode.BYTE,
    version=5,
)
bc = barcode.qr("DATA", encode=options)

Code 128 Параметры

Класс Code128Options предоставляет encode_mode со значениями из Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC. В режиме AUTO кодировщик выбирает самое короткое представление. Ограничение конкретным подмножеством (например, CODE_C для данных только с цифрами) может уменьшить ширину символа.

from aspose_barcode_foss import Code128Options, Code128EncodeMode

options = Code128Options(encode_mode=Code128EncodeMode.CODE_C)
bc = barcode.code128("123456", encode=options)

Code 39 Параметры

Класс Code39Options имеет два ключевых свойства: full_ascii включает полное кодирование ASCII (расширенный набор символов, выходящий за пределы заглавных букв и цифр), а add_check_digit добавляет к символу проверочную цифру по модулю 43.

from aspose_barcode_foss import Code39Options

options = Code39Options(full_ascii=True, add_check_digit=True)
bc = barcode.code39("Hello", encode=options)

Опции проверочной цифры EAN и UPC

Ean13Options, Ean8Options, UpcaOptions и UpceOptions поддерживают allow_check_digit_input. По умолчанию библиотека вычисляет проверочную цифру автоматически — указывайте только цифры полезной нагрузки (12 для EAN-13, 7 для EAN-8, 11 для UPC-A). Установите allow_check_digit_input=True, чтобы передать заранее вычисленную проверочную цифру в качестве входных данных.

from aspose_barcode_foss import Ean13Options

# Auto-compute check digit (12 digits)
bc = barcode.ean13("590123412345")

# Pre-computed check digit (13 digits)
bc = barcode.ean13(
    "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

UPC-E Числовая система

UpceOptions добавляет свойство number_system. Штрихкоды UPC-E используют числовую систему “0” или “1”. Установите это свойство, чтобы управлять тем, какой префикс числовой системы использует кодировщик.

from aspose_barcode_foss import UpceOptions

options = UpceOptions(number_system="0", allow_check_digit_input=False)
bc = barcode.upce("012345", encode=options)

Сводка параметров

SymbologyКласс OptionsКлючевые свойства
Code 128Code128Optionsencode_mode
Code 39Code39Optionsfull_ascii, add_check_digit
EAN-13Ean13Optionsallow_check_digit_input
EAN-8Ean8Optionsallow_check_digit_input
QR CodeQrOptionserror_correction_level, encoding_mode, version, mask
UPC-AUpcaOptionsallow_check_digit_input
UPC-EUpceOptionsnumber_system, allow_check_digit_input

См. также:

 Русский