Работа с опциями шифрования
Работа с опциями шифрования
Каждая символика штрихкода в Aspose.BarCode FOSS для Python имеет выделенный класс опций, который контролирует поведение кодирования. Все классы опции унаследуют от EncodeOptions, что обеспечивает: gs1_enabled и в том числе: eci_assignment_number свойства, которые разделяются символикой.
Code128Options
Code128Options Контролирует, какой код 128 символа устанавливает кодер выбирает. encode_mode имущество принимает Code128EncodeMode значение enum.
| Mode | Description |
|---|---|
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.
| Property | Type | Default | Description |
|---|---|---|---|
full_ascii | bool | None | Включить режим Full ASCII (диапазон 128 символов через пары сдвигов) |
add_check_digit | bool | None | Добавить номер модуля-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 имеет наибольшую конфигурацию поверхности среди всех символики.
| Property | Type | Values |
|---|---|---|
error_correction_level | QrErrorCorrectionLevel | L (7%), M (15%), Q (25%), H (30%) |
encoding_mode | QrEncodeMode | AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
version | int | 1–40 (controls symbol dimensions) |
mask | int | 0–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.
| Property | Type | Default | Description |
|---|---|---|---|
allow_check_digit_input | bool | None | Принимать 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:
| Property | Type | Description |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
Советы и лучшие практики
- Использование:
Code128EncodeMode.AUTOесли у вас нет конкретной причины ограничить наборы символов он производит самый короткий штрих-код для любого ввода. - Набор
QrErrorCorrectionLevel.Hдля QR-кодов, которые будут напечатаны на поверхностях, подверженных повреждению. - Пусть библиотека вычисляет цифры проверки по умолчанию только набор
allow_check_digit_input=Trueпри получении предварительно подтвержденных данных из другой системы. - Использование:
QrEncodeMode.NUMERICдля QR-данных, содержащих только цифры, чтобы свести к минимуму размер символа.
Общие проблемы
| Issue | Cause | Устранить |
|---|---|---|
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 |